微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ANTLR4 NEWLINE 在每个表达式但最后一个可选

如何解决ANTLR4 NEWLINE 在每个表达式但最后一个可选

我正在尝试构建一个简单的应用程序,它可以识别简单的数学表达式,每个表达式由 NEWLINE 分隔。一切正常,但我不知道如何在最后一个表达式之后使 NEWLINE 可选。这是我的语法文件的一部分,只有必要的内容

statements
: statement+ EOF
;

statement
: variableId ASSIGN expression NEWLINE+                                     
;

NEWLINE             : '\r'? '\n';

目前最后一条语句也必须跟有 NEWLINE。如果将 NEWLINE 设为可选 (*),那么我可以在同一行插入 2 条语句,这是我不想要的。

提前致谢。

解决方法

试试:

statements
: statement (NEWLINE+ statement)* NEWLINE* EOF
;

Statement
: variable ASSIGN expression
;

这种方法使用 NEWLINE 作为分隔符而不是终止符,这似乎正是您要找的。​​p>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。