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.
