- 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧
我如何使用JDT获取赋值语句的类型。
我正在遍历使用ASTVisitor的类文件,以找到以日期(日历)为类型的赋值实例。尽管我可以使用getType方法为VaraibleDeclarationStatement找到此类实例,但是Assignment节点没有这种方法。
解决方案如下:
该分配被分解为LHS和RHS,因此请检查RHS表达式的类型。
……继续阅读 »
我想用源代码的AST表示形式创建一个XML文件,但是创建而不编译它。到目前为止,我找不到任何足够的解决方案。这是我尝试过的:
在clang中使用XML打印机-clang -cc1 -ast-print-xml-会很好,但它是removed from clang
src++ML工具箱,理论上运行良好,但解析器性能较差(对于Java,它甚至不完全与1.5兼容……继续阅读 »
我正在尝试将Java源代码转换为其他面向对象的编程语言。为此,我想遍历整个AST(由JavaParser生成),并收集Java源代码的每个组件,然后将它们相应地转换为我的目标语言。尽管我确实找到了有关查找特定节点(例如“类或接口声明”等)的信息,但在在线搜索中没有找到与遍历完整AST相关的任何信息。我们将不胜感激。
解决方案如下:
阅读完文档后,……继续阅读 »
我想用源代码的AST表示形式创建一个XML文件,但是创建而不编译它。到目前为止,我找不到任何足够的解决方案。这是我尝试过的:
在clang中使用XML打印机-clang -cc1 -ast-print-xml-会很好,但它是removed from clang
src++ML工具箱,理论上运行良好,但解析器性能较差(对于Java,它甚至不完全与1.5兼容……继续阅读 »
我正在使用ASTParser解析项目中的Java源代码。我设法获得了Java项目不同类中所有方法的名称和返回类型。我现在想知道在main中的方法之间是否有依赖关系。实际上,我还没有阅读该类的所有文档,这有点复杂。您知道是否有可能对主程序中方法的互连性有个了解吗?如果不可能,是否可以使用其他API?
谢谢。
解决方案如下:
由于很难确定将调用哪些特定方……继续阅读 »
我知道我可以使用explain extended command获得AST。我的问题是,如何使用Java API获得相同的信息。我的目标是获取有关查询的以下数据:
数据库源和目标(如果已应用)。
表源和目标(如果已应用)。
查询中涉及的字段。
我知道我可以使用Regex直接从查询字符串中获取上述数据,但是我想使用Java API。
您还有其他想法吗? ……继续阅读 »
所以我有一个AbstractSyntaxTreeNode.java类(这是其中的一部分)
public abstract class ASTreeNode implements Iterable<ASTreeNode>{
protected List<ASTreeNode> children;
protected ASTreeNo……继续阅读 »
我正在寻找可用于以可读格式打印树的ANTLR语法。当我尝试打印Java.g(http://openjdk.java.net/projects/compiler-grammar/antlrworks/Java.g)时,结果不方便。但是我发现一个语法(包括Java项目),可以很好地打印AST。此语法是来自Marton Papp(http://www.antlr.……继续阅读 »
因此,我花费了一整天的时间来弄清楚如何使用ANTLR。我有一堆Java源代码文件。我的目标是使用ANTLR为每个文件创建一个AST。最后,AST将转换为JSON,因此使用诸如python这样的动态语言来解析每个AST会更加容易。转换将使用此topic中的解决方案(尽管如果有人有更好的解决方案,我会很高兴听到)。我设法在getting-started页面中运行……继续阅读 »
我正在寻找一种方法来查找哪些MethodInvocation表达式利用了调用方方法声明的参数。
例如:
public void caller(int param1, int param2){
m1(param1)
m2(param2)
m3(param1, m4(param2))
}
我希望能够确定m1方法调用使用了“ ……继续阅读 »