ANTLR4 NEWLINE在每个表达式中,但在最后一个表达式中是可选的



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

statements
: statement+ EOF
;
statement
: variableId ASSIGN expression NEWLINE+                                     
;
NEWLINE             : 'r'? 'n';

目前,最后一句话后面必须紧跟NEWLINE。如果将NEWLINE设为可选(*(,那么我可以在同一行插入两条语句,这是我不希望的。

提前谢谢。

尝试:

statements
: statement (NEWLINE+ statement)* NEWLINE* EOF
;
Statement
: variable ASSIGN expression
;

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

相关内容

  • 没有找到相关文章

最新更新