public class BasePre { public void reduce2java( AstProperties props ) { // Step 0: make sure that there is indeed a super class String superName = ( String ) props.getProperty( "SuperName" ); if ( superName == null || superName.equals( "" ) ) { AstNode.warning( tok[0], "Use of Super(...).meth(...) in class with no super class" ); } String cmt = getComment(); // Step 1: one of two possible reductions are performed. // if BasePre belongs to a static method, then // the reduction of Super(...).meth(...) is // superclass.meth(...). Else it is // super.meth(...). if ( props.containsProperty( "isStatic" ) ) { props.print( cmt + superName + "." ); arg[1].reduce2java( props ); return; } // Step 2: else reduce "Super(...).meth(...)" to "super.meth()" props.print( cmt + "super." ); arg[1].reduce2java( props ); } }