Okay, sorry to keep posting but I've managed to get the antlrworks debugger
working on my tree grammar and I have discovered the problem.

It seems like instead of the rule *expression* consuming the MINUS symbol,
the minus symbol is ignore by the expression rule and consumed by the
*term*rule, specifically this part:
^(operator expression expression)
even when I try it on a really simple AST like (- 1) - obviously there is
only one expression here, so the wrong rule is being invoked. What's up with
that?


On 8 August 2010 10:11, Alex Storkey <[email protected]> wrote:

>
>
> On 7 August 2010 19:19, Junkman <[email protected]> wrote:
>
>> Hi Alex,
>>
>> Alex Storkey wrote:
>> > Hi, it's my first time posting in a mailing list like this so go easy on
>> me
>> > if I'm breaking some etiquette or anything :)
>> >
>> > I'm trying to construct an expression in my tree grammar to recognize an
>> AST
>> > of simple mathematical expressions like 1+(-(a-b)) in tree format of (+
>> 1 (-
>> > (- a b))) that is generated by my parser grammar.
>> >
>> > I've tried a couple of different approaches and I can't figure out where
>> I'm
>> > going wrong. Could someone explain what's wrong with the following two
>> > expressions:
>> > expression
>> >     :    (MINUS^)? term;
>>
>> If I understand you correctly, you are asking about writing tree parser
>> grammar.
>>
>> Does Antlr even compile the grammar (i.e., generate a tree parser) with
>> the above rule?  I think the rule must be of the form of rewrite rules.
>>
>> J
>>
> Yes, that sounds about right. I have my lexer and parser grammar set up to
> generate an AST and I'm trying to write a tree grammar to read the AST and
> print some information about it, but I'm struggling to construct a tree to
> interpret my AST.
>
> All of my grammars compile fine - is there a reason they shouldn't?
>
> --
> Alex Storkey <[email protected]>
>



-- 
Alex Storkey <[email protected]>

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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en.

Reply via email to