[antlr-interest] REAL or int or Range

Jim Idle jimi at temporal-wave.com
Fri Jan 18 07:37:16 PST 2008


This should help (here it uses parser rules, but you could use the same
predicate stuff to match range in the lexer too:

 

// Return decimal numeric as one token but 888..888 as NUMBER RANGE
NUMBER

// Also shows that '.' can still be recognized on its own, just for
kicks.

// Try the input 999.88 . . 666..667

//

grammar harry;

 

start 

     :    (number_range)+

     ;

     

number_range

     : NUMBER ( RANGE NUMBER)?

     | DOT

     ;

     

NUMBER

     : ('0'..'9')+

           (

                 ('.' '0'..'9')=> ('.' ('0'..'9')+)

                |// Just an integer

           )

     ;

 

RANGE

     :    '..'

     ;

     

DOT

     : '.'

     ;

     

OTHER

     : . {$channel = HIDDEN; }

     ;

 

Jim 

 

From: Alexander Gängel [mailto:alexander at gaengel.de] 
Sent: Friday, January 18, 2008 2:00 AM
To: antlr-interest at antlr.org
Subject: Re: [antlr-interest] REAL or int or Range

 

I searched the Archive but till now I did not find anything, but I will
keep looking.

I now also tried with actual code an not with AntlrWorks debugger an now
I get the message:
line 1:2 required (...)+ loop did not match anything at character '.' 
when I try to  parse 0..9

the 0.. is still missing in the output (I now create an Ast to test and
it has only the node 9)

so I think AntlrWorks should at least also give the errormessage.

Alexander

Jim Idle schrieb: 

The interpreter won't be able to deal with your specification I think, 
whereas the real generated code does. I gave out code for int vs float 
vs range some time back if you check the archives - that should do what 
you want.
 
Jim
 
  

   -----Original Message-----
   From: shmuel siegel [mailto:antlr at shmuelhome.mine.nu]
   Sent: Wednesday, January 09, 2008 6:14 PM
   To: Antlr Interest
   Subject: Re: [antlr-interest] REAL or int or Range
    
   Alexander Gängel wrote:
       

      What I think is odd is that it works for Fırat Küçük.
       
            

   Maybe not so strange. In the debugger, I get the same as you but in 
       

the
  

   interpreter I get the attached png.
    
    
    
   No virus found in this incoming message.
   Checked by AVG Free Edition.
   Version: 7.5.516 / Virus Database: 269.19.0/1216 - Release Date: 
       

1/9/2008
  

   10:16 AM
    
    
       

 
 
  

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20080118/b9fc26ae/attachment.html 


More information about the antlr-interest mailing list