Documentos de Académico
Documentos de Profesional
Documentos de Cultura
NACIONAL
UPIICSA
HERRAMIENTAS
AUTOMATIZADAS PARA UN
ANALIZADOR SINTACTICO
EQUIPO 5
Por qu hacer anlisis sintctico?
c a
detallados, y por el apoyo
i t or
Grammatica apoya LL (k) las
a t
para probar y depurar las gramticas con un nmero
m ra
gramticas sin generar ilimitado de fichas de la
m
cdigo fuente.
n e ventaja mirada. Es bastante
r a ge bien probado, y se ha auto-
G r recibimiento desde la versin
LA SECCIN DE REGLAS
contiene la gramtica en s. Componentes es una combinacin de
terminales y no terminales que describe al no terminal de la izquierda
de la regla:
no_terminal: componentes {acciones en C}
LA SECCIN DE RUTINAS
tiene la misma funcin que la de lex, pero yacc (dependiendo de su
variante) no define por defecto las funciones main(), yylex() e
yyerror(), as que hay que incluirlas aqu, o bien en otro fichero que se
enlazar en la fase final de la compilacin.
Yacc genera una funcin llamada yyparse() que contiene el
analizador sintctico. Esta funcin se comporta como una
mquina de estados cuya misin es intentar reducir todo el
fichero de entrada al smbolo inicial de la gramtica (el primero
que se haya definido). Si yacc lo consigue, el analizador
sintctico volver sin error, y en caso contrario, se invocar a la
Seccin de Reglas en
Yacc
Una regla de yacc es parecida a una de lex, pero en vez de
un patrn regular, especifica una regla de la gramtica.
Las reglas deben estar dadas de forma que la parte
izquierda conste de un nico smbolo no terminal, y la
parte derecha indique la combinacin de terminales y no
terminales de que puede estar compuesto. Adems, toda
regla debe incluir una accin en C que se ejecutar en
cuanto yacc consiga encontrar los componentes del
smbolo resultado:
El smbolo resultado
debe estar situado en la primera posicin de la lnea, es
decir, que no puede haber espacios antes del smbolo
resultado.
Los componentes
son una combinacin de terminales y no terminales
separados por espacios en blanco.
Gracias
por su
atenci