Zusammenfassung der Ressource
Chapter 5 – Parsing in Practice
- Generador de analizadores sintácticos ampliamente utilizado para lenguajes similares a C, el cual se usa para la
gramática LALR para expresiones algebraicas
- 3 variedades
- El Validador lee el programa de entrada y informa al usuario si es valida. Se utiliza
para determinar si el programa se ajusta a una norma
- El interprete lee el programa de entrada y ejecuta mostrando resultados, donde
hace un calculo de cada operación.
- El traductor analiza el arbol de sintaxis y luego lo recorre para producir un
programa con un formato diferente.
- BISON
- está diseñado para automáticamente invocar Flex,
el cual es facíl combinar los dos en un programa.
- El generador de analizador de bison
- YAAC
- fue un analizador ampliamente utilizado generador en el entorno Unix, recientemente suplantado por
GNU Bison analizador que es generalmente compatible.
- Se tiene que crear un escáner donde se cree una especificación de la gramática donde tiene una
acción a seguir.
- Especificaciones generales
- -La primera sección contiene código C arbitrario, normalmente #incluye declaraciones y declaraciones
globales. La segunda sección puede contener una variedad de declaraciones específicas.
- %token keyword( Uso para declarar todos los terminales en nuestro idioma)
- Especificación de bison para validador de expresiones
- da una especificación de Bison para expresiones algebraicas simples en enteros, donde acepta gramatica LR
- Programa principal para el validador de expresiones
- Procedimiento general usando Bison Y flex ,donde ela analizador entra parser.bison y se coloca en
scanner.flex y se genera el token.h desde el %token
- Validador de expresiones
- Se utiliza para nn determinar si un programa dado cumple con los estandares. Donde tiene variedad
para lenguajes relacionados con la web como:
- HTML1
- CSS2
- JSON3
- Intérprete de expresiones
- Valores semánticos que representan los valores ya calculados para otros no terminales
- REGLA PARA SUMAR
- sumar el valor de la izquierda (el primer símbolo)
al valor de la derecha (el tercer símbolo), EJEMPLO:
- Los valores de $1 Y $3 vienen de otras reglas que
definen esos no terminales donde se le de valor de
un nodo de hoja
- Especificación de bison para una intérprete
- Gramatica de bison que implementa un intérprete donde invoca yyparse(). Al tener éxito, el resultado
se almacena en el analizador de variables globales para extraerlo y usarlo en el programa principal.