abstract-syntax-tree

    0热度

    1回答

    根据GreenTreeSnakes documentation on Assignment statements: 作业。 targets是节点列表,而value是单个节点。 targets中的多个节点表示为每个节点分配相同的值。 拆箱是通过在targets内放置Tuple或List来表示的。 我的问题是,什么时候拆包将目标放在List中而不是Tuple?给出的例子解包成一个Tuple。

    3热度

    1回答

    我想要解决的最初任务是为任意Clojure代码构建AST。所以谷歌建议为此使用https://github.com/clojure/tools.analyzer.jvm。我已经在简单的Clojure表单(print x)上试过这个库,并且此消息提示异常无法解析var:x。我曾经想过把AST构建成一个简单的过程,没有验证,解析变量等副作用。同样奇怪的是,没有关于如何忽略这个可变分辨率步骤的干净文档。

    1热度

    1回答

    我正在学习一个编译器类,并且我决定在haskell中完成它,但是我很难设置ast。我的问题是,我有一个Atom类和一个Expr类和Expr的一个实例可以是Atom,但当Expr立即是一个Atom它有一个问题。以下是示例: data Atom -- cannot be reduced farther = Const Int -- int is value | Var String

    0热度

    1回答

    我上ANTLR4语法工作,用于解析的Python脚本DSL(Python中的一个子集,基本上)与目标设定为Python 3中。我在处理换行时遇到了困难。 在我的语法,我使用的是移植到Python,使他们能够与Python 3运行时可用于ANTLR,而不是基于Java的Bart Kiers's Python3 grammar for ANTLR4lexer::members和NEWLINE嵌入式代码

    1热度

    1回答

    任何人都可以给我一个关于此行为的建议吗?下面的代码罚款运行: import ast node = ast.parse('def nsd(a, b):\n if b == 0: return a \n return nsd(b, a%b)\n\nprint nsd(18,15)') obj = compile(node, filename="<ast>", mode="exec") exe

    0热度

    1回答

    我试图插入一个导入声明成JavaScript代码段与Babel.js: const babel = require('babel-core') const t = babel.types const traverse = babel.traverse const template = babel.template const generate = require('babe

    0热度

    1回答

    我正在使用Python for AWS Lambda。我有Profile PATCH和Profile DELETE API调用。修补程序请求正常工作。 DELETE返回InternalServerError profile_request = ast.literal_eval(str(event['_body'])) PATCH使用完全相同的东西。我甚至尝试从PATCH复制粘贴来确保没有错字。

    0热度

    1回答

    我试图防止使用eval基于示例how-to-avoid-eval-in-python-for-string-conversion使用ast。挑战在于有十二个这样的self.ch%s_label被创建,但它的变量根据GUI中的用户输入而改变。 我的代码: import ast ...etc. .... channel_no += 1 ch_width = eval('self.ch%s_

    0热度

    1回答

    我探索__code__属性和ast模块,发现异常行为,该函数的第一个电话不输出任何东西: In [3]: def foo(): ...: print('foo') ...: In [4]: p = ast.parse("".join(inspect.getsourcelines(foo)[0])) In [5]: p.body[0].body = ast.parse("p

    0热度

    1回答

    我无法找到一个正在查看API的人,但基本上我需要以下内容:在所有Visit *方法之后,我会调用一个最终方法对数据成员执行一些后处理。我假设它会类似于访问TranslationUnitDecl,除非是第一次访问方法,它将是最后一次。