antlr3

    1熱度

    1回答

    我所遇到的一個問題,當我試圖解析堆疊算術比較表達式: "1<2<3<4<5" 成連詞的邏輯樹: CONJUNCTION(COMPARISON(1,2,<) COMPARISON(2,3,<) COMPARISON(3,4,<) COMPARISON(4,5,<)) Antlr3樹重寫規則是否有一種方法來遍歷匹配的標記並從目標語言中創建結果樹(我正在使用java)?所以我可以從元素x,x-1

    1熱度

    1回答

    我正在嘗試編寫一個布爾表達式語法,它可以將WHITE_SPACE作爲隱式邏輯AND處理。例如「A B」意味着「A和B」。 但是,我還想將美國格式的電話號碼視爲一個單獨的toke,例如(123)456-7890。我的語法可以覆蓋大多數情況,但在AREA_CODE上仍然面臨着語法歧義。 這是我的語法: grammar myBooleanExpr; options { language

    0熱度

    1回答

    我正在關注http://antlr3.org/api/C/buildrec.html教程。 這是我的理解是,爲了刪除/修改令牌它們是由解析器我必須使用無緩衝流COMMON_TREE_NODE_STREAM 這種觀點認爲消費之前,我應該怎麼養活解析器? 當前我使用tstream = antlr3CommonTokenStreamSourceNew(ANTLR3_SIZE_HINT,TOKENSOUR

    2熱度

    1回答

    我有一個實用的方法,我用在組合語法中的詞法分析器和分析器 - 生成的代碼。除了將它移動到外部工具類以外,是否有一些方法可以去除複製/粘貼到成員和lexer :: members,並且在生成的Lexer和Parser中都有這個方法? 我正在使用Antlr 3 ...我想如果有什麼新的東西在4中添加也是有用的信息。

    1熱度

    1回答

    我在Antlr3中有以下(簡化)問題。 我有一套使用特殊字符串和常規字符串的語法規則。兩者都是單引號。特殊字符串符合模式(例如,假設它們只包含字母)。還有一個函數確定匹配的字符串是否特殊。空白被忽略。 現在假設例如isSpecial只對字符串「foo」返回true。如果我正在查看「'foo」'bar''123'',詞法分析器應該爲foo生成1個特殊字符串標記,然後生成2個常規字符串標記。 我試圖做

    0熱度

    1回答

    我是antlr3的新手,我試圖編寫一個接受'+'和' - '作爲特殊符號的詞法分析器,但當看到'++'運算符它應該把它當作一個錯誤,但我不知道如何實現它,現在用下面的規範將它標記爲'++'作爲兩個標記'+'和'+'。 SPECIALSYMBOL: ('+'|'-');

    0熱度

    1回答

    我使用的插件和ANTLR的版本3.3轟下一個項目生成代碼稱爲CBCTokens.g。在同一個包中,我有一個名爲MyScribe.g的解析器語法文件,它使用tokenVocab = CBCTokens引用令牌。我在同一個目錄中也有一個樹語法。 但是當我嘗試執行構建,我的第一個文件得到一個錯誤的插件遇到了一句話: Error(1): cannot write file : java.io.FileNo

    0熱度

    1回答

    Hibernate使用Antlr(3.5.2工程,顯然),我使用Hibernate(因此也在OSGi環境中使用Antlr)。我已經將antlr-complete-3.5.2-SNAPSHOT.jar封裝爲OSGi包,但我導出了包中的所有包。問題很簡單。我需要知道這個包中的哪些Java包是私有的,哪些是公共Antlr API的一部分。現在,我在出口下的一切 : antlr.*; org.antlr

    0熱度

    1回答

    片段 EXEC:( 'E' 'X' 'E' 'C'); 片段 CMD:( 'C' 'M' 'D'); 片段 BEGIN:( 'B' 'E' 'G' 'I' 'N'); 片段 END:( 'E' 'N' 'd'); 片段 SEMICOLON: ';'; ExecCommand: EXEC Whitespace CMD Whitespace BEGIN WhiteSpace? SEMICOLON (o

    3熱度

    1回答

    解析以特定字符開頭的單詞嗎? 我一直在嘗試以下,但我不能得到任何有希望的結果: //This one is working it accepts AD CD and such example1 : .'D' ; //This one is not, it expects character D, then any ws character then any character