antlr4

    1熱度

    1回答

    我有一個簡單Antlr4語法: grammar: test; expression: IF LPAREN logical ',' otherrule',' otherrule RPAREN # myExpression logical: ......; otherrule: ......; IF: 'if'; LPAREN : '('; RPAREN

    0熱度

    1回答

    我的antlr(我使用的是IntelliJ插件)匹配我的解析器規則中的第一個表達式的所有輸入,這顯然會導致錯誤。 簡單的例子: grammar test; rule : WORD '+' WORD; WORD : [a-z]+; 立即測試: 輸入= 'faefae' 得到我: 線1:6不匹配輸入 '' 期待 '+' (到目前爲止它是有道理的) 輸入= 'faefae +': 線1:0不匹配

    0熱度

    1回答

    我有一個antlr4.7這樣的語法,其中所有子規則都被標記。 date_expr : attr op=('+' | '-') dt_interval=ISO8601_INTERVAL #dateexpr_Op | DATETIME_NAME #dateexpr_Named | d=(DATETIME_LITERAL | DATE_LITERAL

    0熱度

    1回答

    我想做的語義檢查的語言,我用ANTLR4生成解析器和訪問者類。但是我遇到了一個問題。 如果我用這個方法print(type(newList[0].expression())) 我會得到一個類型這樣<class 'IDILParser.IDILParser.IdenetExpressionContext'> 但是,如果我運行下面的代碼,我會得到這樣的NameError: name 'IDILPars

    0熱度

    1回答

    我有一個解析器規則定義爲:「」 text: '"'.*?'"' ; 然而這failes如果文本包含標點符號。 ",;:!?./§/*-+)({}[]abc" line 1:1 token recognition error at: ',' line 1:2 token recognition error at: ';' line 1:4 token recognition error a

    2熱度

    1回答

    我使用Antlr4解析C代碼,我使用下面的語法解析: ​​ 默認情況下上面的語法不提供任何解析規則獲得預處理器語句。 我改變了語法稍微得到通過添加以下行 externalDeclaration : functionDefinition | declaration | ';' // stray ; | preprocessorDeclaration ; preprocessorDecl

    1熱度

    1回答

    試圖使用ANTLR 4爲Oracle DB中的某些Select語句創建簡單的語法。並面臨一個小問題。我有以下的語法: 語法&詞法 column : (tableAlias '.')? IDENT ((AS)? colAlias)? | expression ((AS)? colAlias)? | caseWhenClause ((AS)? colAlias)? | rankAggregat

    1熱度

    1回答

    的Python(均爲2/3)中的代碼語法的解析器蟒模塊中以下行從語法ANTLR4結果產生: self.state = 79 self.state() 正如預期的那樣,這導致以下錯誤: TypeError: 'int' object is not callable

    0熱度

    3回答

    我有一個語法是這樣的: grammar MyGrammar; field : f1 (STROKE f2 f3)? ; f1 : FIELDTEXT+ ; f2 : 'A' ; f3 : NUMBER4 ; FIELDTEXT : ~['/'] ; NUMBER4 : [0-9][0-9][0-9][0-9]; STROKE : '/' ; 此作品不夠好,田間地頭f1 f2

    0熱度

    1回答

    我想知道如何在語法分析過程中檢查所有路徑在函數中的返回值。所以說,在詞法 RETURN: 'return'; PRINT: 'print'; IF:'if'; ELSE: 'else'; THEN:'then'; PLUS: '+'; MINUS:'-'; EQUALS: '=='; DIGIT: '0'..'9'; OPEN:'{'; CLOSE:'}'; STRING: