antlr3

    1熱度

    2回答

    請參閱下面的語法。當我嘗試解析: String s = "UNH+message refere+APERAK:D:97A:UN\n"; 我得到以下錯誤: line 1:34 mismatched character '\n' expecting 'H' line 2:0 missing RDEL at '<EOF>' 這沒有意義對我來說,因爲它似乎是在尋找UNH遇到之前\ n,這將不遵循

    1熱度

    1回答

    我需要解析字符串是這樣的: "qqq www eee" -> "qqq", "www", "eee" (case A) "qqq www eee" -> "qqq", "www", "eee" (case B) 這裏是語法我目前有: grammar Query; SHORT_NAME : ('a'..'z')+ ; name returns [String s]: SHORT_NAM

    1熱度

    1回答

    我打算創建一些能夠自動翻譯從Java到C#的東西(並在之後進行反向處理)。我需要的是可以用來將Java源代碼轉換爲C#源代碼的東西。 我碰到了ANTLR,但我不確定如何將它用於我的任務。我知道ANTLR對Java和C#都有強大的支持,現在已經有兩種語法,即lexing/parsing過程,然後是AST創建,最後是樹walker。理論上來說,我明白了,但實際上把它運用起來的時候,我甩掉了硬核。 有人

    3熱度

    2回答

    我想構建一個antlr語法來解析模板語言。該語言可以嵌入任何文本中,並且邊界標記爲打開/關閉標記:{{/}}。因此,一個有效的模板看起來是這樣的: foo {{ someVariable }} bar 凡foo和bar應該被忽略,{{和}}標籤內的部分應被解析。我發現this question基本上有問題的答案,除了標籤只有一個{和}。我試圖修改語法來匹配2個打開/關閉字符,但只要我這樣做,B

    1熱度

    1回答

    我正試圖將爲未知工具開發的現有語法移植到Antlr。 在語法中有一個用例,其中有兩個標記,例如TEXT和TEXT_WITHOUT_A 語法中的某些規則應該只允許沒有a的文本,但剩下的就可以使用文本。 我最初的嘗試產生了下面的語法,但問題是,當txt實際上是它的一個超集時,Antlr匹配更具體的語法規則(txtwa)。如果我輸入一些不包含a的東西,Antlr不遵循文本規則(txt)預期的輸入是txt

    2熱度

    1回答

    我使用可用的目標C語法here,並試圖解析這個代碼「人品沒有可行的替代方案」: int main() { int k=0; } 這是一個客觀的C代碼,它應該得到解析,但它是當我調用函數translation_unit時給了我以下錯誤。 錯誤是: line 1:0 no viable alternative at character 'main' line 1:0 no viab

    8熱度

    1回答

    我在Eclipse Indigo上使用ANTLR的antlr-3.4-complete-no-antlrv2.jar版本。 我已經安裝了ANTLR IDE插件以及ZEST和GEF。在生成組合語法文件並添加標頭,詞法分析器標頭和規則時,Eclipse不會生成解析器和Lexer文件。 如果我使用antlr-3.2.jar它的確如此。我可以使用java -classpath antlr-3.4-comp

    2熱度

    1回答

    背景:我創建了一個ANTLR語法。我能夠使用ANTLRWorks進行測試和調試,並驗證瞭解析器創建了我腦海中的AST。現在,我想爲AST編寫一個樹語法,解析樹並用ANTLRWorks調試樹語法。 問題:我想用ANTLRWorks測試和調試樹語法。因此,我想分析解析器創建的AST。在使用ANTLRWorks測試樹語法時,如何將AST指定爲輸入? P.S. 我已經在Does anyone know o

    2熱度

    2回答

    我試圖實現解析查詢的語法。單個查詢由items組成,其中每個項目可以是name或name-ref。 name是mystring(只有字母,無空格)或"my long string"(字母和空格,總是加引號)。 name-ref與name非常相似,唯一的區別是它應該從ref:(ref:mystring,ref:"my long string")開始。查詢應至少包含1個項目(name或name-ref

    1熱度

    1回答

    NAME: ('a'..'z')+; QUOTED_NAME: Q NAME Q; Q: '"'; name : NAME | QUOTED_NAME; 爲mytext結果是mytext 爲"mytext"結果是"mytext" 有什麼辦法考慮Q當詞法源字符串,但是消滅它當請求QUOTED_NAME的結果呢?所以,我需要的是: 爲mytext結果是mytext 爲"mytext"結果是