マーク付けに使う文字の変更 #7

基本的に前回のコードで動作しているのだが、違和感のある部分を見つけた。
といっても、エラー表示の文言なので本質的な動作には関係ない。

$ echo -n "(b()" | ./parser
error: illegal left parenthesis

のようなエラーメッセージはデフォルトのメタ文字に対してはいいのだが、

$ echo -n "abac" | ./parser -sa -ec
error: illegal left parenthesis

では奇妙なメッセージになってしまう。

...snip
\(\)            { yyerror("null string between mark-start and mark-end"); return 1; }
\(:             { yyerror("null marked string"); return 1; }
\([^):]*\(      { yyerror("illegal mark-start marker"); return 1; }
\([^):]*        { yyerror("unexpected EOF"); return 1; }
\([^):]+:\)     { yyerror("null annotation"); return 1; }
\([^):]+:\(     { yyerror("illegal mark-start marker"); return 1; }
\([^):]+:[^)]*  { yyerror("unexpected EOF"); return 1; }
\)              { yyerror("illegal mark-end marker"); return 1; }
...snip

規則部の不正入力関連のアクション内、yyerror関数に渡す引数だけを適当に変更した。
元々酷いがやっぱり酷いメッセージ。まあ意味は通るだろう。