[antlr-interest] How to get rid of useless nodes in AST?

Juancarlo Añez apalala at gmail.com
Fri Nov 16 05:19:41 PST 2012


Sorry, fired early.

subtract : modulo ('-' modulo)* -> ^(SUBTRACT modulo (modulo)* ) ;


subtract
    :
    modulo
    ( modul
       ( '-' modulo)+  -> ^(SUBTRACT modulo+) // you don't need the
parenthesis or the asterisk
       |
      () -> modulo
    )
   ;

Cheeers,

-- JA

On Fri, Nov 16, 2012 at 8:47 AM, Juancarlo Añez <apalala at gmail.com> wrote:

> Jarrod,
>
> Jim is right, but he doesn't make much of an explanation:
>
> subtract : modulo ('-' modulo)* -> ^(SUBTRACT modulo (modulo)* ) ;
>
>
> To get rid of the unneeded tokens you can write something like:
>
> subtract
> :
>
>
>
>
> On Thu, Nov 15, 2012 at 11:56 PM, Jarrod Roberson <jarrod at vertigrated.com>wrote:
>
>> I asked this question on stackoverflow.com, it has many details and
>> graphics depicting what I am trying to do.
>>
>>
>> http://stackoverflow.com/questions/13409927/how-to-get-rid-of-useless-nodes-from-this-ast-tree
>>
>> Can anyone help me get rid of these intermediate nodes?
>>
>> --
>> Jarrod Roberson
>>
>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> Unsubscribe:
>> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>>
>
>
>
> --
> Juancarlo *Añez*
>



-- 
Juancarlo *Añez*


More information about the antlr-interest mailing list