javacc

    2熱度

    2回答

    我正在嘗試使用Gradle正確地運行JavaCC插件。該插件正確地生成.java文件,但隨後在compileJavaC任務期間,它會崩潰並與cannot find symbol錯誤一起燃燒。我的JavaCC .jj文件包含引用其他未生成的java文件的代碼,我猜compileJava任務試圖編譯生成的代碼而不提供對非生成代碼的引用。 這是一個最小破例。的build.gradle: apply pl

    0熱度

    1回答

    我聲明瞭令牌<VOTE>。我想用這個標記來匹配由大括號分隔的塊。如果它出現在塊之外,我想跳過它。目前,無論是在塊內部還是外部,令牌都是相同的,這使得解析塊外的東西成爲問題。 TOKEN: { < VOTE: " vote" > } TOKEN: { < #STRING_LITERAL: ["a" - "z", "A" - "Z", "0" - "9", ".", "_", "-", "

    2熱度

    1回答

    我想讓JavaCC使用來自名爲input.txt的文本文件的輸入。但是,我無法弄清楚如何去做。我嘗試設置InputStream並將其傳遞給StringReader,但我不認爲StringReader接受這種類型的參數。我的相關代碼如下: InputStream fis = new FileInputStream("C:\\input.txt"); java.io.StringReader sr

    0熱度

    1回答

    我目前正在使用JavaCC,Eclipse和JTB使用解析器進行簡單的語言工作。我正在爲此進行學習。當我運行java文件它給了我下面的錯誤: Encountered " "var" "var "" at line 2, column 5. Was expecting: ":" ... 但當我仔細看一下我的代碼存在於第2行?沒有這樣的事! 我知道這個錯誤不應該在那裏我已經到以前的誤差像2現在的

    1熱度

    1回答

    我在JavaCC中構建了一個解析器,例如:let a:int = 5 + 4; 它顯示: Start Sxl Statement VariableDecl Identifier Type Expression SimpleExpression Term Factor Literal Int

    0熱度

    1回答

    我正在使用JavaCC以特定格式打印AST。 我需要它是這樣的: LetNode(Identier(X), ExprNode(PlusNode(IntegerLiteral(8), IntegerLiteral(2)))) ,但我得到: Start(LetNode(Identifier(x)(ExprNode(IntegerLiteral(5)(PlusNode(IntegerLiteral(

    0熱度

    1回答

    所以我對JavaCC的功能: void parseDSL() throws SemanticException #void : {} { <ALL> "/*@mat" dslStatements() "*/" <ALL> <EOF> } 我的目標是,直到「/ * @席」比賽和之後的分析忽略了所有的事情,直到EOF無視一切。 我真的很努力地找到一個在這裏工作的正則表達式。 應通過

    0熱度

    2回答

    我基本上有下面的說法,並且希望它能夠處理同樣的東西,不管它以什麼順序出現。例如,因爲當前的代碼,它會接受「ABS(5)+ 3」,但不接受「3 + ABS(5)」。有誰知道我可以如何讓它以任何順序工作? 我認爲把所有東西都放到OR中,然後用*代替它會起作用,但這似乎沒有太大區別。 ((s1=ABS() { s=s+s1; }) | ("+" { op="+"; s=s+op; } | "

    1熱度

    1回答

    我的JavaCC項目出現了一些問題。我試圖識別一個變量聲明,它有一個可能的「變量」前綴,一種變量名稱和變量(id)。但解析器將第一個單詞識別爲kind,並且不會繼續執行該行的其餘部分。 它說: Exception in thread "main" ParseException: Encountered " <KIND> "char "" at line 2, column 9. Was expe

    0熱度

    1回答

    按照JavaCC documentation,如果我想自定義的詞法分析器通過錯誤給出的消息: 要詞法分析器定製錯誤報告,詞法分析器類必須被繼承,這方法[LexicalError() in TokenMgrError]在子類中重新定義。爲了幫助創建錯誤報告機制,下列變量: 不過,我看不到任何有關如何獲取生成的代碼使用該子類,不同於與TOKEN_FACTORY選項。 另一方面,查看TokenMgrEr