Hi,

I'm sure this question has been answered before but I'm not sure how
to phrase it well enough to find it in the archives.

I want to match to inputs an INT such as '   170  \n'
and an AMOUNT such as '  $ 170.00 ' (unfortunately there is
occasionally a space before the amount)

The following grammar works for ' $ 170.00 ' but not for  ' 170 ' it
sees the space and tries to match the AMOUNT and the output
'mismatched character ' ' expecting '.' ' is provided.  Reading
through the antlr reference book, it looks like there are a number of
ways to possibly handle this but I'm not sure how best to approach it.

grammar testing;

start :
        (AMOUNT
        | INT
        | NEW_LINE)+;

fragment DIGIT : '0'..'9';

AMOUNT  : '$'? SPACE? DIGIT+ (','DIGIT+)? '.' DIGIT DIGIT;

INT :  DIGIT+ (','DIGIT+)?;

NEW_LINE
        : ('\r'?'\n');

WS  : (SPACE |'\t'|'\u000C')
        {$channel=HIDDEN;};
        
fragment SPACE
        : ' ';

Thanks,

Richard
--
m: +44 753 489 2926

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 il-antlr-inter...@googlegroups.com.
To unsubscribe from this group, send email to 
il-antlr-interest+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en.

Reply via email to