[antlr-interest] Java Code Generation Problem with Tree Grammar outputting AST
Grzegorz Cieslewski
cieslewski at hcs.ufl.edu
Thu Mar 20 12:24:02 PDT 2008
Hello,
I am currently using the antlr-2008-03-13.12 build and I have
encountered a following problem when building a tree rewriter. It
might be related to the problem from other post but I am not sure of
that. I constructed a grammar that demonstrates my problem
grammar T;
options {output=AST;}
tokens
{
EXPR;
}
a : type ID INT -> ^(type ID INT)
;
type : 'int'
| 'char';
ID : 'a'..'z'+ ;
INT : '0'..'9'+;
WS : (' '|'\n') {$channel=HIDDEN;} ;
tree grammar TP;
options {
output=AST;
ASTLabelType=CommonTree;
tokenVocab=T;
}
a : ^(type ID INT) -> ^(type ID INT)
;
type : 'int'
| 'char'
;
The tree grammar does not do anything except rewrite the tree in
exactly the same manner.
When I try to compile it I get the following errors:
TP.java:84: ']' expected
stream_[TP.type,index=2,line=12].add(type1.getTree());
^
TP.java:84: not a statement
stream_[TP.type,index=2,line=12].add(type1.getTree());
^
TP.java:84: ';' expected
stream_[TP.type,index=2,line=12].add(type1.getTree());
^
TP.java:84: ';' expected
stream_[TP.type,index=2,line=12].add(type1.getTree());
I traced it down to the following line:
stream_[TP.type,index=2,line=12].add(type1.getTree());
It seems that the "stream_[TP.type,index=2,line=12]" shuld be
"stream_type". Upon performing that correction the grammar works
correctly.
It looks like a bug, could someone verify it.
Thanks,
--
=====================================================
Grzegorz Cieslewski
Research Assistant
High-performance Computing & Simulation (HCS) Research Laboratory
University of Florida, Dept. of Electrical and Computer Engineering
330 Benton Hall, Gainesville, FL, 32611-6200
Phone: (352) 392-9041
Email: cieslewski at hcs.ufl.edu
Web: www.hcs.ufl.edu
=====================================================
More information about the antlr-interest
mailing list