antlr4

    4熱度

    1回答

    我想用Ant#4解析一個大文件(大約500MB)使用c#。但是我有一個OutOfMemoryException。下面 我當前的代碼描述: var path = GetInput(Path.Combine(DatFilePath)); // Build the large file var inputStream = new StreamReader(path); var input = new

    -1熱度

    1回答

    我已經開始使用ANTLR爲克隆檢測和刪除系統構建解析器和詞法分析器。 我想建立一個語法不要區分私人,公共和受保護的關鍵字,因爲我想將它們視爲相同的東西,但是當我嘗試這樣做時,它不會正確標記我的輸入。 我已經從link中取出了我的grammer .g4文件,並在其中做了一些修改,如下所示。 PRIVATE : 'public' || 'private' || 'protected'; RETUR

    1熱度

    1回答

    我想獲得ANTLR4解析器的特定錯誤信息。 我發現有兩種方法可以處理錯誤:errorListener和errorHandler。 // set error handler parser.removeErrorListeners(); parser.addErrorListener(new QueryErrorListener()); parser.setErrorHandler(new B

    0熱度

    2回答

    我知道任何源代碼都可以轉換爲AST。現在我想將該AST轉換回源代碼,但是與語言無關。有什麼工具可以幫助我嗎? 通過獨立於語言,我特別指python和java。

    0熱度

    1回答

    我很確定這是不可能的,但我想問一下以防萬一。 我有共同的ID令牌定義: ID: LETTER (LETTER | DIG)*; 的問題是,在語法我需要解析,也有你有一個單一的字符作爲操作數,像一些說明: a + 4 但 ab + 4 是不可能的。 所以我不能寫這樣一個規則: sum: (INT | LETTER) ('+' (INT | LETTER))* 因爲詞法分析器會考慮「一

    0熱度

    2回答

    輸入內容: 語法: grammar test; p : EOF; Char : [a-z]; fragment Tab : '\t'; fragment Space : ' '; T1 : (Tab|Space)+ ->skip; T2 : '#' T1+ Char+; 匹配的結果是這樣的: [@0,0:6='# abc',<T2>,1:0] <<<<<<<< PLACE

    0熱度

    2回答

    我正在使用ANTLR 4.7。 輸入如下: [section a] bla bla bla [section b] <<<<<<< to ignore bla bla bla <<<<<<< to ignore [section c] bla bla bla 如何igonre在[section b]的全部內容? 目前,我使用的是詞法規則如下圖所示: Section_Igonre

    1熱度

    1回答

    我是新來Antlr4/CFG,我試圖寫一個解析器形式的布爾查詢DSL (ID和ID和ID(或ID號或ID )) 所述邏輯還可以採取的形式 (ID或ID,或(ID和ID和ID)) 一個更復雜的例子可以是: (((ID和ID和(ID或ID,或(ID和ID))))) (括在括號中的任意量) 我試過兩件事。首先,我做了一個非常簡單的語法分析器,它結束瞭解析一切左至右: grammar filter;

    0熱度

    1回答

    我正在與Antlr4一起解析布爾類DSL。 這是我的語法: grammar filter; filter: overall EOF; overall : LPAREN overall RPAREN | category ; category : expression # InferenceCategory | category AND

    1熱度

    1回答

    我想用ANTLR來創建解析器,我跟着指示,從 Here 以下所有指令後,當我運行以下命令 antlr4 -visitor d:\ t \ arithmetic.g4 我收到此錯誤信息: 錯誤:無法找到或加載主類org.antlr.v4.Tool 使用這個jar文件: ç :\ Program Files \ Java \ lib \ antlr-4.6-complete。 jar