当前位置: 首页 > 知识库问答 >
问题:

在eclipse jdt/ast中使用ICompilationUnit forASTParser.setSource()方法

郎曜文
2023-03-14

ASTParser.setSource有不同输入类型的多态方法。

但是,当我使用ICompilationUnit作为setSource方法的输入时,

我得到一个错误,说我没有使用char[]作为输入参数。

为什么会出现这个错误?

我使用日食 jdt/ast 作为独立 Java 程序的一部分。在此过程中,我不会使用日食项目/资源,而是将 java 源代码作为 setSource() 的参数加载到 char[] 中。我不确定,但eclipse可能会认识到它不是作为插件运行的,以阻止其他多态方法的使用。

共有2个答案

冯和硕
2023-03-14

我试图将jdt/ast作为独立java程序的库执行。当我在插件上下文中重新运行它们时,一切正常。

易俊友
2023-03-14

检查是否已将种类指定为编译单元。

// Parse the class as a compilation unit.
parser.setKind(ASTParser.K_COMPILATION_UNIT);
 类似资料:
  • 在我可以进一步回答之前,原始问题已被删除,因此我将问题与答案重新发布如下: 我无法使用AST转换修改我的方法,因为我无法在修改后执行前面的方法语句。我从方法中提取语句,将其保存在某个临时变量中,但在修改之后,当我尝试执行它时,得到MissingPropertyException:No such property:code for class:Calculator,就像我试图使用类中的属性,而不是方

  • 问题内容: 最近,我需要修改一些Java代码(添加方法,更改某些字段的签名并除去方法),并且我认为所有这些都可以通过使用Eclipse SDK的AST来实现。 通过一些研究,我知道如何在源文件中进行解析,但是我不知道如何执行上述操作。有谁知道一个好的教程,或者有人可以给我简短的解释如何解决这些问题? 非常感谢, ExtremeCoder 编辑: 我现在开始对JCodeModel进行更多研究,我认为

  • 我想知道我们是否可以使用Antlr版本4构建一个AST。我找不到任何关于使用ANTLR4构建它的参考。一个答案是,使用antlr4会很容易,它只产生解析树,但我的问题是效率如何? 它迫使我们只能爬取整个解析树而不是抽象的语法树,这对于遍历整个解析树和使用访问者执行任务是不有效的。

  • 我正试图弄清楚如何使用ANTLR,但我很难消化我所发现的东西。到目前为止,以下是我的资源: 如何使用ANTLR4创建AST? 如何使用Gradle 2.10将一个ANTLR lexer语法导入到另一个语法中? https://github.com/antlr/grammars-v4/tree/master/java8 https://dzone.com/articles/parsing-any-l

  • ast

    import "go/ast" Package ast declares the types used to represent syntax trees for Go packages. Index func FileExports(src *File) bool func FilterDecl(decl Decl, f Filter) bool func FilterFile(src *Fil

  • 我正在尝试使用AST转换替换类的方法。 我首先检查该方法是否存在,然后将其删除(基于此)。 我看到集合上的大小发生了变化,但该方法仍然可以在类节点上访问。 删除该方法后,我想添加一个同名的新方法: 但是,这会导致以下错误: 正确的方法是什么? 更新:由于我打算做的就是替换该方法的现有功能,因此我创建了一个新的块语句,并使用 在现有方法上设置了它。