abstract-syntax-tree

    0热度

    3回答

    在下面的模块中,我尝试添加myModel以进行调试以查看AST。 module FlowGraphsAndClassDiagrams import analysis::flow::ObjectFlow; import lang::java::flow::JavaToObjectFlow; // Added to check the M3 model import lang::java::

    1热度

    1回答

    我正在研究解析由Swift编译器(swiftc -dump-ast)生成的AST转储的ANTLR 4语法。 查看Swift程序示例和下面的相应AST转储。 不幸的是,由于bug in the compiler转储可能包含不平衡的括号(在某些树节点中缺少右括号)。 更改如下treeNode规则允许解析这种损坏输出: treeNode : '(' treeNodeContent ')'

    2热度

    2回答

    我有我的自定义类代表一个对象。 我想使该对象与“ast.literal_eval()”兼容“ 我该怎么做?如有必要,我可以将必要的方法/代码添加到我的课程中。

    0热度

    2回答

    有没有更好的方法来做到这一点?我需要知道v的类型是否是内置的“错误”类型。我觉得应该有这样做的更合适的方法: import ( "go/ast" "go/types" ) func IsError(v ast.Expr, info types.Info) bool { t := info.Types[v] return t.Type.String() =

    1热度

    1回答

    我试图建立一个小程序libclang它检索特定函数调用的函数/方法的定义。 举例来说,我有以下main.cpp: int add(int x, int y) { return x + y; } int main() { int a = 1; int b = 1; int c = add(a, b); return 0; } 我想打

    0热度

    1回答

    要返回完全建立AST,有人告诉我,我应该用我在其中存储它一个全局变量: %{ AST::Root* root; %} %start program %% program: ... { $$ = root = new AST::Root(...) } ... ; 但是,这是唯一的办法?还是有更好的办法,也许一种方式直接从yyparse()返回

    0热度

    1回答

    我看到类似的问题已被问到,并且有几个答案,但这些答案都不适用于我正在查找的内容,所以在这里我走 - 我使用XCODE 8.3和我在下载LLVM并遵循所有的步骤在这里: - http://clang.llvm.org/get_started.html 我创建了一个Xcode命令行C++工具中,我试着包括CLANG标题,如clang/ASTMatchers/ASTMatchers.h等。 它引发了一堆

    0热度

    1回答

    我对python和pycparser比较陌生。我已经使用来自https://github.com/eliben/pycparser的c-to-c.py文件将c文件解析为AST。我正在尝试使用AST创建CFG,但我无法将信息作为字符串存储在.show()中。我如何去存储这个.show()信息,我试图使用test=ast.children()[0][1].show()然而,当我试图打印test出它说“

    1热度

    2回答

    所以,我正在为我正在制作的语言做一个类似于Python的解释器。现在我明白这不是一个小任务,我不期望它工作得很好或者做得很多,但我希望它具有一些基本功能(变量,函数,循环,if语句等)。 因此,目前我处于解释器获取文件并将其分割为令牌列表的阶段,现在我准备将这些令牌转换为AST。我打算用递归下降解析器来做到这一点,我相信我明白,但这是问题所在。比方说,我有以下输入 1 + 2 * 3 这将输出

    0热度

    1回答

    我正在尝试为简单编程语言(作业)构建AST。 但是我无法让它工作:看起来中间值($ 1,$ 2,...)是无效的,并不对应于我在“子表达式”中返回的内容。 这里是我的项目的野牛代码(我认为问题在这里,而不是在我的AST函数):我已经把注释放在我遇到无效值的地方。这是我使用Bison的第一个项目,所以我不确定我是否正确做事。 我也使用Flex,但flex代码似乎正常工作。 谢谢。 %{ #incl