我为一种理解 C 风格单行注释的小语言编写了一个语法,例如。
// this is a comment
这是我为这种语言编写的语法片段,使用 antlr v3.0.1
SINGLELINE_COMMENT
: '/' '/' (options {greedy=false;} : ~('\r' | '\n'))* ('\r' | '\n' )+ {$channel=HIDDEN;};
WS : (' '|'\r'|'\t'|'\u000C'|'\n')+ {$channel=HIDDEN;};
这几乎是一种工作,除了当注释在脚本中最后并且没有终止 NL/CR 时,我从 antlr 收到一条烦人的消息(在运行时):
line 1:20 required (...)+ loop did not match anything at character '<EOF>'
我怎样才能摆脱这个消息?我尝试将EOF
令牌添加到(..)+
表达式中,但这不起作用。