antlr3

    0熱度

    1回答

    時,我有下面的C函數來捕獲由ANTLR拋出識別錯誤: void recognition(pANTLR3_BASE_RECOGNIZER recognizer, pANTLR3_UINT8 *list) { pANTLR3_PARSER parser; pANTLR3_EXCEPTION exception; parser = (pANTLR3_PARSER) (

    1熱度

    2回答

    使用ANTLR 3,我的詞法有規則 SELECT_ASSIGN: 'SELECT' WS+ IDENTIFIER WS+ 'ASSIGN' WS+ (('TO'|'USING') WS+)? ,這也符合 SELECT VAR1 ASSIGN FOO 但是這不符合 SELECT VAR1 ASSIGN TWO 鑑於我在標準中將TO | USING標記爲可選項。 從生成的Java代碼,

    0熱度

    1回答

    在以下代碼上運行ANTLR3時,我收到警告消息 - 警告(200):MYGRAMMAR.g:40:36:決策可以使用多個備選方案匹配諸如「QMARK」之類的輸入:3,4 因此,對於該輸入禁用替代項4。 該警告消息指向我postfixExpr。有沒有辦法來解決這個問題? grammar MYGRAMMAR; options {language = C;} tokens { BANG

    0熱度

    1回答

    如何捕捉詞法分析器中的異常?在解析器如果規則失敗(或不匹配與給定的輸入流)ANTLR的會拋出異常,我們可以輕易地捕獲這個exception.Catch在Antlr3.Ref詞法分析器異常:Error handeling in antlr 3.0 ... attribute : Value1 integer1["Value1"] { System.out.println("Accepte

    2熱度

    1回答

    我是Antlr-4的新手,但對Antlr-3有一些想法,可以在不需要任何分析程序規則的情況下創建詞法分析器;爲了匹配匹配的一些令牌就像一個詞法規則: CLASS: 'Class' WS+ id=ID { System.out.println($id.text); } ID : [a-z]+ ; WS : [ \r\t\n]+ 我怎麼能做到這一點了在ANTLR中-4沒有任何的解析器,因

    0熱度

    1回答

    如何獲取Antlr 3解析器中的上一個令牌?其實我可以通過使用「input.LT(-1)」輕鬆搞定,但我不想使用lookahead.So是否有任何其他方法在解析器中獲得前一個標記?

    0熱度

    1回答

    我需要將語法文件從antlr2語法重寫爲antlr4語法,並具有以下問題。 1)Bart Kiers表示在這個SO post中有一個嚴格的命令:語法,選項,標記,@header,@members。此antlr2.org post不同意聲明標題在選項之前。是否有資源說明antlr4的正確順序(如果存在)? 2)同樣的antlr2.org文章指出:「語法的選項部分(如果指定的話)必須緊跟';'在類說明

    0熱度

    1回答

    轉換ANTLR的3語法ANTLR的4。這是MySQL的解析器寫在v3中,我試圖轉換到V4。錯誤在'finally'的底部。錯誤說」 ‘在‘終於’’ // Comment from server yacc grammar: // Keywords that we allow for labels in SPs. Anything that's the beginning of a statemen

    0熱度

    1回答

    將ANTLR 3轉換爲ANTLR 4.我有這樣的gabillion警告。我發現其他關於貪婪的SO問題,但不是這個問題。 table_reference: // table_ref in sql_yacc.yy, we use table_ref here for a different rule. table_factor (options { greedy = true; }: joi

    0熱度

    1回答

    令牌先行選項已在ANTLR 4時如何刪除「K」選項,所以...... 這是ANTLR 3碼: declarations: // Order is important here. (options { k = 3; }: DECLARE_SYMBOL identifier (variable_declaration | condition_declaration))* curs