--- ADD_ver_10/Attic/Matrices.c 2006/01/19 17:16:29 1.1 +++ ADD_ver_10/Attic/Matrices.c 2006/02/15 13:00:30 1.2 @@ -1,36 +1,3 @@ -/********************************************************************/ -/* Matrices.c */ -/* */ -/* Copyright (c) 1997-2006 Rafael Rico (rafael.rico@uah.es) */ -/* */ -/* This file is part of ADD version 5.10. */ -/* */ -/* ADD is free software; you can redistribute it and/or modify */ -/* it under the terms of the GNU General Public License as */ -/* published by the Free Software Foundation; either version 2 of */ -/* the License, or (at your option) any later version. */ -/* */ -/* ADD is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU General Public License for more details. */ -/* */ -/* You should have received a copy of the GNU General Public */ -/* License along with ADD; if not, write to the Free Software */ -/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA */ -/* 02111-1307 USA */ -/* */ -/* --------------------------- History --------------------------- */ -/* */ -/* Revision 1.2. 01/2006 */ -/* Added GPL License and JavaDoc style documentation */ -/* */ -/* Revision 1.1. 09/2005 */ -/* Initial Revision */ -/* */ -/********************************************************************/ - - /******************************************************************************/ /* MÓDULO: Matrices.c */ /* */ @@ -60,34 +27,34 @@ extern struct punterosD matriz; void IniciarPunterosMatrices() { - matriz.Ddatoexp = NULL; - matriz.Ddir_exp = NULL; - matriz.Dpilaexp = NULL; - matriz.Destadoexp = NULL; - matriz.Ddatoimp = NULL; - matriz.Ddir_imp = NULL; - matriz.Dpilaimp = NULL; - matriz.Destadoimp = NULL; - - matriz.ADdatoexp = NULL; - matriz.ADdir_exp = NULL; - matriz.ADpilaexp = NULL; - matriz.ADestadoexp = NULL; - matriz.ADdatoimp = NULL; - matriz.ADdir_imp = NULL; - matriz.ADpilaimp = NULL; - matriz.ADestadoimp = NULL; - - matriz.Sdatoexp = NULL; - matriz.Sdir_exp = NULL; - matriz.Spilaexp = NULL; - matriz.Sestadoexp = NULL; - matriz.Sdatoimp = NULL; - matriz.Sdir_imp = NULL; - matriz.Spilaimp = NULL; - matriz.Sestadoimp = NULL; + matriz.Ddatoexp = NULL; + matriz.Ddir_exp = NULL; + matriz.Dpilaexp = NULL; + matriz.Destadoexp = NULL; + matriz.Ddatoimp = NULL; + matriz.Ddir_imp = NULL; + matriz.Dpilaimp = NULL; + matriz.Destadoimp = NULL; + + matriz.ADdatoexp = NULL; + matriz.ADdir_exp = NULL; + matriz.ADpilaexp = NULL; + matriz.ADestadoexp = NULL; + matriz.ADdatoimp = NULL; + matriz.ADdir_imp = NULL; + matriz.ADpilaimp = NULL; + matriz.ADestadoimp = NULL; + + matriz.Sdatoexp = NULL; + matriz.Sdir_exp = NULL; + matriz.Spilaexp = NULL; + matriz.Sestadoexp = NULL; + matriz.Sdatoimp = NULL; + matriz.Sdir_imp = NULL; + matriz.Spilaimp = NULL; + matriz.Sestadoimp = NULL; - matriz.D = NULL; + matriz.D = NULL; } @@ -96,30 +63,30 @@ void IniciarPunterosMatrices() unsigned char ** CrearMatriz() { - char mensaje[MAX_LINE]; - unsigned int i; - unsigned char **matrizD; - - /* 1º un puntero por cada fila */ - matrizD = calloc(configuracion.ventana, sizeof(unsigned char *)); - if (matrizD == NULL) - { - sprintf(mensaje, "[CrearMatriz] Memoria insuficiente"); - Notificar(mensaje, ERROR_SALIR, ECO_NO); - /* el programa finaliza si no hay memoria suficiente */ - } - /* 2º un 'char' por cada columna */ - for(i=0; i por defecto no se desacopla nada */ + + if(configuracion.desacoplarfuentes == SI) + { + if(configuracion.datos == SI) matriz.Ddatoexp = CrearMatriz(); + if(configuracion.direcciones == SI) matriz.Ddir_exp = CrearMatriz(); + if(configuracion.pila == SI) matriz.Dpilaexp = CrearMatriz(); + if(configuracion.cc == SI) matriz.Destadoexp = CrearMatriz(); + + if(configuracion.datos == SI) matriz.Ddatoimp = CrearMatriz(); + if(configuracion.direcciones == SI) matriz.Ddir_imp = CrearMatriz(); + if(configuracion.pila == SI) matriz.Dpilaimp = CrearMatriz(); + if(configuracion.cc == SI) matriz.Destadoimp = CrearMatriz(); + + if(configuracion.datos == SI) matriz.ADdatoexp = CrearMatriz(); + if(configuracion.direcciones == SI) matriz.ADdir_exp = CrearMatriz(); + if(configuracion.pila == SI) matriz.ADpilaexp = CrearMatriz(); + if(configuracion.cc == SI) matriz.ADestadoexp = CrearMatriz(); + + if(configuracion.datos == SI) matriz.ADdatoimp = CrearMatriz(); + if(configuracion.direcciones == SI) matriz.ADdir_imp = CrearMatriz(); + if(configuracion.pila == SI) matriz.ADpilaimp = CrearMatriz(); + if(configuracion.cc == SI) matriz.ADestadoimp = CrearMatriz(); + + if(configuracion.datos == SI) matriz.Sdatoexp = CrearMatriz(); + if(configuracion.direcciones == SI) matriz.Sdir_exp = CrearMatriz(); + if(configuracion.pila == SI) matriz.Spilaexp = CrearMatriz(); + if(configuracion.cc == SI) matriz.Sestadoexp = CrearMatriz(); + + if(configuracion.datos == SI) matriz.Sdatoimp = CrearMatriz(); + if(configuracion.direcciones == SI) matriz.Sdir_imp = CrearMatriz(); + if(configuracion.pila == SI) matriz.Spilaimp = CrearMatriz(); + if(configuracion.cc == SI) matriz.Sestadoimp = CrearMatriz(); + } + + else if(configuracion.desacoplarorigen == SI) + { + if(configuracion.explicitos == SI) matriz.Ddatoexp = CrearMatriz(); + if(configuracion.implicitos == SI) matriz.Ddatoimp = CrearMatriz(); + + if(configuracion.explicitos == SI) matriz.ADdatoexp = CrearMatriz(); + if(configuracion.implicitos == SI) matriz.ADdatoimp = CrearMatriz(); + + if(configuracion.explicitos == SI) matriz.Sdatoexp = CrearMatriz(); + if(configuracion.implicitos == SI) matriz.Sdatoimp = CrearMatriz(); + } + + else if(configuracion.desacoplartipos == SI) + { + if(configuracion.verdaderas == SI) matriz.Ddatoexp = CrearMatriz(); + if(configuracion.antidependencias == SI) matriz.ADdatoexp = CrearMatriz(); + if(configuracion.salida == SI) matriz.Sdatoexp = CrearMatriz(); + } - matriz.D = CrearMatriz(); + matriz.D = CrearMatriz(); } @@ -210,9 +177,9 @@ void CrearMatricesDependencias() void IniciarMatriz(unsigned char **matriz) { - unsigned int i, j; + unsigned int i, j; - if(matriz != NULL) for(i=0; i