[antlr-interest] missing MATCHRANGE macro

John B. Brodie jbb at acm.org
Mon Nov 7 12:47:18 PST 2011


On 11/07/2011 12:32 PM, Jim Idle wrote:
> Better to do this:
> 
> fragment FLOAT;
> INT : '0'..'9'+ ( '.' '0'..'9'+ { $type = FLOAT; } | ) ;

and of course the above REQUIRES at least one digit to the left of the
decimal place on FLOAT. which is not what the OP had. but is easily
fixed, i believe, as:

FLOAT : '.' '0'..'9'+ ;
INT : '0'..'9'+ ( '.' '0'..'9'+ { $type = FLOAT; } )? ;

(note that i also replaced the empty alternative with use of the `?`
meta-operator. i think the meta-operator is stylistically clearer, but
maybe there is some other reason not to use it?)

> 
> Cheers,
> 
> Jim
> 
>> -----Original Message-----
>> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
>> bounces at antlr.org] On Behalf Of yushang
>> Sent: Monday, November 07, 2011 2:17 AM
>> To: antlr-interest at antlr.org
>> Subject: Re: [antlr-interest] missing MATCHRANGE macro
>>
>> Hi,
>> I think I've found the reason . I've written a rule as follow
>> numeric_literal
>>     :    '0'..'9' ('0'..'9')*
>>     |    ('0'..'9')* '.' '0'..'9' ('0'..'9')*
>>     ;
>> which will be translated to MATCHRANGE in Parser , if I change it to
>> this :
>> numeric_literal
>>     :    INT
>>     |    FLOAT
>>     ;
>> INT
>>     :    '0'..'9' ('0'..'9')*
>>     ;
>> FLOAT
>>     :    ('0'..'9')* '.' '0'..'9' ('0'..'9')*
>>     ;
>> will OK. Many thanks.
>>
>> 2011/11/5 yushang <yusunn at gmail.com>
>>
>>> Hi , I'm using ANTLR v3 C runtime and found this macro is missing
>> from
>>> the generated *Parser.c and *Parser.h . This macro can be found in
>>> *Lexer.c file . Is this a bug ?
>>> thanks in advance .
>>>
>>
>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-
>> email-address
> 
> 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