import edu.neu.ccs.demeter.dj.*; import edu.neu.ccs.demeter.aplib.*; import java.util.*; import edu.neu.ccs.demeter.*; class Main { public 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()); } } // define some paths used here for convenience static String FClassGraph = " edu.neu.ccs.demeter.aplib.cd.ClassGraph "; static String FClassParts = " edu.neu.ccs.demeter.aplib.cd.ClassParts "; static String FClassName = " edu.neu.ccs.demeter.aplib.cd.ClassName "; static String FIdent = " edu.neu.ccs.demeter.Ident "; public static void main(String[] args) throws Exception { // parse the aspectfile input and extract the two components AspectFile af = AspectFile.parse(System.in); ClassDictionaryAspect cda = af.get_cdAspect(); TraversalAspect ta = af.get_tAspect(); // create a new SemanticChecker, provide it with the two components, // and do the checking SemanticChecker sc = new SemanticChecker(); sc.generate(cda, ta); sc.check(); } 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_); } }