次のファイルを解析する必要がある非常に単純なantlr文法ファイルを作成しようとしています。
Report (MyReport)
Begin
End
またはレポート名なし:
Report
Begin
End
そして、これが私の文法ファイルです:
grammar RL;
options {
language = Java;
}
report:
REPORT ('(' SPACE* STRING_LITERAL SPACE* ')')?
BEGIN
END
;
REPORT
: 'Report'
;
BEGIN
: 'Begin'
;
END : 'End';
NAME: LETTER (LETTER | DIGIT | '_')*;
STRING_LITERAL : NAME SPACE*;
fragment LETTER: LOWER | UPPER;
fragment LOWER: 'a'..'z';
fragment UPPER: 'A'..'Z';
fragment DIGIT: '0'..'9';
fragment SPACE: ' ' | '\t';
WHITESPACE: SPACE+ { $channel = HIDDEN; };
rule: ;
ただし、ANTLRWorksでデバッグすると、常に次のエラーが発生します。
root -> report -> MismatchedTokenException(0!=0)
文法ファイルの何が問題になっていますか?
ありがとう、グリーン