【问题标题】:Expecting NEWLINE in ANTLR期待 ANTLR 中的 NEWLINE
【发布时间】:2012-03-22 16:57:10
【问题描述】:

我有一个错误显示:

line 1:5 mismatched input '<EOF>' expecting NEWLINE

我的意见:

print "hi"

我基本上是 ANTLR 的新手,所以我真的不知道这个错误是关于什么的?我确实知道我应该有一个文件结尾,但我应该如何放置它?

【问题讨论】:

    标签: java antlr eof


    【解决方案1】:

    我基本上是 ANTLR 的新手,所以我真的不知道这个错误是关于什么的?

    这意味着解析器偶然发现了文件的末尾,而它预计会出现换行符。要修复它,只需在输入的末尾放置一个换行符即可。

    这意味着你的语法中有这样的东西:

    parse : (statement NEWLINE)+ EOF
    

    EOF 之前强制设置NEWLINE。你也可以这样做:

    parse : statement (NEWLINE statement)* NEWLINE* EOF
    

    最后使NEWLINE 可选,但在statements 之间是强制性的。

    【讨论】:

    • 会影响我的语句输出吗?
    • 抱歉,我不确定你的意思。您要么需要在输入字符串中放置一个换行符(因为您在语法中定义了它),要么更改语法本身。
    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 2023-03-30
    • 2017-10-27
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多