当前位置: 首页 > 面试题库 >

如何从生成的ast的Java编译器树api访问注释?

宋晋
2023-03-14
问题内容

我已经使用了Java编译器树api来为Java源文件生成ast。但是,我无法访问源文件中的注释。

到目前为止,我一直找不到从源文件中提取注释的方法..是否有使用编译器API或其他工具的方法?


问题答案:

通过使用getsourceposition()和一些字符串操作来解决问题(不需要正则表达式)



 类似资料:
  • 需要一个用作所有函数的返回类型的类型。如果我需要生成一个AST,我应该使用什么返回类型?ANTLR3使用了 对象。 当输入节点时,我可以创建树的一个节点,但应该如何跟踪它的父节点? 关于如何将树重写规则转换为生成AST节点的方法,是否有任何示例?如果不是,是否可以为下面的规则提供一个示例? 下面是(3)的规则:

  • 问题内容: 据我所知,将Java源代码解析为AST(抽象语法树)的唯一方法是使用Java编译器树API:com.sun.source.tree 我有两个问题: 哪些JDK支持com.sun.source.tree? 是否有适用于所有JDK的便携式替代产品? 问题答案: 您可以使用tools.jar并使用它。 javac是开源的,因此您只需获取该代码即可(假设您可以处理许可证)。 Antlr也具有J

  • 我目前正在用eclipse AST生成源代码。与大多数示例不同,我在一个独立的应用程序中从头开始生成源代码,而不是eclipse插件。 从ASTParser读入时,您可以通过调用来激活修改,但当从头开始创建AST时,这不起作用,例如通过调用。 因此,不可能通过和

  • 我正在尝试创建一个自定义注释,例如,确保字段或方法既是又是,如果字段或方法既不是又不是,则会生成编译时错误,如以下示例所示: 到目前为止,我已经完成了两个自定义注释接口: 和: 正如所暗示的,我不知道如何生成编译时错误。Processor的文档清楚地表明我不应该抛出异常, 如果处理器抛出未捕获的异常,该工具可能会停止其他活动注释处理器。 它接着描述了当提出错误条件时会发生什么,现在是如何提出错误条

  • 问题内容: 我正在尝试创建一个自定义批注,例如,以确保字段或方法为and ,并且如果该字段或​​方法不为and ,则将生成编译时错误,如以下示例所示: 到目前为止,我已经完成了两个自定义注释接口: 和: 如所示,我不知道如何生成编译时错误。Processor 的文档清楚地表明,我不应该抛出异常, 如果处理器抛出未捕获的异常,则该工具可能会停止其他活动的注释处理器。 它继续描述了引发错误条件时会发生

  • 我想开发一个Groovy AST转换,在某些类上添加一些方法。所以我写了一个注释类和相应的转换类。然后,我用我的Groovy AST注释来注释一个java类。 当我使用嵌入式时髦编译器编译 java 注释类时(例如,通过以下代码段:),执行转换并将方法添加到代码段中称为的已编译类中。 但我无法用Gradle groovy插件和Intellij IDEA正确编译java类。 问题:每个人都可以帮助我