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

javac.exe AST编程访问示例

章侯林
2023-03-14
问题内容

是否可以以编程方式访问javac.exe内部的抽象语法树(AST)?你能举个例子吗?


问题答案:

是的,这是可能的,但是仅从Java 6开始。Peter von
derAhé在这次采访中谈到了两个JSR
。JSR 199:

JSR
199编译器API包括三件事:第一个基本上允许您通过API调用编译器。其次,API允许您自定义编译器查找和写入文件的方式。我的意思是抽象的文件,因为编译器处理的文件不一定在文件系统上。例如,JSR
199的文件抽象允许您将文件包含在数据库中,并直接将输出生成到内存。最后,JSR 199
API使您能够以结构化的方式从编译器收集诊断信息,以便您可以轻松地将错误消息转换为例如IDE的编辑器中的行。

JSR 269是注释处理API。

本文对访问Compiler Tree
API进行了很好的概述。“
访问抽象语法树:编译器树API ”这一节似乎特别适合您的问题。

根据您的工作,您可能还需要查看Jackpot Rule Language,它是一个独立的重构引擎,可以插入到Compiler Tree中。



 类似资料:
  • 建议你使用声明式访问控制来实现业务网络定义中的访问控制规则。但是,你可以通过获取和测试当前参与者,在交易处理器中实现可编程的访问控制。你可以针对当前参与者的属性运行测试,以允许或拒绝交易处理器函数的执行。 在你开始之前 在你执行这些步骤之前,你必须对业务网络定义中的参与者进行建模,并将其部署为业务网络。你必须创建了这些参与者的一些实例,并向这些参与者发放身份。 下节的过程显示了使用下面参与者模型的

  • 问题内容: 我的资源文件中有很多字符串数组,我想根据用户输入以编程方式访问它们。 因此,如果c == 12,则info应该是名称为“ n_12”的字符串数组。有没有办法做到这一点,并且避免对数百种情况进行switch语句? 谢谢 问题答案: 您可以像这样获取资源ID 然后只需使用该ID 在这里看看有关的另一个示例。

  • 问题内容: 我正在建立一个在线订购系统,但我在澳大利亚,对于国际客户,我想以美元或欧元显示价格,这样他们就不必花心思从澳元转换。 有谁知道我是否可以通过PHP脚本访问的易于解析的格式从网上提取最新汇率? 问题答案: 您可以从yahoo以简单的格式获取货币换算: 例如,将GBP转换为EUR:

  • 如何从android SDK以编程方式访问KNOX计数器? 我想让我的应用程序检查值,以尝试并确定它是否运行在已扎根的三星手机上。

  • 本文向大家介绍python编程羊车门问题代码示例,包括了python编程羊车门问题代码示例的使用技巧和注意事项,需要的朋友参考一下 问题:   有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么。参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择。 请问: 1、按照你的第一感觉回答,你觉得不换选择能有更高的几率获