これはほんの一例です
YACC 文法:
abc:ABC STRING NEWLINE
end:END
.
.
レックスファイル:
int lineno=1;
.
.
string [a-zA-Z]+
%%
ABC {return ABC;}
END {return END;}
[\n] {lineno++;return NEWLINE;}
{string} {return STRING;}
%%
入力ファイルが次の場合、改行が発生するたびに lineno がインクリメントされます。
ABC xyz
END
yacc はこれを正常に解析します
入力ファイルが次の場合:
ABC 123
END
それは line1:syntax error を示しています
これは予想通りでした
ただし、入力ファイルが次の場合:
ABC
END
それからline2 :syntax error が表示されます
ただし、エラーは2行目ではなく1行目にあります。
正しい行番号が表示されるようにするにはどうすればよいですか?