antlr3

    2熱度

    1回答

    我需要爲C++ 14創建一個解析器。此解析器必須使用C++創建,以便實現遺留代碼生成重用。我正在考慮使用ANTLR3來實現這個功能(因爲ANTLR4還沒有針對C++代碼)。 我的疑問是,如果ANTLR3可以解析C++,因爲它不使用像ANTLR4這樣的Adaptive LL(*)算法。

    0熱度

    1回答

    我們可以在Visual Studio中使用C#使用antlr語法(用java編寫)嗎? 我面臨着一個與antlr語法有關的問題,那就是JAVA的目標,但我希望C#目標語法和我無法獲得C#目標語法。所以,我的問題是我們可以在C#中使用antlr JAVA目標語法。

    3熱度

    1回答

    在針對Java解析的Antlr 3.5語法上工作時注意到'IDENTIFIER'規則在ANTLR Lexer語法中消耗少量關鍵字。詞法語法 lexer grammar JavaLexer; options { //k=8; language=Java; filter=true; //backtrack=true; } @lexer::header

    0熱度

    1回答

    我正在寫一個語法來解析sql語句。我有以下規則: show_databases : SHOW DATABASES { System.out.println("Showing databases"); ; 當我輸入show databases,我得到的消息。但是,當我的輸入是show databases now時,我會看到消息。我正在構建REPL,並且所有行都以;結尾。由於語法錯誤

    0熱度

    1回答

    當我編譯我的樹語法時,我無法理解「NoViableAltException」異常。 這裏有一小片我的語法與規則,讓我的問題: keyword_controls_sub : expression (MB_COMA expression)* -> ^(MATCH_STATEMENT expression)+ ; 產生一棵樹一樣: +-----------------+

    0熱度

    1回答

    我正在使用antlr3。我有我的解析器和詞法分析器文件。我想在解析器文件中打印輸入的令牌(由用戶輸入給出)。我嘗試了input.LT(1)。 它很好地打印輸入令牌(由用戶給出)。但是,爲了將來的分析,我不能使用這個先行標記。那麼是否還有其他可以打印傳入令牌的命令或指令? (例如,如果我的輸入是1 + 2 +;'+'的標記是'PLUS',那麼我必須打印'+'而不是'PLUS')。

    0熱度

    1回答

    以我ANTLR語法,我有以下語句: @lexer::apifuncs { LEXER->rec->displayRecognitionError = recognition_error; } @parser::apifuncs { RECOGNIZER->displayRecognitionError = recognition_error; } C函數「rec

    0熱度

    1回答

    我選擇我的Eclipse項目作爲ANTLR的項目。(我用ANTLR IDE插件爲Eclipse) 但我不知道如何將其取消。 自動生成代碼真的很困擾我。這是我想要取消選擇的原因。

    0熱度

    2回答

    如何將語法文件中的自定義錯誤消息拋出到java類(解析和lexing被定義的地方)? < ----------解析器語法-----------> parser grammar EParser; @members { public void displayRecognitionError(String[] tokenNames, RecognitionException e) {

    0熱度

    1回答

    無法真正找到對此的答案。注意:如果有問題,使用antlr 3而不是4。 試圖根據三種不同的可能表達式構造一個子節點。 (variable)* (n_expr|d_expr|s_expr)+ { } -> ^(FORMULA_DEF n_expr|d_expr|s_expr) 引發錯誤,因爲我無法使用(n_expr | d_expr | s_expr)作爲子節點。