[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