import java.util.*;
import Jakarta.util.FixDosOutputStream;
import Jakarta.util.Util2;
import java.io.*;
/************* Kernel extensions *********************
* @layer<Basemm>
*/
public abstract class AstNode {
public void execute( int stage ) {
int i;
if ( arg == null )
return;
for ( i=0; i<arg.length; i++ )
if ( arg[i]!=null )
arg[i].execute( stage );
}
// adds to vector v the string names of every AST_Qualified
// name found in the parse tree
public void harvestAST_QualifiedNames( HashSet v ) {
AstCursor c = new AstCursor();
for ( c.First( this ); c.More(); c.PlusPlus() ) {
if ( c.node instanceof AST_QualifiedName ) {
String name = ( ( AST_QualifiedName ) c.node ).GetName();
// this wierdness is added because of mixin-produced files.
// we don't harvest generated names. A generated name will
// contain two dollar signs.
if ( name.indexOf( "$$" ) == -1 )
v.add( ( ( AST_QualifiedName ) c.node ).GetName() );
c.Sibling();
}
}
}
}