import java.util.*;
import Jakarta.util.FixDosOutputStream;
import java.io.*;
/********************* Kernel Classes *********************
* @layer<preprocess>
*/
public abstract class AstNode {
// tag all AstNodes with the name of their source layer
// once labeled with a source, it is not overridden.
public String _source = null;
public void setSource( String s ) {
int i;
if ( _source == null )
_source = s;
if ( arg == null )
return;
for ( i=0; i<arg.length; i++ )
if ( arg[i]!=null )
arg[i].setSource( s );
}
public String getSource() {
return _source;
}
public void compose( AstNode etree ) {
if ( arg == null )
return;
for ( int i=0; i<arg.length; i++ )
if ( arg[i]!=null )
arg[i].compose( etree.arg[i] );
}
}