antlr3

    1熱度

    1回答

    我一直在試圖獲取所有由SLF4J處理的ANTLR錯誤消息,以便它們以正確的順序出現在其他消息中,但我沒有任何運氣。 下面我試圖重寫emitErrorMessage,displayRecognitionError上Error Reporting and Recovery的例子,recoverFromMismatchedToken: @members { private Logger log

    0熱度

    1回答

    我想出了以下語法強制執行優先級: A : L ('[' A ']' L*)* L : M (('+'|'-')M)* M : P (('*'|'/')P)* P : ID | NUM 其中ID可以是字母,而num是一個整數。 問題 我可以分析以下字符串: a[i + 1] 我無法解析以下字符串: a[i] + 1 or a[a[i]*i] 我的問題是,引入了遞歸問題。因爲我不想回

    0熱度

    1回答

    我對ANTLR相當陌生,對ANTLR有一些基本的理解用於驗證輸入。但是有些我未能滿足我的要求。 我的要求基本上是驗證完整字符串的一部分。 我的輸入將分爲4個部分標題,學生數據,學校數據,頁腳。 樣本數據將作爲 HEADER,MYDATA 學生姓名,ROLLNO 學號,姓名,地址 學生姓名,ROLLNO 學號,姓名,地址 FOOTER HEADER,學校,學生將不同的標記 語法文件是常見的。 每個部

    0熱度

    1回答

    我目前正在創建從文件的輸入流是這樣的: pANTLR3_UINT8 inputFile = (pANTLR3_UINT8) "X:/Path/To/File"; pANTLR3_INPUT_STREAM input = antlr3AsciiFileStreamNew(inputFile); 不過,我想從一個字符串流創建一個輸入流來代替。這可能嗎?

    0熱度

    1回答

    我必須聲明: = MYFUNCTION_NAME(1,2,3) 我的語法是: grammar Expression; options { language=CSharp3; output=AST; backtrack=true; } tokens { FUNC; PARAMS; } @parser::namespace { Expre

    2熱度

    1回答

    默認情況下,由ANTLR 3.5生成的解析器類在SystemErr日誌中寫入錯誤條目。有沒有辦法將這些條目定向到基於Log4J的自定義記錄器。

    1熱度

    1回答

    碼塊的末尾的數量是否有任何方式尋找到一個代碼塊結束 實施例的行號:以下輸入 21) synchronized(Lock.class){ 22) a.getAndIncrement(); //some code 23) 24) } 相應AST是 synchronized PARENTESIZED_EXPR EXPR .

    0熱度

    1回答

    我想重寫我的AST並輸出語義警告。 如果我使用[]與詞法分析器規則,它會接受但不與解析器規則爲什麼? 我有所謂的「變種」解析器規則,我會想如果做這樣的事情宣佈測試值: -> ^(DECLARATION TYPE var[Main.symbols.test_declared($var.text)] expression?); ,但我得到: unexpected token: Main.symbo

    0熱度

    1回答

    我正在創建一個創建AST的解析器,然後重寫它以解決所有的含糊問題,然後遍歷它並計算結果。 重寫的一部分是根據ID所代表的變量的類型將節點^(QUERY ID)轉換成^(DECIMALQUERY ID)或^(DATEQUERY ID)。 query : ^(QUERY ID) { var type = GetQueryType($ID.text); }

    3熱度

    1回答

    我有句法謂詞,我必須轉換成Antlr 4.語法不會寫入我的,所以我不知道如何以有意義的方式轉換它們。這些是我必須轉換的語法的主要變體。 1. simpleSelector : elementName ((esPred)=>elementSubsequent)* | ((esPred)=>elementSubsequent)+ ; esPred