0
我的腳本語言包含了一系列的宏,規則定義如下ANTLR的4錯誤恢復
program
: macrodeclaration* EOF
;
macrodeclaration
: (STATIC)? 'MACRO' STRING declareparameter
statement*
'ENDMACRO'
;
有時我輸錯endmacro爲endmacros,解析器吃掉令牌「endmacros」而忽略了一個宏定義,繼續搜索下一個endmacro。它吐出了很多沒有可行的替代錯誤。
我想知道如何調整錯誤恢復,將錯誤輸入的endmacros視爲endmacro,因此只報告一個錯誤,並且可以正確解析下一個宏。
請幫忙。