[antlr-interest] ANTLR 3.1.2: Simplest action
    Udo Weik 
    WeikEngOff at aol.com
       
    Wed Jul 13 13:27:29 PDT 2011
    
    
  
Hello again Bart,
> `$text` is just a shorthand notation for `$XYZ.text` where `XYZ` is the rule you're currently in.
$INTEGER.text doesn't work ("rule INTEGER has no defined parameters"), but your $text does.
That's what I don't understand ;(.
Many thanks and greetings
Udo
> On Wed, Jul 13, 2011 at 10:18 PM, Udo Weik <WeikEngOff at aol.com <mailto:WeikEngOff at aol.com>> wrote:
>
>     Hello Bart and others,
>
>     yep, thanks, it works...
>
>
>         Try:
>
>             INTEGER
>                :  DIGIT+ { print($text) }
>                ;
>
>
>     1. Why do I not need the name, here INTEGER, like $INTEGER.text?
>     2. With 12345 the result is
>        L: (DIGIT): 1
>        L: (DIGIT): 12
>        L: (DIGIT): 123
>        L: (DIGIT): 1234
>        L: (DIGIT): 12345
>        L: (INTEGER): 12345
>
>        I expected
>        L: (DIGIT): 1
>        L: (DIGIT): 2
>        L: (DIGIT): 3
>        L: (DIGIT): 4
>        L: (DIGIT): 5
>        L: (INTEGER): 12345
>
>
>     Many thanks and greetings
>     Udo
>
>
>
>         On Wed, Jul 13, 2011 at 9:57 PM, Udo Weik <WeikEngOff at aol.com <mailto:WeikEngOff at aol.com> <mailto:WeikEngOff at aol.com <mailto:WeikEngOff at aol.com>>> wrote:
>
>             Hello,
>
>             I just want to access the attributes of INTEGER
>             and DIGIT - but how?
>
>             INTEGER: DIGIT+ { print( "L: (INTEGER): " ) } ;
>
>             fragment
>             DIGIT: '0'..'9' { print( "L: (DIGIT): " ) } ;
>
>
>             Thanks and greetings
>             Udo
    
    
More information about the antlr-interest
mailing list