我想在C ++中创建一个Java源代码解析功能。 此应用程序的目的是在内部数据结构中生成语法树 ,以便我能够遍历数据树结构并自行分析。

哪些工具可以帮助我实现目标?

===============>>#1 票数:3

也许ANTLR可以帮助您,但理解Java程序需要加载该程序中引用的相关类。

===============>>#2 票数:1

你可以使用yacc 这个语法

===============>>#3 票数:0

你也可以尝试;

http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/

它有不同的端口,如C#,Java,C ++,F#,VB.Net,Oberon等,它有一个很好的语言扫描仪和解析器,适用于不同的语言。 因此,您可以使用它从c ++解析java。

  ask by melter translate from so

未解决问题?本站智能推荐:

3回复

Java中的C源代码AST解析器

我正在寻找可以从中创建全面的AST的C源代码解析器。 最好是Java库(我不想在这里使用Python-> http://code.google.com/p/pycparser/ )
6回复

在java环境中解析C ++源代码[关闭]

我有一个C ++应用程序,我也有它的源代码,它建立在.Net框架上。 我现在正在寻找的是一个工具(理想上是免费的),它将我的源代码作为输入,经过一些预处理或一些必需的编程,给我一个源代码元素结构依赖的中间表示,如AST或一个调用图。 我正在使用java来检查这个C ++源代码,所以如果解决方
2回复

如何从Eclipse JDT Parser的已解析Java源代码获取行?

在我的硬盘中,我有以下来源: 请注意,在此文件(A.java)中,我们有许多空行,并且一个命令不一定写在同一行中,换句话说,它可能分散在许多行中(请参见方法“ toIntArray”的最后一行)。 当我用AST解析此源代码时,“ CompilationUnit”的“ toString”
1回复

使用ANTLR在Java源代码中查找变量用法/引用?

变量用法基本上是变量在相同范围内声明后的每次出现,其中可以对其应用某些操作。 在IntelliJ和Eclipse等一些IDE中甚至支持可变用法突出显示。 我想知道是否有办法使用ANTLR找到变量用法? 我已经通过在Java8.g4上运行ANTLR生成了Lexer , Parser和Ba
2回复

生成C / C ++代码时表达式的相关性和优先级?

我编写了一个生成AST的基本编译器,正确地考虑了表达式中的运算符优先级。 但是,在执行代码生成以生成C ++代码时,我不确定如何处理括号的使用。 对于这个表达式: AST下面: 应该正确生成包括括号的前一个表达式,但是如果第二个运算符是加法运算符(例如),则括号将是不必要
1回复

将java代码解析为抽象语法树

我使用eclipse(org.eclipse.jdt)作为AST。 我想(?)我在网上得到了一些有用的代码来获取字段的声明和用法。 但我陷入了如何获得根节点的困境。 如果我执行以下操作,那么它会打印出我放入的整个java代码,而不是根AST节点。 我不知道我是否误解了AST
2回复

解析C ++和控制流

有一个巨大的 C ++项目是使用CMake和gcc 4.2.3构建的。 该应用程序采用多个过程。 最终目标是列出所有可能写入日志文件的错误消息 。 信息和调试消息也被写入该文件。 我发现在一些main.cpp(文件从头开始)中,有一个catch表达式可以写入文件。 因此,我需要
2回复

使用C ++,AST的Bison / Flex教程,并重新包含词法分析器和解析器

我正在学习解析,野牛和lex。 我正在寻找一个清晰而完整的教程/示例来演示以下所有内容: C ++(不是C)抽象语法树。 重入词人。 可重入的解析器。 从字符串中读取(与文件相比)也很好。 我找到了多个示例和教程,但每个示例和教程通常只满足上述几个要求
1回复

如何将LR(1)解析转换为抽象语法树?

我已经编码了一个表驱动的LR(1)解析器,并且运行良好,但是在将解析解析为语法树/抽象语法树的阶段中,我有些脱节。 这是一个我非常热衷的项目,但是我真的在这里陷入了僵局。 提前谢谢你的帮助。 编辑:同样,我的解析器仅使用2d数组和一个动作对象,该对象告诉它下一步去哪里,或者它减少了哪里
10回复

将C ++解析为AST的工具[关闭]

请建议一个现成的工具,用于将C ++代码解析为抽象语法树? 基于Lex / Yacc的工具将是首选,但其他任何东西也是可以接受的。