18得票2回答
通过walrus :=操作符进行多重赋值?

我曾尝试使用海豹运算符进行多次赋值,还看到了StackOverflow上的this等问题,也无法使用海豹运算符来赋值多个变量,我只是想知道成功的多重赋值应该是什么样子的,或者是否不可能。 这样做的目的是为我的库mvdef添加支持,以便在mvdef.src.ast_util模块的find_as...

9得票1回答
如何使用libclang检测枚举和作用域枚举之间的差异?

我一直在使用优秀的C接口libclang(http://clang.llvm.org/doxygen/group__CINDEX.html)编写C++ AST解析器。不幸的是,C++11作用域枚举和旧式枚举之间似乎没有区别:它们都具有CXCursor_EnumDecl的游标类型和CXType_...

8得票2回答
如何获取Kotlin AST?

我有一个包含Kotlin源代码的字符串。如何在运行时编译它,并获取抽象语法树和类型信息以进行分析?

7得票2回答
编译语言的优势与尽早执行构建后的AST相比是什么?

编译程序生成机器码的好处/缺点与仅从源代码构建AST并在遍历树时执行操作相比有何优劣之处? 在一种方式中选择而不是另一种方式,是否有特定的原因?

10得票3回答
如何将包含有效Erlang表达式的字符串转换为抽象语法树(AST)?

我想把一个包含有效 Erlang 表达式的字符串转换为其抽象语法树表示形式,但到目前为止都没有成功。 下面是我想要做的示例。编译后,调用 z:z(). 生成模块 zed,通过调用 zed:zed(). 返回对给定列表应用 lists:reverse 的结果。-module(z). -expo...

13得票5回答
抽象语法树有什么用途?

我正在自学编写编程语言解释器,了解到抽象语法树(Abstract Syntax Trees)。我对它们有一定的了解,但不知道它们的用途。 为什么抽象语法树很有用?

20得票4回答
在Python中获取AST节点的父节点

我正在使用Python 3的抽象语法树(AST)。 ast库提供了许多方法来获取节点的子级(可以使用iter_child_nodes()或walk()),但没有方法可以获取一个节点的父级。此外,每个节点都有指向其子级的链接,但它没有指向其父级的链接。 如果我不想编写ast库的插件,那么我如何...

11得票1回答
如何使用Clang从C++字符串生成AST?

我想使用Clang来操作C++源代码,但是我在寻找API时遇到了困难。 我想从一个C++源代码字符串中生成AST,类似于:auto myAst = clang::parse("auto x = 1 + 1;"); 这个有最小工作示例吗?

10得票1回答
在Scala 2.10的抽象语法树中进行搜索

如何在Scala 2.10 AST中递归搜索元素? 这些树可能是power.trees(code)或mirror.mkToolBox().parseExpr(code)的结果。 编辑。在2.10.0-RC1中,parseExpr已重命名为parse。 我具体想要做的是通过方法名从给定类/对...

9得票1回答
存在递归绑定器的情况下,将PHOAS变量的正和负出现分离。

Parametric Higher Order Abstract Syntax(PHOAS)中的结构化图编码 我正在阅读Olivera和Cook的论文“Functional Programming with Structured Graphs”(幻灯片, 草稿论文),他们提出了一种优雅的解决...