[antlr-interest] How does INTEGER+ '.' INTEGER+ match "2."?
Ken Klose
kenklose at gmail.com
Sun Aug 8 17:35:22 PDT 2010
Thanks for replying.
2. is not a valid PRICE. PRICE should have at least 1 digit following the
'.'. In the context of the string that I am trying to match "2." doesn't
have any particular significance, it is neither an INTEGER nor a PRICE. It
is simply an INTEGER following by an SYMBOL token. What I don't understand
is why ANTLR is getting hung up trying to match it as a PRICE when it
doesn't conform to the PRICE specification. PRICE specifies another INTEGER
following the '.' which this input doesn't have.
On Sun, Aug 8, 2010 at 7:28 PM, Gerald Rosenberg <gerald at certiv.net> wrote:
>
> ------ Original Message (Sunday, August 08, 2010 6:42:55 PM) From: Ken
> Klose ------
> Subject: [antlr-interest] How does INTEGER+ '.' INTEGER+ match "2."?
>
> INTEGER: DIGIT+;
>> PRICE: INTEGER '.' INTEGER;
>>
> Integer and price are ambiguous and, if "2." is a valid price, need to make
> the decimal field optional.
>
> Try:
>
> INTEGER : DIGIT+
> ( '.' (DIGIT+)? { $type=PRICE; } // define PRICE
> in the token block
> | // just an integer
> )
> ;
>
>
>
>
More information about the antlr-interest
mailing list