[antlr-interest] Building a tree grammar expression to recognize arithmetic expressions

Alex Storkey alex at storkey.co.uk
Sat Aug 7 07:31:20 PDT 2010


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;
term
    :    constant | variable | ^(operator expression expression);
[constant and variables are both terminators, operator is plus/minus].

It seems whenever I try it I get a load of messages saying "node from line
0:0 no viable alternative at input 'UP'" and the program doesn't work on
anything with a negative term preceding it.

Thanks for the help. If I haven't included enough information to be useful
please let me know!

-- 
Alex Storkey <alex at storkey.co.uk>


More information about the antlr-interest mailing list