Diferencia entre revisiones de «Usuario:ManuelRomero/compiladores/nav/analisisSemático»

De WikiEducator
Saltar a: navegación, buscar
(PROGRAMA)
Línea 1: Línea 1:
 
=PROGRAMA=
 
=PROGRAMA=
 +
#primera producción
 +
#define de qué consta un programa
 +
programa : tPROGRAMA tIDENTIFICADOR ';' declaracion_variables declaracion_acciones bloque_instrucciones
 +
#Acciones a realizar
 +
##Dar de alta el identificador del programa para no volver a usarlo
 +
##Después de la última instrucción eliminamos items de la tabla de símbolos
 +
##Para crear el XML del programa, cada vez que hay un identificador creo un tag diciendo lo que es y lo cierro al final de su ámbito
 +
 
<source lang=cpp>
 
<source lang=cpp>
 
programa:
 
programa:
Línea 5: Línea 13:
 
     {
 
     {
 
       nivel = 0;
 
       nivel = 0;
 
+
       inicializar_tabla (tabsim);
       DEBUGA("programa:tPROGRAMA tIDENTIFICADOR';'-antes de inicializar_tabla",DPROGRAMA,debug);
+
 
+
      inicializar_tabla (tabsim);
+
      DEBUGA("programa:tPROGRAMA tIDENTIFICADOR';'-despues de inicializar_tabla",DPROGRAMA,debug);
+
     
+
 
+
 
       /*El identificador del programa
 
       /*El identificador del programa
 
       Es el primer símbolo y por lo tanto seguro
 
       Es el primer símbolo y por lo tanto seguro
 
       que no va a exixtir, por lo que no lo buscamos*/
 
       que no va a exixtir, por lo que no lo buscamos*/
     
 
 
       introducir_programa(tabsim,$2.NId,0);
 
       introducir_programa(tabsim,$2.NId,0);
     
 
 
       AbreTag(xmlin,$2.NId,nivel-1);
 
       AbreTag(xmlin,$2.NId,nivel-1);
     
 
      /*MRM No se muy bien el tercer parámetro, de momento pongo 0*/
 
 
     }
 
     }
 +
 
     declaracion_variables  
 
     declaracion_variables  
 
     declaracion_acciones
 
     declaracion_acciones

Revisión de 10:57 3 ago 2012

PROGRAMA

  1. primera producción
  2. define de qué consta un programa
programa : tPROGRAMA tIDENTIFICADOR ';' declaracion_variables declaracion_acciones bloque_instrucciones
  1. Acciones a realizar
    1. Dar de alta el identificador del programa para no volver a usarlo
    2. Después de la última instrucción eliminamos items de la tabla de símbolos
    3. Para crear el XML del programa, cada vez que hay un identificador creo un tag diciendo lo que es y lo cierro al final de su ámbito
programa:
    tPROGRAMA tIDENTIFICADOR ';'
    {
      nivel = 0;
      inicializar_tabla (tabsim);
      /*El identificador del programa
      Es el primer símbolo y por lo tanto seguro
      que no va a exixtir, por lo que no lo buscamos*/
      introducir_programa(tabsim,$2.NId,0);
      AbreTag(xmlin,$2.NId,nivel-1);
    }
 
    declaracion_variables 
    declaracion_acciones
    bloque_instrucciones
    {
      eliminar_variables (tabsim, nivel);
      eliminar_parametros_ocultos(tabsim,nivel+1);
      eliminar_acciones (tabsim, nivel);
      eliminar_programa(tabsim);
      CierraTag(xmlin,$2.NId,nivel-1);
    }
;