Bisonは、エラーから回復するためにBisonパーサーで使用できる特別なエラートークン(「エラー」と呼ばれる)を使用します。Flexによって生成されたスキャナーからこの特定のトークンを返す方法はありますか?
1208 次
1 に答える
1
「エラー」トークンは実際にはトークンではありません。エラー処理にのみ使用されます。
http://dinosaur.compilertools.net/yacc/index.htmlで、次のように読むことができます。トークン名エラーはエラー処理のために予約されており、単純に使用しないでください。
私自身のパーサーでは、次のようなエラートークンを使用します(Cのようなマクロ言語を解析するために:
StatementList :
| StatementList Statement ';'
| error ';'
ユーザーがエラーを起こした場合、yacc / bisonは次のセミコロン(ステートメントの終わり)まで続き、その後次のステートメントに進みます。
于 2010-02-16T17:02:46.863 に答える