[antlr-interest] AST construction problem??

Fan Yang yhhf_dy at yahoo.com
Fri Aug 1 12:34:34 PDT 2003


Hi,

In order to be familiar with AST construction, I did some small tests 
by usning ANTLR 2.7.2. I realized that ANTLR 2.7.2 can't generate code
(in CPP or Java) correctly, but ANTLR 2.7.1 can. I don't know if I do 
it in a wrong way or ANTLR 2.7.2 has a bug. Would you please point me 
the problem. thanks.

Here is the problem, I modified grammar of exprAST which exists 
in "examples" directory of ANTLR. I use manual tree construction for 
the rule instead of automatic one.

options {
  ...
  buildAST=true;
  ...
}

//original one
//expr : 
//	assignExpr EOF! 
//     ; 

expr! : 
	assignExpr EOF! 
	{#expr = #(assignExpr, EOF);}
	;

When I'm trying to comile the generated codes, compiler generate the 
following error:
ExprParser.cpp(55) : error C2065: 'tmp1_AST' : undeclared identifier

after read the generated code and compared with code generated by 
antlr2.7.1, I realized that there are missing line 2 and 3 in the 
code which is generated by antlr2.7.2, temp1_AST is the node to 
represent EOF.  

//snip c++ code generated by antlr2.7.1
1: assignExpr();
2: ANTLR_USE_NAMESPACE(antlr)RefAST tmp1_AST = ANTLR_USE_NAMESPACE
(antlr)nullAST;
3: tmp1_AST = astFactory.create(LT(1));
4: match(ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE);




 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 




More information about the antlr-interest mailing list