在LLVM 教程中有说明如何编写简单的 JIT 编译器。不幸的是,本教程中的词法分析器和解析器是手动编写的。我在想,这样的解决方案有利于学习,但不适合编写复杂的、生产就绪的编译器。不过,GCC 和其他一些“大型编译器”似乎是手写的。但我认为,在编写自己的编译器时,所有这些解析器生成器都会大大提升(尤其是当你独自完成,没有团队的时候)。
是否可以将任何现有的解析器生成器(如 Bison / Antlr / Packrat / Elkhound 等)与 LLVM 一起使用来创建 JIT 编译器?我希望能够不断地(不是一开始就)向解析器“提供”表达式并在运行时编译它们。
另外我发现了很多关于“最好的、现代的”解析器生成器的问题(比如这个:https ://stackoverflow.com/questions/428892/what-parser-generator-do-you-recommend )。如果可以使用这些工具来创建 LLVM JIT 编译器,我将感谢任何额外的提示和建议,在这种特殊情况下,哪种工具在性能和灵活性方面最好。