Tilman, thanks for the suggestion. Sadly, that approach will only work  
if a and b are literals. It will not work if the non-terminals a and/ 
or b represent identifiers whose type can only be determined by  
checking the symbol table.



Cheers,
D

On May 15, 2009, at 4:43 AM, Tilman Bender wrote:

> 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
>
>
> 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