是否可以单独使用 C 或 C++(不借助 YACC 和 LEX 等工具)为任意编程语言或 IR 创建 AST?
如果是,如何实现词法和句法分析?
如果不是,必须增强到 C 或 C++ 才能成功创建 AST 的工具是什么?
希望我把我的疑问说清楚了。如果我的问题看起来含糊不清或断章取意,请指出所需内容。
P.S:我实际上是在尝试为 IR 表示的 LLVM .ll 格式创建 AST。我知道 .ll 是从 AST 派生的。但我正在尝试静态分析实践。所以我正在考虑创建 AST。
最佳答案
在没有解析器生成器的情况下创建解析器的最直接的方法是 recursive descent .它有很好的记录 - 该领域的标准书籍是 The Dragon Book .
可以使用标准字符串操作技术编写一个扫描器,它将文本作为输入并生成一串标记作为输出。
关于c++ - 用于任意编程语言或 IR 的 AST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3868938/