Estoy trabajando en un nuevo lenguaje de programación, pero siempre me ha extrañado el hecho de que todos estén usando yaxx/lex para analizar el código, pero yo no.yacc/lex o codificación manual?
Mi compilador (que ya está funcionando) está codificado a mano en C++/STL, y no puedo decir que sea complejo o requirió demasiado tiempo. Tiene algún tipo de lexer y analizador, pero no se autogeneran.
Anteriormente, escribí un compilador C (no completo) de la misma manera - fue capaz de compilar el programa en 1 pasada, con todas estas referencias que resuelven el preprocesamiento & - esto es definitivamente imposible con yacc/lex.
No puedo convencerme de desechar todo esto, y comenzar a bucear en yaxx/lex, lo que podría requerir un gran esfuerzo de implementación y posiblemente podría introducir algunas limitaciones gramaticales.
¿Hay algo que echo de menos cuando no uso yacc/lex? ¿Hago algo malo?
El diseño bueno y modular (por ejemplo, el tokenizador y el analizador léxico deben estar completamente separados) puede hacer que esto no suponga un problema. Aún importante. – delnan