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 <[email protected]> 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 > ) > ; > > > > List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
