Antlr3 AST 创建:如何测试可选子规则?
我正在寻找一种方法来了解是否使用了可选子规则。例如: my_rule returns [node* n = 0]: (v = (optional_subrule)?) { $n = new node($v ? $v.n : MY…
如何在 Eclipse 中搜索对 AST 或 CompilationUnit 上字段的引用?
嗨, 我正在开发一个 Eclipse 插件。我 需要找到所有参考文献 使用 AST 或 jdt.core.dom 的源 或类似的东西。我需要这个 诸如 ASTNodes 之类的引用,…
使用 eclipse AST 检查 Java 代码片段
我正在尝试使用 eclipse 抽象语法树检查一些 Java 代码片段的语法和逻辑正确性。 我对如何做到这一点做了一些研究,我阅读了文档,但我还没有找到明确…
从Python到CIL(C中间语言)的翻译
最近在做Python源码的静态分析。 我们组已经有一个用 Ocaml 编写的 CIL(C 中间语言)静态分析器。我们希望重用这个分析器,因此我们理想的方法是将 P…
我如何编写代码来计算 CompilationUnit 中的代码行
我想直观地计算编译单元的代码行数。如何使用CompilationUnit的方法:CompilationUnit.getLineNumber([THELASTLINE].getPosition())来获取该compilati…
静态分析 Python 模块以查找分配
我想让我的用户编写一个像这样的 __init__.py 模块: ''' This is the simpack's docstring. Bla bla bla. ''' name = 'Name of the simpack' tags = …
递归下降解析和抽象语法树
我正在硬编码一个递归体面的解析器,主要是为了学习目的,但我遇到了一些麻烦。 我将使用CSS3语法的此简短摘录为例: simple_selector = type_selecto…
ASTParser 依赖项
我正在尝试在 此 教程的帮助下学习 ASTParser。当我编译第一段代码时: ASTParser parser = ASTParser.newParser(AST.JLS2); parser.setSource("".toC…
ANTLR3 C 目标 - 解析器返回“未命中”出根元素
我正在尝试使用 ANTLR3 C Target 来理解 AST,但遇到了一些困难。 我有一个简单的类似 SQL 的语法文件: grammar sql; options { language = C; outpu…
基于抽象语法树遍历生成JUnit的代码
假设我有以下类和方法: package generation; class HelloWorld { public boolean isEven(int val) { if ( (val % 2) == 0) return true; else return…