エラー回復のメカニズムとして、文法規則で「エラー」を使用できることがわかりました。したがって、エラーが発生した場合、パーサーは現在の行を破棄し、次の行から解析を再開する必要があります。これを達成するための bison マニュアルの例は、次のようになります。
stmts:
exp
|stmts exp
| error '\n'
しかし、私はそれを使用できません。flex がスキャナーで '\n' を無視するようにしなければならなかったため、式が 1 行で表現されるように制限されなくなりました。式の終わりを示す特殊文字 (つまりセミコロン) がなく、「改行」トークンがない場合、エラーが発生したときにパーサーが次の行まで解析を続行するにはどうすればよいですか?
ありがとう..