我正在尝试使分号对于某些规则是可选的,同时保持最后一个分号是可选的。目前我们有类似的东西
A: 'A';
B: 'B';
C: 'B';
SEMICOLON: ';';
exprs : expr (SEMICOLON expr)* SEMICOLON?;
expr : A | B | C
用于解析输入,例如
A;
C;
B
但是现在我们希望分号对于“A”是可选的。这意味着解析类似
A
C;
B
我遇到问题的部分是使分号对于 A 是可选的,同时仍然允许最后一个分号是可选的。有没有一种很好的方法可以做到这一点,或者我应该只需要最后一个分号?
(想不出一个像样的标题,所以随意更改它)