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

Reply via email to