3

我可以将 AST / JDT 用于其他语言吗?例如,为使用 AST 技术的 C# 编写我自己的解析器?

4

3 回答 3

4

如果您查看文章“ 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 方面的另一个说明。

于 2009-12-09T09:43:14.160 回答
0

您不能将 JDT 用于其他语言(除非您定义了嵌入式语法,请参阅 Mark 的评论),正如其名称所示,它仅适用于 Java。如果您想为 C# 构建解析器,antlr是一个不错的工具,它可以在输入语法后为您提供可见的树。是 Antlr for C# 中使用的语法。

于 2013-03-14T13:52:47.937 回答
0

您可以使用 ANTLR(另一种语言识别工具),它非常强大,可以从您的语法文件中生成词法分析器和解析器。好消息是您会在 github 上找到可用的开源语法文件。 https://www.antlr.org/ https://github.com/antlr/grammars-v4

您将需要创建自己的 AST 模型。

于 2019-10-18T22:43:49.080 回答