我可以将 AST / JDT 用于其他语言吗?例如,为使用 AST 技术的 C# 编写我自己的解析器?
3 回答
如果您查看文章“ Eclipse JDT - 抽象语法树 (AST) 和 Java 模型 - 教程”,JDT 及其 AST 是为 Java 量身定制的。
Eclipse Java 开发工具 (JDT) 提供 API 来访问和操作 Java 源代码。
AST 是 Java 源代码的详细树形表示。AST 定义了修改、创建、读取和删除源代码的 API。
AST 的包org.eclipse.jdt.core.dom
位于 Eclipseorg.eclipse.jdt.core
插件中。
其他语言的其他 AST 存在,并且要生成自己的语言,您可以使用XText
替代文字 http://www.eclipse.org/Xtext/images/screenshot-title.png
但是 jdt 包中的那个是专门为 Java 设计的。
可以通过ASTView查看
另请参阅Exploring Eclipse 的 ASTParser文章作为 Eclipse AST 操作的面向 Java 方面的另一个说明。
您可以使用 ANTLR(另一种语言识别工具),它非常强大,可以从您的语法文件中生成词法分析器和解析器。好消息是您会在 github 上找到可用的开源语法文件。 https://www.antlr.org/ https://github.com/antlr/grammars-v4
您将需要创建自己的 AST 模型。