【发布时间】:2014-10-25 04:20:59
【问题描述】:
我正在尝试解决一个非常简单的语法问题(我刚开始学习使用 ANTLR 开发语法;我有点新,所以请耐心等待),即使用 @ 定义一个有符号偶数987654322@。
A '+' or '-'for 起始标记是可选的,数字可以是 1 位或多位,但最后一位必须是偶数(例如,+4394 将是一个有效的有符号偶数)。
我目前最好的语法如下:
grammar SignedEvenNumber;
DIGIT : '0'..'9';
EVEN_DIGIT : '0' | '2' | '4' | '6' | '8';
signedEvenNumber : ('+' | '-' | ) NUMBER+ EVEN_NUMBER;
我的问题是以强制ANTLR 将偶数作为最后一位数字的方式定义数字;即它总是将最后一个数字视为DIGIT,无论它是偶数还是奇数(因为最后一个数字之前的任何数字都可以)。可能有一个非常简单的解决方案,我只是没有得到,但任何帮助将不胜感激。
【问题讨论】: