Next: , Previous: Rpcalc Main, Up: RPN Calc


2.1.5 エラー報告関数

yyparseは、構文エラーを検出すると、エラーメッセージ (必ずそうとはかぎりませんが、通常は"parse error")を 表示するために、エラー報告関数yyerrorを呼び出します。

     #include <stdio.h>
     
     yyerror (s)  /* エラーが起きるとyyparseから呼び出される */
          char *s;
     {
       printf ("%s\n", s);
     }

yyerrorから戻った後に、Bison構文解析器は、 文法に適切なエラー規則(see Error Recovery)があれば、 エラーから回復し、解析を継続できます。 そうでない場合には、yyparseが0でない値を返します。 この例では、エラー規則を書いていないので、 不正な入力はすべて電卓プログラムを終了させます。 これは、実際の電卓としてはきれいな動作ではありませんが、 最初の例としては十分です。