我正在嘗試在這個版本的專案中實作錯誤恢復(make
然后./parse e1.input
進行測驗)。
鑒于(1
,e1.input
我希望決議器表現得好像它已決議)
并構建了一個 AST Paren (Int 1)
。因此,我嘗試了
let (startp, endp) = positions in
let _ = feed (T T_RPAREN) startp () endp env in
但是,它回傳了一個錯誤Invalid_argument("feed: outgoing transition does not exist")
hahahaha depth of env 2
hahahaha current_state_number 2
hahahaha startp 1:1
hahahaha endp 1:2
element number of state 2
element startp 1:1
element endp 1:2
element incoming_symbol an integer
element v toComplete
element item: an expression -> an integer.
element number of state 1
element startp 1:0
element endp 1:1
element incoming_symbol (
element v toComplete
element item: an expression -> ( .an expression )
Line 1, characters 2-2: Error (parsing)
Error while analyzing an expression.
Fatal error: exception Invalid_argument("feed: outgoing transition does not exist")
有誰知道為什么會出現這個錯誤?
uj5u.com熱心網友回復:
在喂食之前)
,我們應該先減少,以下代碼有效:
let env_new = force_reduction (find_production 1) env in
let env_new_new = feed (T T_RPAREN) startp () endp env_new in
(lex, input_needed env_new_new)
例如(1 2
,我們應該在喂食之前減少兩次)
,以下代碼有效:
let env_new = force_reduction (find_production 1) env in
let env_new_new = force_reduction (find_production 3) env_new in
let env_new_new_new = feed (T T_RPAREN) startp () endp env_new_new in
(lex, input_needed env_new_new_new)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/438982.html
上一篇:ANTLR4決議樹不包含規則名稱
下一篇:使用pegen開發決議器:無輸出