import edu.neu.ccs.demeterf.*; import gen.*; /* class Pack{ boolean good; int min,max; Pack(boolean g, int mn, int mx) { good = g; min = mn; max = mx; } Pack(boolean g){ this(g, Integer.MAX_VALUE, Integer.MIN_VALUE); } } */ class Check extends ID{ Pack combine(AbstractClass l){ return new Pack(true); } Pack combine(Concrete2 t, int d, Pack lt, Pack rt){ // System.out.println(lt.print() + "\n"); System.out.println("lt " + d +" " + lt.good + " "+ lt.min + " " + lt.max + "\n"); System.out.println("rt " + d +" " + rt.good + " "+ rt.min + " " + rt.max + "\n"); return new Pack((lt.good && rt.good && (lt.max < d) && (d < rt.min)), Math.min(lt.min,d), Math.max(rt.max,d)); } Pack combine(Object l, Pack p) { return p;} static boolean check(AbstractClass tree){ return new Traversal(new Check()) .traverse(tree).good; }}