第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復(fù)解析錯誤(使用 LOOKAHEAD)

如何修復(fù)解析錯誤(使用 LOOKAHEAD)

胡說叔叔 2022-10-20 15:13:27
我的解析器生成器有問題(使用 javaCC)我有這個錯誤:Warning: Choice conflict involving two expansions at     line 119, column 3 and line 119, column 43 respectively.     A common prefix is: <CONSTANT>     Consider using a lookahead of 2 for earlier expansion.Warning: Choice conflict involving two expansions at         line 119, column 3 and line 119, column 43 respectively.         A common prefix is: <CONSTANT>         Consider using a lookahead of 2 for earlier expansion.因為我的這部分代碼:TOKEN : /* OPERATORS */{  < POINT : "." >| < VIRGULE : "," >}TOKEN :{  < CONSTANT : (< DIGIT >)+ >| < STRING : ( ["A"-"Z","a"-"z"] )+ >| < #DIGIT : [ "0"-"9" ] >}void number() :{}{  (< CONSTANT > < POINT > < CONSTANT >) | (< CONSTANT >)}也許是因為我的表達式“|”兩邊都有 2 CONSTANT我已經(jīng)看到我可以使用 LOOKAHEAD 但不明白他的用途是什么感謝您的幫助,因為我不明白:(
查看完整描述

1 回答

?
天涯盡頭無女友

TA貢獻1831條經(jīng)驗 獲得超9個贊

自上而下的解析器,例如 JavaCC 構(gòu)建的解析器,需要根據(jù)下一個標記或接下來的幾個標記提前知道要采取的選擇。檢查以做出此決定的令牌是“前瞻令牌”。

理想情況下,可以使用緊隨其后的令牌做出決定;如果沒有,解析器需要緩沖以下標記,并且還需要有一個更大的決策表。沒有算法可以預(yù)測需要多少前瞻令牌,因此 JavaCC 要求您告訴它。這就是那些錯誤消息要求您執(zhí)行的操作。

如果兩個適用的選項以相同的標記開頭,那么該標記無法幫助解析器決定采用哪個選項,因此它需要至少再查看一個標記。顯然,除了初始數(shù)字之后的任何其他內(nèi)容都POINT表示NUMBER必須匹配第二個選擇。假設(shè) anumber后面不能跟 a POINT,那么POINT在初始數(shù)字后面的 a 表示NUMBER。在這種情況下,前瞻 2 就足夠了。但是,如果 a后面number 可以跟 a POINT,那么解析器將不得不進一步向前看才能做出決定。


查看完整回答
反對 回復(fù) 2022-10-20
  • 1 回答
  • 0 關(guān)注
  • 90 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號