[antlr-interest] How to handle single and plural (i.e. 'day' or 'days')
Martijn Reuvers
martijn.reuvers at gmail.com
Tue Oct 26 06:10:41 PDT 2010
Hello Colin,
You are missing a space in between.
This should work:
grammar test;
someRule : DAY+
;
DAY :
'day' 's'?
;
Note that DAY is a lexer token.
Cheers!
Martijn
On Tue, Oct 26, 2010 at 1:34 PM, Colin Yates <colin.yates at gmail.com> wrote:
> Hi,
>
> The user can type in '1 day' or '7 days'. I have the following rule which
> matches:
>
> durationPeriod: ('day' | 'days') { // do something};
>
> and this works fine. I initially tried:
>
> durationPeriod: 'day'('s')? { // do something};
>
> but this never matched 'days'.
>
> Based on the '100 monkeys' reality I tried the following:
>
> durationPeriod: ('day''s')? { // do something};
> and
> durationPeriod: ('day')('s')? { // do something};
>
> but none of them matched 'days'. The exact error is [line 1:2 no viable
> alternative at input 'days'']
>
> What have I missed? The (incredibly useful!) Syntax Diagram in antlworks
> shows that the trailing 's' can be skipped, so I don't understand why it
> doesn't work.
>
> Many thanks,
>
> Col
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>
More information about the antlr-interest
mailing list