import java.io.PrintWriter;
// Start of classes from CodeTemplate.KernelBase
//**************************************************
// class AstNode extension
//**************************************************
public abstract class AstNode {
//**************************************************
// markStack()
//**************************************************
/*
public $TEqn.AstNode markStack() {
stackMarker = aliasStack.size();
return(($TEqn.AstNode) this);
}
public static $TEqn.AstNode markStack( int size, $TEqn.AstNode n ) {
n.stackMarker = size;
return n;
}
*/
//**************************************************
// Execute doPatch() of each entry on the stack until
// the stack size is reduce to that previously marked.
//**************************************************
public AstNode patch() {
Object obj;
while ( aliasStack.size() > stackMarker ) {
obj = null;
try {
obj = aliasStack.pop();
if ( obj instanceof NameId ) {
NameId nie = ( NameId ) obj;
nie.doPatch();
}
else
if ( obj instanceof MthIscape ) {
MthIscape cie = ( MthIscape ) obj;
cie.doPatch();
}
else
if ( obj instanceof ClsIscape ) {
ClsIscape ci2e = ( ClsIscape ) obj;
ci2e.doPatch();
}
else
if ( obj instanceof PlstIscape ) {
PlstIscape pie = ( PlstIscape ) obj;
pie.doPatch();
}
else
AstNode.fatalError( "Invalid object on alias stack\n("+
obj.getClass().getName()+")" );
}
catch ( ClassCastException e ) {
AstNode.fatalError( e.toString() );
}
catch ( Exception e ) {}
}
return ( ( AstNode ) this );
}
}