ANTLR4 - 不匹配的输入'<eof>'

时间:2017-10-22 07:52:07

标签: input antlr4 eof mismatch

我正在尝试编辑使用'\ n'而不是';'的ANTLR中的Java语法作为STMTEND,但分号仍然是可选的。但是,即使我已经在语法的起始规则的末尾添加了一个显式的EOF,我也会从我的解析器中遇到这个错误。它不断向我显示这个错误:

mismatched input '<EOF>' expecting {',', '
'}

这是起始语法:

grammar Baraco;

// starting point for parsing a java file
compilationUnit
:   constDeclaration* methodDeclaration* statement* EOF
;

这是我创建的STMTEND版本以及片段NEWLINE:

STMTEND     : SEMI NEWLINE*
            | NEWLINE
            ;

fragment
NEWLINE
:   '\r' '\n'
|   '\n'
|   '\r'
;

最后,这是我为了测试而进入我的解析器的输入:

int x = 0

0 个答案:

没有答案