将 Scala AST 转换为源代码
给定一个 Scala AST,有没有办法生成 Scala 源代码? 我正在研究通过解析/分析其他 Scala 源代码来自动生成 Scala 源代码的方法。任何提示将不胜感激…
面向对象编程语言的 AST(抽象语法树)是什么样的?
我正在阅读有关 AST(抽象语法树)的内容,但我看到的所有示例都使用以下表达式: a + b * c 可以用类似 lispy 的语法表示为: (+ a (* b c) ) 这相当…
如何将外部文件传递给 ASTParser 或任何兼容的 AST 库?
参考这个上一个问题,我不是能够在 eclipse 之外获取 IFile 或 ICompilationUnit。 我需要 org.eclipse.jdt.core.dom 库来解析和提取树结构。 我看到…
ANTLR 的树语法 AST 图形视图
我目前正在使用 ANTLR 和 JAVA 构建 Javascript 编译器。 我使用 ANTLR 的树语法来生成 AST。 (仍然怀疑这是否比使用手动定义的抽象类来生成节点的异…
Treetop 语法中的空白
当指定允许或不允许空格时,我需要有多明确?例如,这些规则是否 rule lambda 'lambda' ( '(' params ')' )? block end rule params # ... end rule b…
C 子集的抽象语法树
出于教学目的,我们正在为 C 代码(子集)构建一个 javascript 逐步解释器。 基本上我们有:int,float...,数组,函数,for,while...没有指针。 jav…
ast.literal_eval() 支持 Python 2.7 中的集合文字吗?
在 What's New in Python 2.7 文档中,它说对集合文字的支持是从 Python 3.1 向后移植的。然而,这种支持似乎并未扩展到 ast 模块的 literal_eval() …
为什么有些 VariableDeclaration resolveBinding 返回 null 而其他则不返回
我正在开发一个eclipse插件来分析java源代码。我遍历整个 AST 树并编写一个访问者来访问每个变量声明语句,我注意到对于某些变量,“resolveBinding”…
如何避免使用 ANTLR3 构建中间和无用的 AST 节点?
我编写了一个 ANTLR3 语法,该语法细分为更小的规则以提高可读性。 例如: messageSequenceChart: 'msc' mscHead bmsc 'endmsc' end ; # Where mscHea…
Python AST:如何获取节点的子节点
我正在研究Python 2.6.5。 给定一个抽象语法树,我想获取它的子树。 大多数 StackOverflow 帖子讨论 ast.NodeVisitor 及其中定义的方法:visit()、gen…
使用 python ast 中 ._field 属性中存储的值
这个问题是我的 python ast 工作的结果。 我在 ast 中有一个节点,我想获取它的子节点。 ._field 属性给出节点的所有子节点的名称。然而,根据语法节…