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,除非是第一次訪問方法,它將是最後一次。