javacc

    2熱度

    2回答

    除了beginLine,beginColumn,endLine和endColumn之外,是否有一個選項或某種方法來保存其源代碼的偏移位置? 我可能不得不使用TOKEN_EXTENDS,COMMON_TOKEN_ACTION(或TOKEN_FACTORY)選項來存儲額外的令牌信息,但我不知道如何檢索令牌的偏移量。有任何想法嗎? 我正在尋找一個純粹的解析器解決方案,這意味着,沒有與實際文檔交互(我可以

    0熱度

    1回答

    我一直在與JavaCC合作,爲我在Java中編寫的一類「圖片腳本」程序編寫語法分析器語法。該程序需要一系列腳本化命令,這些命令大部分直接映射到java.awt.Graphics方法調用,直接處理它們,並將圖像輸出到文件。我正在使用JavaCC爲此構建解析器,因爲我想開始添加更復雜的構造(如循環或函數)。 現在,我使用JJTree將輸入建立爲AST。無論如何,我收到來自JavaCC的警告(JJTre

    6熱度

    6回答

    我是JavaCC的新手,無法弄清楚如何讓它運行。我使用的是Mac OS X,我安裝了javacc-6.0.zip並將其解壓縮。我無法使JavaCC的腳本從我的路徑訪問作爲終端我收到以下消息上鍵入javacc: -bash: javacc: command not found 如何使JavaCC的腳本從我的路徑訪問? 我的解壓縮文件夾javacc-6.0是在以下目錄:/Users/Rishabh

    0熱度

    1回答

    我使用JAVACC解析由初始非終端G的bnf語法定義的一些字符串。我想捕獲TokenMgrError拋出的錯誤。 我特別要處理以下兩種情況: 如果輸入的一些前綴滿足G,但不是所有的符號都是從輸入讀取,可以考慮這種情況下,正常返回AST的發現通過調用G()前綴。 如果輸入沒有滿足G的前綴,則從G()返回null。 目前,我在這種情況下每次都得到TokenMgrError。 我開始修改生成的文件(即將

    1熱度

    1回答

    所以,我想添加方法到SimpleNode的子類。例如,我有一個位置節點。運行jjt和javacc之後,將會生成一個Position.java。預計看起來像 class Position extends SimpleNode { private int line, column; // I'll add private members here ... public i

    0熱度

    1回答

    我想匹配***,但我發現javacc匹配***行中的任何位置。在***之前,除空格或製表符之外沒有其他字符時,如何確保它僅匹配***?這是我目前有 < HORIZONTAL_RULE: <ZERO_OR_MORE_OF_TAB_OR_SPACE> ("**")("*")+> | <#ZERO_OR_MORE_OF_TAB_OR_SPACE: (" " | "\t")*> 但同樣,這種匹配零個

    0熱度

    1回答

    例如, (B)& &(C)這應該是這樣的。我嘗試過,但每次額外||被添加像這樣A || B || C.這會每次生成錯誤的樹。 代碼,我不喜歡這樣 LOOKAHEAD((simpleTerm())+) ( simpleTerm() { jjtthis.setValue("||"); } )+ * 注simpleTerm可能是& ltS

    0熱度

    1回答

    消費總是出現在這樣的地方:(在*的.jj文件生成的* Parser.java文件) jj_consume_token(0); jj_consume_token(-1); 什麼在上面的代碼做0和-1是什麼意思? private Token jj_consume_token(int kind) throws ParseException { Token oldToken; if ((old

    1熱度

    1回答

    我正在爲一個Eclipse插件使用JAVACC編寫一個簡單的Verilog HDL解析器。 在該插件中,所有的參數和電線被登記在大綱視圖。 如果包含文件中有大量的衰減,此功能很難在「大綱」視圖中找到所需的信號。 爲了縮小輪廓列表,我想從包含文件中收集參數(和其他信號)到一個子文件夾中。 解析器實際上工作在兩遍,這意味着所有的編譯器衍生物首先被解析,並且生成的字符串被傳遞給Verilog解析器(JA

    0熱度

    1回答

    我想通過實現TokenManager並使用USER_TOKEN_MANAGER = true來僅使用解析器併爲其提供令牌。 如果在解析器生成器運行之前接口不存在,那麼實現這個類是否有技巧? 我可以製作自己的TokenManager接口副本並實現它。然後刪除生成的TokenManager。但是......看起來很奇怪。