예제 #1
0
void inicializar_tabla (TABLA_SIMBOLOS tabla)
/**********************************************************************/
{
   int i;

   for (i = 0; i < TAMANO_TABLA; ++i)
	   crear_vacia (&(tabla[i]));
}
예제 #2
0
void asignar (pLISTA nueva, LISTA vieja, int tamano)
/**********************************************************************/
{	int i; 

	crear_vacia (nueva); 
	for (i = 1; i <= longitud_lista (vieja); i++){
		anadir_derecha_copiando (vieja.primero->dato, nueva, tamano); 
		vieja.primero = vieja.primero->siguiente; 
	}
}
예제 #3
0
SIMBOLO *tsim_int_accion (TABLA_SIMBOLOS tabla, char *nombre, int nivel, int dir)
/**********************************************************************/
{
   int sitio = hash (nombre);
   SIMBOLO simbolo;

   simbolo.tipo = ACCION;
   simbolo.nombre = strdup(nombre);
   simbolo.nivel = nivel;
   simbolo.dir = dir;
   simbolo.visible = TRUE;
   crear_vacia (&(simbolo.parametros));

   anadir_izquierda_copiando (&simbolo, &tabla[sitio], sizeof (simbolo));

   return (SIMBOLO *) observar_izquierda (tabla[sitio]);
}