antlr4

    0熱度

    1回答

    如何匹配我的詞法分析器中其他標記之間的所有剩餘文本? 這裏是我的代碼: grammar UserQuery; expr: expr AND expr | expr OR expr | NOT expr | TEXT+ | '(' expr ')' ; OR : 'OR'; AND : 'AND'; NOT : 'NOT'; LPARE

    0熱度

    2回答

    C++(G ++ 5.4.0)具有奇怪的限制。第二行是允許的,但4號線是不允許的: extern yy(int x); extern yy(int x); // re-declaration of an extern function is allowed extern xx(int x, int y=3); extern xx(int x, int y=3); // but re-decl

    11熱度

    1回答

    我已經使用IntelliJ中的ANTLR4 plugin創建了這個示例語法,當我使用它的工具鏈爲一些無效內容(在本例中爲空字符串)生成可視化表示時,此表示形式似乎與我不同能夠在使用示例訪問者/偵聽器實現進行實際的分析樹遍歷時獲得相同的輸入。 這是語法: grammar TestParser; THIS : 'this'; Identifier : [a-zA-Z0-9]+

    0熱度

    1回答

    我很難搞清楚如何識別某些文本,前提是後面跟着某些東西。任務是認識AND,OR,和NOT,但如果他們是一個字的一部分: 他們應該在這裏確認: x AND y (x)AND(y) NOT x NOT(x) 但不是在這裏: xANDy abcNOTdef 如果它被空格或括號包圍,則會被識別。如果它位於輸入的開始處,前面是空格,後面跟着空格或括號,則不會被識別。 麻煩的是,如果我將括號作爲

    0熱度

    1回答

    作爲antlr4的一個完整的初學者,我還沒有能夠使用類似question的答案。它看起來對我說,片段在我的語法通過終端規則只叫,但仍提交字符串「myIdentifier」當解析器拋出以下錯誤: line 1:0 token recognition error at: 'm' line 1:1 token recognition error at: 'y' line 1:2 token reco

    0熱度

    1回答

    工作分配的要求「非法逃逸的字符串」表達的是: 「非法逃逸字符串:」 +錯誤字符串:當詞法分析器檢測串非法 逃逸。錯誤的字符串是從字符串的開頭到非法轉義的 。 所有支持的轉義序列如下: \ b退格 \˚F換頁 \ r回車 \ n換行 \噸水平標籤 \」單引號 \」雙引號 \反斜槓 我使用的代碼爲 「字符串」 作爲同這個帖子推薦: ANTLR4 - Need an explanation on thi

    1熱度

    1回答

    我想在多個文件中將我的ANTLR4語法分割出來,這樣我就可以更容易地測試它們了,我使用gradle作爲java項目中的構建工具。 兩個語法正確編譯由單獨的,但是當我導入添加到我的主語法我得到的下一個編譯錯誤 錯誤(110):kanekotic/specflow /騎乘者/ SpecflowFeature.g4:3:7 :無法找到或加載語法SpecflowScenario 的inherited語法看

    0熱度

    1回答

    我有一個語法: grammar Test; s : ID OP (NUMBER | ID); ID : [a-z]+ ; NUMBER : '.'? [0-9]+ ; OP : '/.' | '/' ; WS : [ \t\r\n]+ -> skip ; 像x/.123的表達式可以被解析爲(s x /. 123),或作爲(s x/.123)。通過上面的語法,我得到了第一

    0熱度

    1回答

    我上ANTLR4語法工作,用於解析的Python腳本DSL(Python中的一個子集,基本上)與目標設定爲Python 3中。我在處理換行時遇到了困難。 在我的語法,我使用的是移植到Python,使他們能夠與Python 3運行時可用於ANTLR,而不是基於Java的Bart Kiers's Python3 grammar for ANTLR4lexer::members和NEWLINE嵌入式代碼

    0熱度

    2回答

    我有3種類型的數字,數字,小數和百分比。 Percentage : (Sign)? Digit+ (Dot Digit+)? '%' ; Number : Sign? Digit+; Decimal : Sign? Digit+ Dot Digit*; 百分比和小數做工精細,但當我給你一個數字,除非我把一個符號(+或 - )在號碼前面,它不承認它是一個號碼。 number foo = +5 //