我显示错误:
line 1:5 mismatched input '<EOF>' expecting NEWLINE
我的输入:
print "hi"
我基本上是ANTLR的新手,所以我真的不知道这个错误的含义是什么?我知道我应该有一个文件结束,但是我应该如何放置它?
答案 0 :(得分:6)
我基本上是ANTLR的新手,所以我真的不知道这个错误的含义是什么?
这意味着解析器在文件末尾偶然发现,而它期望换行。要修复它,只需在输入的末尾添加换行符。
这意味着你的语法中有这样的东西:
parse : (statement NEWLINE)+ EOF
在NEWLINE
之前强制要求EOF
。你也可以这样做:
parse : statement (NEWLINE statement)* NEWLINE* EOF
最后将NEWLINE
作为可选项,但statement
之间必须使用{。}}。