core: import edu.neu.ccs.demeter.dj.*; import java.lang.*; import java.util.*; import edu.neu.ccs.demeter.*; add: class HelpVisitor extends Visitor { public constructor HelpVisitor() {{ super(); }} public static HelpVisitor parse(java.io.Reader in) throws ParseException {{ return new Parser(in)._HelpVisitor(); }} public static HelpVisitor parse(java.io.InputStream in) throws ParseException {{ return new Parser(in)._HelpVisitor(); }} public static HelpVisitor parse(String s) {{ try { return parse(new java.io.StringReader(s)); } catch (ParseException e) { throw new RuntimeException(e.toString()); } }} {{ String s = "from Construct_ns to {Labeled, Regular} "; TraversalGraph tg =new TraversalGraph(s, Main.cg1); private Ident current_class; boolean pass = true; void before (Adjacency host){ current_class = host.get_source().get_vertex_name(); } void before (Construct_ns host){ ConstructVisitor cv = new ConstructVisitor(); tg.traverse(host, cv); Iterator dup = cv.get_dup().iterator(); while (dup.hasNext()) { System.out.println("*** Error *** Part "+dup.next() +" of class "+current_class+" is not unique"); pass = false; } } boolean isPassed() {return pass;} }} {{ void universal_trv0_bef(UniversalVisitor _v_) { ((UniversalVisitor) _v_).before(this); } }} {{ void universal_trv0_aft(UniversalVisitor _v_) { ((UniversalVisitor) _v_).after(this); } }} {{ void universal_trv0(UniversalVisitor _v_) { universal_trv0_bef(_v_); universal_trv0_aft(_v_); } }} }