[antlr-interest] Rewriting an AST with the same type listed twice
Bart Kiers
bkiers at gmail.com
Thu Aug 25 08:25:53 PDT 2011
Hi Garry,
You either use inline operators ^ and !, or use a rewrite rule, not both. To
reference a rule, add a $ before its label:
mapType
: 'map' '<' k=anyType ',' v=anyType '>' -> ^('map' $k $v)
;
but I think this should work too:
mapType
: 'map' '<' anyType ',' anyType '>' -> ^('map' anyType anyType)
;
Regards,
Bart.
On Thu, Aug 25, 2011 at 5:22 PM, Garry Watkins <garry at dynafocus.com> wrote:
> mapType
>
> : 'map' '<'! anyType ','! anyType '>'!
> | 'map<' k=anyType ','! v=anyType '>'! -> ^('map' k v)
> ;
>
>
> I am trying to re-write the AST generated on this alternative:
>
> | 'map<' k=anyType ','! v=anyType '>'! -> ^('map' k v)
>
>
> How does one alias the anyTypes? I am getting an error on the code above?
>
> However the bigger question is my parser won't recognize the following
> map<string,string> if it uses just the first line in my rule. However, it
> will recognize map <string,string>.
>
> Thanks
> Garry
>
> 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