javacc

    1熱度

    1回答

    我創建了adder.jj文件,遵循this教程(直到第13頁,就在它以計算器爲例)之前,創建一個加法器,該加法器非常適合以語法方式獲得數字和加號的結果(例如「4 +3 +7「返回14,而」4 ++ 3「給出錯誤),那些數字和+符號來自文本文件(稍後將對此進行解釋)。 我用來生成所需的類來執行之前解釋的代碼。 options { STATIC = false ; } PARSER_B

    1熱度

    1回答

    這是我一直在使用的代碼,我從here(從第13頁開始;我可以成功執行並解析來自input.txt文件的附加示例,其中包含數字和+跡象sintactically正確即4 + 2 returns six,但4 ++ 2 gives an error) options { STATIC = false ; } PARSER_BEGIN (Calculator) import j

    1熱度

    1回答

    我對使用Javacc創建語言語法頗爲陌生,我需要找到一種方法來允許用戶重新定義代碼中的令牌定義。 例如,行 REDEFINE IF FOO 應該改變的 「IF」 從 < IF: "IF" > 要 < IF: "FOO" > 的定義。如果這是不可能的,會是什麼解決這個問題的最好方法?

    0熱度

    1回答

    直到現在我的解析器能夠解析使用表達式與已知的參數號的功能,如本 <FUNCTION><OPENPAR> son=expression() <COMMA> son1=expression() <CLOSEPAR> 此外,可選的參數也容易處理 <FUNCTION><OPENPAR> son=expression() <COMMA> son1=expression() [<COMMA> son2=exp

    0熱度

    1回答

    我想第一次嘗試javacc與一個簡單樸素的例子,這是不工作。我的BNF如下:使用上述文件 options { } PARSER_BEGIN(SimpleAdd) public class SimpleAdd { } PARSER_END(SimpleAdd) SKIP : { " " | "\r" | "\t" | "\n" } TOKEN: {

    0熱度

    1回答

    產生式規則的某些標記模式假設我們有生產規則表達可以LogicExpression,MathExpression,StringExpression,並ListExpression之間進行選擇。 void Expression() #void: {} { LOOKAHEAD(3) LogicExpression() | LOOKAHEAD(3) MathExpression() |

    0熱度

    2回答

    可以說我有一種語言設計。當選擇「正確的」解析器/框架(javacc,antlr,spark,mps ...)時,需要考慮什麼標準,如性能,測試生成,IDE支持...... 我知道, 「適當」取決於很多變數,但我只對標準清單感興趣(我將在後面加權),我可以根據這些標準做出決定。 Thx任何輸入!

    3熱度

    1回答

    我第一次使用JavaCC,我注意到它產生了很多死代碼。有許多行看起來像(赦免間距,它是自動的): {if ("" != null) return result;} throw new Error("Missing return statement in function"); } 是否有可能避免產生這種死代碼?它會導致數十個希望可以避免的編譯器警告。 謝謝! 這裏是從的.j

    0熱度

    1回答

    我是javacc新手。我試圖定義一個可以匹配任何字符串的令牌。我遵循正在工作的正則表達式語法<ANY: (~[])+>。我想實現的東西很簡單,定義出具有表達以下BNF: <exp> ::= "path(" <string> "," <number> ")" 我目前的.jj文件如下,我如何能解析字符串任何幫助: options { } PARSER_BEGIN(SimpleAdd) pa

    1熱度

    1回答

    我正在嘗試修改一個PDDL解析器,並且存在一個可選的標記。假設這些是我想要閱讀的2個選項。 (圖1) (node1) (node1 :isGood) // :isGood is optional to be exist 爲了支持這兩種情況下,我喜歡在低於這個figure2的.jj開發的代碼。它工作正常;然而,這是一種不恰當的書寫方式。 (圖2) <LEFT_BRACKET> <NOD