Hi Jim,
Fixed. sync: treeLevel not set for setBlock alts; added unit
test
edit //depot/code/antlr/main/src/org/antlr/codegen/codegen.g#129
edit //depot/code/antlr/main/src/org/antlr/test/
TestTreeGrammarRewriteAST.java#9
Change 5030 submitted.
No code gen changes required on target developers parts.
Ter
On Jul 3, 2008, at 2:52 PM, Jim Idle wrote:
>
> With a tree parser, turn on output =AST then have:
>
> tablesample_clause
> : ^(TABLESAMPLE
>
> SYSTEM?
> expression (PERCENT | ROWS)?
> (REPEATABLE expression)?
> )
> ;
>
> the (PERCENT|ROWS)? generates rewrite code without a root number:
>
> adaptor.addChild(root_1, expression197.getTree());
> // C:\\twsrc\\customers\\dag\\dagtsql\\src\\com\
> \temporalwave\\parsers\\tsql\\tsqlwalker.g:542:16: ( PERCENT | ROWS )?
> int alt53=2;
> int LA53_0 = input.LA(1);
>
> if ( (LA53_0==ROWS||LA53_0==PERCENT) ) {
> alt53=1;
> }
> switch (alt53) {
> case 1 :
> // C:\\twsrc\\customers\\dag\\dagtsql\\src\\com\
> \temporalwave\\parsers\\tsql\\tsqlwalker.g:
> {
> _last = (CommonTree)input.LT(1);
> set198=(CommonTree)input.LT(1);
> if ( input.LA(1)==ROWS||input.LA(1)==PERCENT ) {
> input.consume();
>
> if ( state.backtracking==0 ) {
> set198_tree =
> (CommonTree)adaptor.dupNode(set198);
>
> adaptor.addChild(root_, set198_tree);
>
> ^
>
> |
>
>
> Recode to PERCENT? ROWS? and it is fine
>
> :-(
_______________________________________________
antlr-dev mailing list
[email protected]
http://www.antlr.org:8080/mailman/listinfo/antlr-dev