core: import edu.neu.ccs.demeter.dj.*; import java.util.*; import edu.neu.ccs.demeter.*; add: class Main { public constructor Main() {{ super(); }} public static Main parse(java.io.Reader in) throws ParseException {{ return new Parser(in)._Main(); }} public static Main parse(java.io.InputStream in) throws ParseException {{ return new Parser(in)._Main(); }} public static Main parse(String s) {{ try { return parse(new java.io.StringReader(s)); } catch (ParseException e) { throw new RuntimeException(e.toString()); } }} {{ static ClassGraph cg; static int err_num; static int war_num; public static void main(String args[]) throws Exception { if(args.length < 1) { System.out.println("\nUsage: demeterj test input_file_name"); System.out.println("example: demeterj test test1.cd\n"); return; } java.io.Reader in = new java.io.FileReader(args[0]); err_num = 0; war_num = 0; System.out.println("\nRunning the cd-checker...please wait\n"); Cd_graph cd = Cd_graph.parse(in); cg = new ClassGraph(true,false); findUndefinedClasses(cd); System.out.println(); System.out.print(err_num); if(err_num<=1) System.out.print(" error and "); else System.out.print(" errors and "); System.out.print(war_num); if(war_num<=1) System.out.println(" warning"); else System.out.println(" warnings"); } static void findUndefinedClasses(Cd_graph cd) { TraversalGraph tg = new TraversalGraph("from Cd_graph bypassing{ Neighbors, ->*,parameters,*}to Vertex",cg); cd.findUndefinedClasses(tg); } }} {{ 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_); } }} }