import java.util.*;
import java.io.*;
public class UmodClassExt {
// (refines) class qname implements classbody reduces to
// (refines) class qname implements extends stub.qname classbody
public void reduce2java( AstProperties props ) {
// Step 1: set SuperName (the name of the assumed superclass
String className = arg[0].tok[0].tokenName();
props.setProperty( "SuperName", className );
props.setProperty( "ThisName", className );
// Step 2: and now the reduction
tok[0].print( props ); // class
arg[0].reduce2java(props); // Qname
props.print(" extends " + kernelConstants.stub + "." + className + " ");
arg[1].reduce2java(props); // implements
arg[2].reduce2java(props); // body
// Step 3: remove SuperName property
props.removeProperty( "SuperName" );
props.removeProperty( "ThisName" );
}
}