C/Visual C - Dudas con analizador léxico sintáctico Flex Bison

 
Vista:
Imágen de perfil de Facundo

Dudas con analizador léxico sintáctico Flex Bison

Publicado por Facundo (2 intervenciones) el 05/04/2018 04:37:51
Buenas noches, estoy experimentando con estos programas para generar un analizador léxico sintáctico, dado que tengo que desarrollar un analizador para SQL, entonces quise empezar de a poco, tal que quise hacer un simple analizador que reconozca y detecte sentencias de pseudocódigo.

La idea es que el analizador reconozca la sentencia Si condición Entonces, comento que compila muy bien el archivo lexico.l y el archivo sintactico.y, por lo tanto, al generar el .exe del analizador con el comando
gcc y.tab.c lex.yy.c -lfl -o programa tampoco hubo inconvenientes.

El inconveniente radica en el proceder del analizador, el programa solo llama a la función yyparse() una sola vez, por ende, si por consola escribiese diez veces esta instrucción: Si x < solo una vez me marcará error de sintaxis y las otras nueve las deja pasar, y cuando escribo correctamente la instrucción, Si x < 2 Entonces, tampoco me toma como válida, me genera error de sintaxis, quisiera saber como corregir eso y mostrar un mensaje de éxito cuando la instrucción ingresada sea correcta.

Adjunto los archivos pertinentes, y sepan disculpar si tengo uno o varios errores, estoy recién iniciando en la teoría de las gramáticas informáticas y los analizadores.

Una aclaración más: En la única regla gramatical que puse en el archivo sintactico.y, no está contemplado el espacio en blanco en la instrucción (tampoco sabía como agregarlo), por lo tanto la instrucción ingresada debería ir todo junto sin dejar espacio en blanco de la forma:.

Six<2Entonces

Siéntanse libres de hacer las correcciones pertinentes en los archivos del rar, cualquier corrección es bienvenida para aprender más
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder