import java.io.PrintWriter; //************************************************** // class AstListNode extension //************************************************** public abstract class AstListNode { //************************************************** // reduce2ast() //************************************************** public void reduce2ast( AstProperties props ) { PrintWriter ps; if ( arg[0] != null ) { ps = ( PrintWriter ) props.getProperty( "output" ); // don't output list element instances if // they're not needed. Specifically, don't // generate list elements if arg[0] is // an escape marker for a list element if ( arg[0] instanceof EscapeMarker && arg[0] instanceof IsList ) { ps.print( "\n.add( " ); arg[0].reduce2ast( props ); ps.println( ") " ); return; } ps.print( "\n.add( (" + this.className() + ") new " + this.className() + "().setParms(" ); if ( tok != null ) { Print_Only_Token_Ast( props ); ps.println( "," ); } arg[0].reduce2ast( props ); ps.println( "))/* " + this.className() +" + add */" ); } } }