我正在尝试创建一个非常简单的 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)
我的语法文件有什么问题?
谢谢,绿