我可以将AST / JDT用于其他语言吗?例如,为C#编写我自己的解析器,以某种方式使用AST技术?
答案 0 :(得分:4)
如果你看一下文章“Eclipse JDT - Abstract Syntax Tree (AST) and the Java Model - Tutorial”,JDT及其AST是为Java量身定制的。
Eclipse Java开发工具(JDT)提供了访问和操作Java源代码的API AST是Java源代码的详细树表示。 AST定义了用于修改,创建,读取和删除源代码的API AST
org.eclipse.jdt.core.dom
插件中的AST包是org.eclipse.jdt.core
。
other languages存在其他AST,为了生成您自己的AST,您可以使用 XText
alt text http://www.eclipse.org/Xtext/images/screenshot-title.png
但是jdt包中的那个是专门用于Java的 可以通过ASTView
查看
另见Exploring Eclipse's ASTParser文章,作为日食AST操作的面向Java的方面的另一个例子。
答案 1 :(得分:0)
您不能将JDT用于其他语言(除非您定义嵌入式语法,请参阅Mark的注释),它仅用于Java,如其名称所示。如果你想为C#构建一个解析器,antlr是一个很好的工具,它可以在输入语法后为你提供一个可见的树。 Here是Antlr中用于C#的语法。
答案 2 :(得分:0)
您可以使用ANTLR(另一种语言识别工具),它非常强大,可以从语法文件中生成词法分析器和解析器。好消息是,您将在github上找到开源语法文件。 https://www.antlr.org/ https://github.com/antlr/grammars-v4
您将需要创建自己的AST模型。