Diferencia entre revisiones de «Usuario:ManuelRomero/preferencias/analisisSintacticoSemático»
De WikiEducator
Línea 1: | Línea 1: | ||
{{:Usuario:ManuelRomero/compiladores/AS/nav}} | {{:Usuario:ManuelRomero/compiladores/AS/nav}} | ||
<br> | <br> | ||
+ | ===OBJETIVO=== | ||
+ | *Esta parte realizará el análisis sintáctico de nuestro programa | ||
+ | *Inevitablemente en muchas ocasiones realizaremos también análisis semántico | ||
+ | *La forma de trabajar será interpretando diferentes producciones y en el momento adecuado validaremos la situación | ||
+ | |||
==PROGRAMA== | ==PROGRAMA== | ||
<br><br/> | <br><br/> |
Revisión de 08:11 23 abr 2013
OBJETIVO
- Esta parte realizará el análisis sintáctico de nuestro programa
- Inevitablemente en muchas ocasiones realizaremos también análisis semántico
- La forma de trabajar será interpretando diferentes producciones y en el momento adecuado validaremos la situación
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
- 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
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); } ;