1

Bisonは、エラーから回復するためにBisonパーサーで使用できる特別なエラートークン(「エラー」と呼ばれる)を使用します。Flexによって生成されたスキャナーからこの特定のトークンを返す方法はありますか?

4

1 に答える 1

1

「エラー」トークンは実際にはトークンではありません。エラー処理にのみ使用されます。

http://dinosaur.compilertools.net/yacc/index.htmlで、次のように読むことができます。トークン名エラーはエラー処理のために予約されており、単純に使用しないでください

私自身のパーサーでは、次のようなエラートークンを使用します(Cのようなマクロ言語を解析するために:

StatementList  :
               |  StatementList Statement ';'
               |  error ';'

ユーザーがエラーを起こした場合、yacc / bisonは次のセミコロン(ステートメントの終わり)まで続き、その後次のステートメントに進みます。

于 2010-02-16T17:02:46.863 に答える