我正在开发一种工具,它将对程序执行一些简单的转换(如提取方法)。为此,我必须执行编译的前几个步骤(标记化、解析并可能构建符号表)。我将从 C 开始,然后希望将其扩展到支持多种语言。
我的问题是,执行这些步骤的最佳方法是:
1.) 不会重新发明轮子。显然我不想手动编写 Flex/Bison 规范。我是否只是获取预先存在的规范并从那里开始工作?Antlr是去这里的路吗?
2.) 可扩展到多种语言。显然,每个人的词法分析/解析都会有所不同,但我想要一个可以轻松扩展到其他语言的解决方案。至少有一套技术可以使这变得易于管理。
顺便说一句,我正在使用 C 编写我的应用程序
如果有人有任何想法,那就太好了!谢谢!