abstract-syntax-tree

    3熱度

    1回答

    當我使用ast模塊解析源代碼時,爲什麼FormattedValue中的Name的lineno屬性設置爲1,即使當f字符串不在線時1? 我想知道源代碼的哪一行被包含在一個函數定義中,所以我正在步行在FunctionDef節點下方的抽象語法樹節點。我將所有lineno屬性收集到一個集合中,並告訴我哪些行是功能定義的一部分。 但是,當Python3.6中出現f-strings時,它們以某種方式破壞了這種

    0熱度

    1回答

    我正在關注this series以瞭解clojure編譯器的工作原理。 我嘗試使用下面的代碼 (ns clojure.lang (:use clojure.core) (:import [clojure.lang Compiler Compiler$C])) (def form (read-string "(+ 1 1)")) (def expr (Compiler/a

    0熱度

    1回答

    我正在操縱EMF提供的OCL的AST。 我想知道是否有方法檢查部分樹? 如果是這樣,我應該使用什麼類? 我對文檔有點困惑 - 因爲我正在尋找「檢查語言」(OCL用於檢查,我想檢查OCL),谷歌迷路... 謝謝。

    0熱度

    1回答

    當需要類中有兩個或更多類似的訪問說明符時,我需要用C++代碼來捕獲案例。 比方說,有兩類 class A{ public: int b; public: int a; } class B{ public: int a; } 如何搭配A類(因爲它有兩個「公衆)與ASTMatcher但不是B類?

    0熱度

    1回答

    我想寫js代碼轉換器。我需要將JS解析爲AST做一些修改,例如添加一個新的導入聲明,並生成JS代碼。 目前我在生成JS代碼時遇到了一些麻煩。修飾器出現在錯誤的地方,生成器會移除JSX周圍的括號。 我是這個領域的新手,所以很可能在轉換/生成代碼時錯過了一些選項。 源代碼: // Core import React, { Component, PropTypes } from 'react'; i

    0熱度

    1回答

    我正在開發一個開發工具,它可以爲我提供一些代碼指標。 我想每進口值每庫經過源文件和計數用法(#loc)的工具。 I.e.對於lodash,我想知道isEqual,cloneDeep的用法。 我想有作爲輸出: +------------+------------+---------+ | Library | Imported | #LOC | +------------+------------

    1熱度

    3回答

    我需要在我的C++程序中表示一個樹層次結構(準確地說是一個AST)。好的,我多次看到了這樣的結構的例子,但有一點我不清楚。請告訴我爲什麼在C++中使用類而不是AST結構是很常見的?例如,考慮下面的代碼,即表示AST的節點: class Comparison { public: Node* getLhs() const { return m_lhs; } Node* getRh

    4熱度

    1回答

    我需要將新節點插入AST。例如,增加一個命名空間的函數: 談到這一點 - void foo(); 到這一點 - namespace bar { void foo(); } 我讀How to clone or create an AST Stmt node of clang?,但我不喜歡使用源到源編譯 TNX

    0熱度

    1回答

    我有一個unicode對象列表names,我試圖創建一個新列表parsed_names,以便將具有單個名稱的對象轉換爲字符串並將對象轉換爲名單被轉換成字符串列表: names = [u'Johnny', u'["Tamir", "Josh"]', u'Brad'] parsed_names = ['Johnny', ['Tamir', 'Josh'], 'Brad'] 下面的代碼做的伎倆,但

    2熱度

    1回答

    我想知道是否有可能在編譯期間直接訪問C#編譯器使用的C#AST(抽象語法樹)?我知道我可以使用Roslyn API獲得給定項目的AST,但這需要按照我的理解重新編寫和重新編譯源代碼。 這個想法是爲了改進一個自定義的MSBuild任務(目前使用Visual Studio 2017,dotnet核心),用於分析結果程序的某些屬性。 爲了加速這個過程,以某種方式插入編譯器或至少訪問緩存數據會很棒。 不需