Program { (@ public static Vector TAOclasses = new Vector(13); public static String visitorclass="TAOVisitor"; static { TAOclasses.addElement("Traversal"); TAOclasses.addElement("TAO_TravList"); TAOclasses.addElement("TAO_TravLabel"); TAOclasses.addElement("TAO_Bypass"); TAOclasses.addElement("TAO_NextTrav"); TAOclasses.addElement("TAO_ClassNames"); TAOclasses.addElement("TAO_OneClassGlob"); TAOclasses.addElement("TAO_ClassGlob"); TAOclasses.addElement("TAO_ClassGlobSet"); TAOclasses.addElement("TAO_ClassGlobList"); TAOclasses.addElement("TAO_NextClassGlob"); TAOclasses.addElement("TAO_AnyClass"); TAOclasses.addElement("TAO_ClassName"); } public static FindVisitorTargetsV fvtv; // before parser expansion public static void genTAO1() { // sanity check. we need some classes to be undefined: // Therefore, this must come before we start adding those classes for (Enumeration classes = prog.get_cg().get_defdict().keys();classes.hasMoreElements();) { String classname = ((ClassName) classes.nextElement()).toString(); if (TAOclasses.contains(classname)) { System.err.println("Please don't use the class name "+classname+" as TAO needs it"); System.exit(1); } } log.println(" TAO: Adding support classes"); Program.addTAOClasses(); } // after repetiton expansion public static void genTAO2() { log.println(" TAO: Adding Methods to user classes"); Program.addToUserCodeTAO(); } public static void addTAOClasses() { System.err.println(" TAO: parsing functions"); // System.err.println("Traversal"); prog.addClassDef(ClassDef.parse( "Traversal *parse* = [