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

De WikiEducator
Saltar a: navegación, buscar
(PROGRAMA)
(PROGRAMA)
 
Línea 1: Línea 1:
=PROGRAMA=
+
=PRODUCCIONES=
#primera producción
+
==PROGRAMA==
#define de qué consta un programa
+
*primera producción
 +
*Producción obligatoria
 +
*define de qué consta un programa
 
  programa : tPROGRAMA tIDENTIFICADOR ';' declaracion_variables declaracion_acciones bloque_instrucciones
 
  programa : tPROGRAMA tIDENTIFICADOR ';' declaracion_variables declaracion_acciones bloque_instrucciones
#Acciones a realizar
+
*Acciones a realizar
##Dar de alta el identificador del programa para no volver a usarlo  
+
#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
+
#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
+
#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>
Línea 32: Línea 34:
 
     }
 
     }
 
;
 
;
 +
</source>
  
 +
==declaracion_variables==
 +
*produccion optativa (puede haber o no variables en un programa)
 +
*lista de variables que puede tener un programa
 +
 +
*Acciones a realizar
 +
#ninguna ya que no tenemos ninún terminal solo producciones
 +
<source lang=cpp>
 +
|    lista_declaraciones ';'
 +
;
 
</source>
 
</source>
 +
===lista_declaraciones===
 +
*Una llista es o un elemento o una lista de elementos (uno o varios)
 +
*Observamos una recursividad por la izquierda
 +
*Acciones a realizar
 +
#ninguna ya que no tenemos ninún terminal solo producciones
 +
 +
<source lang=cpp>
 +
  lista_declaraciones ';' declaracion
 +
|    declaracion
 +
;
 +
</source>
 +
====declaracion====
 +
*Una declaracion es o una variable simple o una variable compuesta
 +
*La forma de daclarar es decir el tipo de variable y luego una lista (1 o mas) de  identificadores
 +
*Acciones a realizar
 +
#ninguna ya que no tenemos ninún terminal solo producciones
 +
 +
<source lang=cpp>
 +
variable_simple identificadores
 +
|  variable_compuesta identificadores_variable_compuesta
 +
;
 +
</source'>
 +
=====variable_simple=====
 +
=====identificadores=====
 +
=====variable_compuesta=====
 +
=====identificadores_variable_compuesta=====
 +
 +
 +
== declaracion_acciones==
 +
== bloque_instrucciones==

Última revisión de 11:07 3 ago 2012

PRODUCCIONES

PROGRAMA

  • primera producción
  • Producción obligatoria
  • define de qué consta un programa
programa : tPROGRAMA tIDENTIFICADOR ';' declaracion_variables declaracion_acciones bloque_instrucciones
  • 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);
    }
;

declaracion_variables

  • produccion optativa (puede haber o no variables en un programa)
  • lista de variables que puede tener un programa
  • Acciones a realizar
  1. ninguna ya que no tenemos ninún terminal solo producciones
|    lista_declaraciones ';'
;

lista_declaraciones

  • Una llista es o un elemento o una lista de elementos (uno o varios)
  • Observamos una recursividad por la izquierda
  • Acciones a realizar
  1. ninguna ya que no tenemos ninún terminal solo producciones
   lista_declaraciones ';' declaracion
|    declaracion
;

declaracion

  • Una declaracion es o una variable simple o una variable compuesta
  • La forma de daclarar es decir el tipo de variable y luego una lista (1 o mas) de identificadores
  • Acciones a realizar
  1. ninguna ya que no tenemos ninún terminal solo producciones
 variable_simple identificadores
|  variable_compuesta identificadores_variable_compuesta
;
</source'>
=====variable_simple=====
=====identificadores=====
=====variable_compuesta=====
=====identificadores_variable_compuesta=====
 
 
== declaracion_acciones==
== bloque_instrucciones==