我正在开发一种新的编程语言,但我一直被所有人都在使用yaxx / lex解析代码的事实所困扰,而我没有。
我的编译器(已经可以工作)是用C ++ / STL手写的,我不能说它很复杂或花费了太多时间。它既有某种类型的词法分析器又有解析器,但它们不是自动生成的。
早些时候,我以同样的方式编写了一个C编译器(不是完整规范),它能够在1个通路中编译程序,并解决所有这些反向引用和预处理 - 这绝对无法使用yacc / lex实现。
我就是无法说服自己放弃这一切,开始深入研究可能需要相当大的工作量来实现并可能引入某些语法限制的yaxx / lex。
如果我不使用yacc / lex,我会错过什么吗? 我做了什么邪恶的事吗?