[antlr-interest] Are token aliases possible?

Sam Barnett-Cormack s.barnett-cormack at lancaster.ac.uk
Fri Oct 28 04:34:27 PDT 2011


I don't know for sure, buut my immediate thought is that it isn't likely 
to be possible (as tokens are generated without reference to parse 
context, and must be unambiguous except where code manually deals with 
the ambiguity). You could however create it as a dummy token name, and 
rewrite to it in the parser, such that the AST generated has a 'virtual' 
CLASS_DECL token generated from the 'real' CLASS token. Pretty sure 
there are examples of this in the wiki.

On 28/10/2011 12:27, Christian wrote:
> CLASS is only the token name. However, CLASS_DECL represents the
> semantics of what was parsed. It allows to be more consequent when
> analyzing the generated AST by names like CLASS_DECL, METHOD_DECL,
> FIELD_DECL etc.
>
> Example:
>
> switch (node.getType()) {
>     case CsRewriteRulesParser.NAMESPACE_DECL:
>        // TODO
>        break;
>     case CsRewriteRulesParser.METHOD_DECL:
>        // TODO
>        break;
>     case CsRewriteRulesParser.CLASS_DECL:
>        // TODO
>        break;
> }
>
> It would be just another name for the integer constant CLASS.
>
> Am 28.10.2011 13:19, schrieb Sam Barnett-Cormack:
>> I think the immediate answer is, "why?"
>>
>> On 28/10/2011 09:02, Christian wrote:
>>> Hi community,
>>>
>>> if there is a real token, say
>>>       CLASS : 'class';
>>> can a define an alias, say
>>>       CLASS_DECL = CLASS
>>> in some way?
>>>
>>> Regards,
>>> Christian
>>>
>>> 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