我定义了3种类型的数字,数字,小数和百分比。
this.commentData.author = this.comment.get('author').value;
this.commentData.rating = this.comment.get('rating').value;
this.commentData.comment = this.comment.get('comment').value;
Percentage : (Sign)? Digit+ (Dot Digit+)? '%' ;
Number : Sign? Digit+;
百分比和小数点工作正常,但是当我指定一个数字时,除非我在数字前加上一个符号(+或 - ),否则它不会将其识别为数字。
Decimal : Sign? Digit+ Dot Digit*;
number foo = +5 // does recognize
它在评估表达中确认了它
number foo = 5; // does not recognize
这是我的语言(我取出了这些功能,只留下语言识别)。
if (foo == 5 ) // does recognize
答案 0 :(得分:0)
我预感到这种片段的使用是不正确的:
fragment Sign : Plus | Minus;
我在参考书中找不到任何内容,但我认为需要将其更改为:
fragment Sign : [+-];
答案 1 :(得分:0)
我发现了这个问题。我使用的是版本4.5.2-1,因为每次尝试升级到4.7都会导致更多错误,我不想在尝试解决另一个错误时导致更多错误。我终于崩溃并将库升级到4.7,修复了错误并且数字识别问题消失了。这是图书馆里的一个错误。