编译器构建可以分为几个阶段,如词法分析,语法分析,语义分析等。在词法分析中,有Lex,Flex等工具。在语法分析中,有Yacc等工具, Bison等我很好奇语义分析阶段可用的工具是什么?
答案 0 :(得分:3)
据我所知,没有与语言无关的工具来执行类型检查,如果有的话,它们肯定不适用,因为许多语言类型系统太过不同和复杂,无法通过通用工具处理。
通过范围分辨率,您可以有一些工具来处理它。例如,如果您的语言具有足够简单的作用域规则,那么如果您在语法中添加一些注释,XText框架可以完全处理范围解析。在更复杂的情况下,您必须自己编写一些额外的代码。
然后,如果您编译为LLVM,则可以使用LLVM框架为您执行各种控制流分析。