antlr

    0熱度

    2回答

    numberrange returns [String value] : numberrangesub { String numberRange = ($numberrangesub.text); String [] v = numberRange.split(","); if (Integer.parseInt(v[0].trim())

    1熱度

    2回答

    我想爲我的語言添加關鍵字。 這個關鍵字只需要在一個特定的語法分析器語法規則中匹配。 由於向後兼容,我希望允許此關鍵字繼續作爲變量名稱使用,即它可以通過詞法分析器規則進行匹配,該規則確定令牌是否適合變量名稱。 只要在文件中找到,Lexer就會匹配新規則。 解決此問題的適當方法是修改var_declaration規則,使其匹配IDENT或新的KEYWORD標記? protected modified

    0熱度

    1回答

    我已經下載了ANTLR 1.3和ANTLRWorks,可以生成規則和語法圖OK。當我嘗試生成的代碼(例如,通過GenerateCode在ANTLRWorks或java org.antlr.Tool Temp.g我得到 error(100): C:\temp\Temp.g 0:0: syntax error: codegen: <AST>: 0:0: unexpected end of subtre

    0熱度

    1回答

    VARIABLE: ... UNARYOP: 'not' Expression; // unary operation BINARYOP: 'or' VARIABLE; Expression : (NIL | INTEGER | UNARYOP) BINARYOP?; 在上述情況下, '或' 可以通過 Expression-> BINARYOP 或 EXPRESSION-> UNAR

    3熱度

    3回答

    我試圖實現一個表達式處理語法(即處理嵌套括號和東西)。到目前爲止我有以下內容,但它們無法處理某些情況(在下面的代碼塊之後出現成功/失敗的情況)。任何人都知道發生了什麼事? 注:VARNAME + =和VARNAME =東西是XTEXT只是一些額外的AST代幫手東西。現在不要擔心他們。 ... NilExpression returns Expression: 'nil'; Fal

    3熱度

    2回答

    我有配置爲通過maven-gunit-plugin運行gunit(ANTLR語法單元測試工具)的maven。然而,炮彈有兩種不同的模式。第一種模式使gunit充當解釋器,讀取* .gunit(或* .testsuite)文件,解釋它並顯示結果。它可以這樣配置: <plugin> <groupId>org.antlr</groupId> <artifactId>maven-gun

    0熱度

    1回答

    嗨我現在有這個語法, 但是當我有服務後,一個音符。 Antlr不想意識到這不是服務,但注意。服務和票據有不同的結構。 如何寫這個? 我想解析這個。但注意bla bla; NOTE : 'NOTE'TEXT; 雖然我不知道如果我的語法真的很好:在服務 777014322;O2 Optimum Profi Promo; Free sms;0:00;250:00;0:00; NOTE bla

    1熱度

    2回答

    我們使用Antlr StringTemplates來控制如何輸出實體的名稱。 基本StringTemplate的是 $名字$ $初始$ $名字$, $後綴,$度$ 我想一些聰明添加到模板,這樣的逗號僅在必要時輸出,即第一個逗號僅在存在後綴或度數時輸出,而第二個逗號僅在存在後綴時輸出。 我試過下面的模板字符串位它不起作用。我想我有誤解 $名字$ $初始$ $名字$ <如果(後綴|學位)>,<ENDI

    6熱度

    3回答

    ANTLR用法的推薦模式是讓Parser構造一個抽象語法樹,然後構建Tree Walker(AKA樹文法)來處理它們。 我想弄清楚爲什麼我的樹語法不工作,並希望使用ANTLRWorks的調試器,就像我用它作爲解析器本身一樣。解析器的輸入是「源代碼」,但樹解析器的輸入是解析器的AST結果。我沒有看到如何使它作爲輸入來測試樹語法。 目前還不清楚在ANTLRWorks中是否有測試樹語法的方法。如果可以做

    1熱度

    1回答

    在ANTLR 2.X版中,您可以通過下面的代碼指定在ANTLR包含之前或之後進行的操作。 header "pre_include_hpp" { #pragma warning(push) #pragma warning(disable : 4511) // couldn't generate copy constructor } header "post_include