[antlr-interest] [C target] [3.1.1] Deriving imaginary nodes from real tokens
Gavin Lambert
antlr at mirality.co.nz
Fri Dec 12 18:40:05 PST 2008
At 01:52 13/12/2008, Sven Van Echelpoel wrote:
>Ah, I wondered why there were two forms of the template. Can you
>really pass constructor arguments to nodes created from token
>references? Why would you want to use the info of another token
>(I can buy the text), as in the following 2 argument call:
>
>-> $b[ $c, "c" ]
I think you've misinterpreted what I was saying. I'm fairly sure
that what you've posted there is *not* legal (it doesn't make
sense to pass two tokens into one construction expression).
As far as I know, the following are the only valid token
construction expressions (I could be wrong about some of the
specifics, though):
-> FOO
Copy existing token FOO, or create imaginary token FOO with no
context.
-> FOO["bar"]
Copy existing token FOO but give it "bar" as text, or create
imaginary token FOO with "bar" as text and no context.
-> FOO[$b]
Copy existing token in $b but change the type to FOO.
-> FOO[$b, "bar"]
Copy existing token in $b but change the type to FOO and the text
to "bar".
-> $b
Copy existing token in $b.
-> $b["bar"]
Copy existing token in $b, but change the text to "bar".
(And unfortunately, the C target can't distinguish between #2 and
#3 because the expression can be such that it can't statically
tell whether it returns a string or a token.)
More information about the antlr-interest
mailing list