abstract-syntax-tree

    3熱度

    1回答

    是否有任何常用的方法,甚至是用於使用分配關聯性和優先級的(二元)運算符打印(和解析)語法樹的庫結果儘可能少地使用括號? 取命題演算式爲例: data Formula = Atom String | Not (Formula) | And (Formula) (Formula) | Or (Formula) (Formula) | Imp (Form

    1熱度

    1回答

    我正在使用INRIA勺。 我有一些動態方法的調用,如以下之一: a.doSomething(); 我可以使用CtInvocation實例的getTarget()方法獲得對可變訪問a。我的任務是生成代碼將a存儲到文件中。爲此,我需要a的類型和來源位置(類名稱,行等),以便我可以生成類似logger.logSerializable(a, "My.Class:21")或類似logger.logDou

    0熱度

    1回答

    我使用的是內置的解析器從源代碼生成的AST: const ts = require('typescript') //... const ast = ts.createSourceFile(filename, fs.readFileSync(filename).toString(), ts.ScriptTarget.ES6, true) 鑑於該樹中的任意節點,如何生成從節點的打字稿?

    1熱度

    2回答

    我使用的是內置的解析器從源代碼生成的AST: const ts = require('typescript') //... const ast = ts.createSourceFile(filename, fs.readFileSync(filename).toString(), ts.ScriptTarget.ES6, true) 有沒有辦法讓推斷出的類型從AST的變量?例如,在下面的

    0熱度

    1回答

    免責聲明:我只是一個卑微的實習生,所以請原諒我,如果我做了錯誤的基本:( 我寫一個自動API生成和類需要的JavaDoc以及評論,因爲API包含的一些值不應寫在JavaDoc(例如exampleResponse) 但是,似乎上述各個方法的註釋替換了Javadoc,所以當我想要獲取來自JavaDoc的描述(我想這樣做,我不必在評論中再次寫),我有一個問題。 使用getJavadoc()總是返回nul

    1熱度

    2回答

    查看了declarationEmitter和變量聲明,它具有函數#emitVariableDeclaration,最終調用#writeTypeOfDeclaration。這段代碼沒有做什麼說---它需要一個變量聲明並打印變量及其類型---這正是我想要做的。 問題是,當我複製此代碼時,VariableDeclaration節點沒有符號屬性...因此,類型始終爲「任何」。 初始化「符號」是否存在缺失步

    5熱度

    1回答

    比方說,我有兩個SyntaxTree小號一個和乙, 其中乙已經將更改應用到一個生產。 我想獲得以下信息: SyntaxNodes已經從一個去除產生乙 SyntaxNodes已添加到一個到&令牌&令牌生產B 這是否有API? 如果沒有,如何有效地計算? 此信息必須可用於Roslyn, 因爲在樹之間共享不變的GreenNode。 我能想到的一個解決方案是使用SyntaxTree.GetChangedS

    2熱度

    1回答

    假設我有一個lambda,並且我使用了reify將它轉換爲一個纏繞在Tree上的Expr。例如 val expr = reify{x: Int => 3*(4+x)} 我可以按如下 val toolbox = currentMirror.mkToolBox() val fun = toolbox.eval(expr.tree).asInstanceOf[Int => Int] printl

    3熱度

    1回答

    我正在研究用於描述UI小部件的簡單玩具語言。我用bison/flex來實現語法。我現在想從語法規則中創建一個AST。但是,我不確定AST的「粒度級別」以及它應該包含哪些內容。從我所讀到的,AST應該是「最小的」,並避免提供冗餘信息。同時顯然我不應該放棄原始資料中的任何信息。構建AST時是否有特定的規則? 的語法如下: %{ #include <string> #include <iostre

    0熱度

    1回答

    我不知道如何解決這個家庭作業問題;我們被告知爲一個名爲Exp的語言編寫flex和bison代碼,該代碼提供結構控制:序列,條件和重複。 我編寫了代碼,但我不知道如何構建AST並將其顯示在XML文件中。這裏是Flex代碼: START%{ #include"parser.tab.h" %} lettre [a-z] chiffre [0-9]