Hi David,

I think this is possible with rewrite rules, but it depends on how you  
structure you grammar:

e.g. Have lexer rules for STRING, INT, FLOAT so you could do things like

expr:
        a=STRING '+' b=STRING -> ^(CONCATENATE a b)
|       a=number '+' b=number -> ^(PLUS a b)
;

number:
        INT
|       FLOAT
;

This is just a quick brain-dump but might give you hints in the right  
direction.

Tilman Bender
Student des Software Engineering
Hochschule Heilbronn
tben...@stud.hs-heilbronn.de



Am 15.05.2009 um 05:38 schrieb David Jameson:

> Is there any way to control the built-in tree generation (from an
> initial parse phase) based on semantics of what is being parsed?
>
> As a simple example,    if   I see the expression
>        a + b
>
> then I want to produce
>     (PLUS a b)
> or
>    (CONCATENATE a b)
>
> depending on whether a and b are numeric or string.
>
>
> How can I do this with rewrite rules (for example)?   Or do I have to
> construct my own trees?
>
>
> Thanks,
> D
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: 
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to il-antlr-interest@googlegroups.com
To unsubscribe from this group, send email to 
il-antlr-interest+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---

List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

Reply via email to