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.