core: import edu.neu.ccs.demeter.dj.*; import java.lang.*; import java.util.*; import edu.neu.ccs.demeter.*; add: abstract class Opt_labeled_term extends Any_vertex { protected Term vertex; public Term get_vertex() {{ return vertex; }} public void set_vertex(Term new_vertex) {{ vertex = new_vertex; }} public constructor Opt_labeled_term() {{ super(); }} public constructor Opt_labeled_term(Term vertex) {{ super(); set_vertex(vertex); }} {{ private static String builtinTypes[] = { "boolean", "char", "byte", "short", "int", "long", "float", "double" }; private static String terminalClasses[] = { // from java.lang.*: "Boolean", "Character", "Integer", "Long", "Float", "Double", "Number", "String", "StringBuffer", // from demeter.*: "Ident", "Text", "Line", "Word" }; }} boolean isBuiltinType() {{ String s = get_class_name(); for (int i = 0; i < builtinTypes.length; i++) { if (builtinTypes[i].equals(s)) return true; } return false; }} boolean isTerminalClass() {{ String s = get_class_name(); for (int i = 0; i < terminalClasses.length; i++) { if (terminalClasses[i].equals(s)) return true; } return false; }} boolean isKnownTerminal() {{ return isBuiltinType() || isTerminalClass(); }} String get_class_name() {{ __V_Opt_labeled_term_get_class_name v0 = new __V_Opt_labeled_term_get_class_name(); v0.start(); __trav_get_class_name(v0); v0.finish(); return v0.get_return_val(); }} {{ void universal_trv0_bef(UniversalVisitor _v_) { super.universal_trv0_bef(_v_); ((UniversalVisitor) _v_).before(this); } }} {{ void universal_trv0_aft(UniversalVisitor _v_) { ((UniversalVisitor) _v_).after(this); super.universal_trv0_aft(_v_); } }} {{ void universal_trv0(UniversalVisitor _v_) { ((UniversalVisitor) _v_).before_vertex(this, vertex); vertex.universal_trv0(_v_); ((UniversalVisitor) _v_).after_vertex(this, vertex); super.universal_trv0(_v_); } }} {{ void __trav_print_Cd_graph_trv_bef(PrintVisitor __v0) { super.__trav_print_Cd_graph_trv_bef(__v0); ((UniversalVisitor) __v0).before(this); } }} {{ void __trav_print_Cd_graph_trv_aft(PrintVisitor __v0) { ((UniversalVisitor) __v0).after(this); super.__trav_print_Cd_graph_trv_aft(__v0); } }} {{ void __trav_print_Cd_graph_trv(PrintVisitor __v0) { ((UniversalVisitor) __v0).before_vertex(this, vertex); vertex.__trav_print_Cd_graph_trv(__v0); ((UniversalVisitor) __v0).after_vertex(this, vertex); super.__trav_print_Cd_graph_trv(__v0); } }} {{ void __trav_display_Cd_graph_trv_bef(DisplayVisitor __v0) { super.__trav_display_Cd_graph_trv_bef(__v0); ((UniversalVisitor) __v0).before(this); } }} {{ void __trav_display_Cd_graph_trv_aft(DisplayVisitor __v0) { ((UniversalVisitor) __v0).after(this); super.__trav_display_Cd_graph_trv_aft(__v0); } }} {{ void __trav_display_Cd_graph_trv(DisplayVisitor __v0) { ((DisplayVisitor) __v0).before_vertex(this, vertex); vertex.__trav_display_Cd_graph_trv(__v0); ((UniversalVisitor) __v0).after_vertex(this, vertex); super.__trav_display_Cd_graph_trv(__v0); } }} {{ void __trav_print_Adjacency_trv_bef(PrintVisitor __v0) { super.__trav_print_Adjacency_trv_bef(__v0); ((UniversalVisitor) __v0).before(this); } }} {{ void __trav_print_Adjacency_trv_aft(PrintVisitor __v0) { ((UniversalVisitor) __v0).after(this); super.__trav_print_Adjacency_trv_aft(__v0); } }} {{ void __trav_print_Adjacency_trv(PrintVisitor __v0) { ((UniversalVisitor) __v0).before_vertex(this, vertex); vertex.__trav_print_Adjacency_trv(__v0); ((UniversalVisitor) __v0).after_vertex(this, vertex); super.__trav_print_Adjacency_trv(__v0); } }} {{ void __trav_display_Any_vertex_trv_bef(DisplayVisitor __v0) { super.__trav_display_Any_vertex_trv_bef(__v0); ((UniversalVisitor) __v0).before(this); } }} {{ void __trav_display_Any_vertex_trv_aft(DisplayVisitor __v0) { ((UniversalVisitor) __v0).after(this); super.__trav_display_Any_vertex_trv_aft(__v0); } }} {{ void __trav_display_Any_vertex_trv(DisplayVisitor __v0) { ((DisplayVisitor) __v0).before_vertex(this, vertex); vertex.__trav_display_Any_vertex_trv(__v0); ((UniversalVisitor) __v0).after_vertex(this, vertex); super.__trav_display_Any_vertex_trv(__v0); } }} {{ void __trav_print_Any_vertex_trv_bef(PrintVisitor __v0) { super.__trav_print_Any_vertex_trv_bef(__v0); ((UniversalVisitor) __v0).before(this); } }} {{ void __trav_print_Any_vertex_trv_aft(PrintVisitor __v0) { ((UniversalVisitor) __v0).after(this); super.__trav_print_Any_vertex_trv_aft(__v0); } }} {{ void __trav_print_Any_vertex_trv(PrintVisitor __v0) { ((UniversalVisitor) __v0).before_vertex(this, vertex); vertex.__trav_print_Any_vertex_trv(__v0); ((UniversalVisitor) __v0).after_vertex(this, vertex); super.__trav_print_Any_vertex_trv(__v0); } }} {{ public void __trav_get_class_name(__V_Opt_labeled_term_get_class_name __v0) { __trav_get_class_name_Opt_labeled_term_trv(__v0); } }} {{ void __trav_get_class_name_Opt_labeled_term_trv_bef(__V_Opt_labeled_term_get_class_name __v0) { super.__trav_get_class_name_Opt_labeled_term_trv_bef(__v0); } }} {{ void __trav_get_class_name_Opt_labeled_term_trv_aft(__V_Opt_labeled_term_get_class_name __v0) { super.__trav_get_class_name_Opt_labeled_term_trv_aft(__v0); } }} {{ void __trav_get_class_name_Opt_labeled_term_trv(__V_Opt_labeled_term_get_class_name __v0) { vertex.__trav_get_class_name_Opt_labeled_term_trv(__v0); } }} {{ void __trav_display_Any_vertex_List_trv_bef(DisplayVisitor __v0) { super.__trav_display_Any_vertex_List_trv_bef(__v0); ((UniversalVisitor) __v0).before(this); } }} {{ void __trav_display_Any_vertex_List_trv_aft(DisplayVisitor __v0) { ((UniversalVisitor) __v0).after(this); super.__trav_display_Any_vertex_List_trv_aft(__v0); } }} {{ void __trav_display_Any_vertex_List_trv(DisplayVisitor __v0) { ((DisplayVisitor) __v0).before_vertex(this, vertex); vertex.__trav_display_Any_vertex_List_trv(__v0); ((UniversalVisitor) __v0).after_vertex(this, vertex); super.__trav_display_Any_vertex_List_trv(__v0); } }} {{ void __trav_print_Any_vertex_List_trv_bef(PrintVisitor __v0) { super.__trav_print_Any_vertex_List_trv_bef(__v0); ((UniversalVisitor) __v0).before(this); } }} {{ void __trav_print_Any_vertex_List_trv_aft(PrintVisitor __v0) { ((UniversalVisitor) __v0).after(this); super.__trav_print_Any_vertex_List_trv_aft(__v0); } }} {{ void __trav_print_Any_vertex_List_trv(PrintVisitor __v0) { ((UniversalVisitor) __v0).before_vertex(this, vertex); vertex.__trav_print_Any_vertex_List_trv(__v0); ((UniversalVisitor) __v0).after_vertex(this, vertex); super.__trav_print_Any_vertex_List_trv(__v0); } }} }