package test; import SourceFile; import Class; import ClassBody; import InstVarDecl; import DeclId; import Method; import Return; import ParameterList; import FormalParameter; import Block; import Assign; import Receiver; import MethodCall; import LocalOrFieldVar; import ClassDeclId; import UsedId; import Type; import SCException; public class SCTest { public SourceFile source=new SourceFile(); private boolean extendedsc; public void build_tree() { Class a=new Class(); Class class1=new Class(); Class class2=new Class(); Class class3 =new Class(); Class b=new Class(); Class c=new Class(); Class dc=new Class(); ClassBody ab=new ClassBody(); ClassBody b1=new ClassBody(); ClassBody b2=new ClassBody(); ClassBody b3=new ClassBody(); ClassBody bb=new ClassBody(); ClassBody cb=new ClassBody(); ClassBody dcb=new ClassBody(); InstVarDecl i=new InstVarDecl(); InstVarDecl j=new InstVarDecl(); InstVarDecl ij=new InstVarDecl(); InstVarDecl inst1=new InstVarDecl(); InstVarDecl inst2=new InstVarDecl(); InstVarDecl inst3=new InstVarDecl(); InstVarDecl binstvar1=new InstVarDecl(); InstVarDecl binstvar2=new InstVarDecl(); InstVarDecl aformeth=new InstVarDecl(); InstVarDecl aformeth2=new InstVarDecl(); DeclId adeclformeth=new DeclId(); DeclId decl1=new DeclId(); DeclId decl2=new DeclId(); DeclId decl3=new DeclId(); DeclId decl=new DeclId(); DeclId d=new DeclId(); DeclId d1=new DeclId(); DeclId d2=new DeclId(); DeclId d3=new DeclId(); DeclId bd1=new DeclId(); DeclId bd2=new DeclId(); DeclId amd1=new DeclId(); DeclId amd2=new DeclId(); DeclId dcmd1=new DeclId(); DeclId dcmd2=new DeclId(); DeclId adc=new DeclId(); DeclId cmname=new DeclId(); DeclId dcmname=new DeclId(); Method m=new Method(); Method bm=new Method(); Method cm=new Method(); Method dcm=new Method(); Return amr=new Return(); ParameterList amp=new ParameterList(); ParameterList dcmp=new ParameterList(); FormalParameter dcmpf=new FormalParameter(); FormalParameter ampf1=new FormalParameter(); FormalParameter ampf2=new FormalParameter(); FormalParameter dcmpf1=new FormalParameter(); FormalParameter dcmpf2=new FormalParameter(); Block bl=new Block(); Block bbl=new Block(); Block dcmb=new Block(); Block cmb=new Block(); Assign as=new Assign(); Receiver amrcv=new Receiver(); Receiver amrcv2=new Receiver(); MethodCall ammc=new MethodCall(); MethodCall ammc2=new MethodCall(); LocalOrFieldVar lf=new LocalOrFieldVar(); LocalOrFieldVar lf2=new LocalOrFieldVar(); LocalOrFieldVar amerst=new LocalOrFieldVar(); LocalOrFieldVar amzwei=new LocalOrFieldVar(); LocalOrFieldVar am2=new LocalOrFieldVar(); ClassDeclId cdi=new ClassDeclId(); ClassDeclId cdi1=new ClassDeclId(); ClassDeclId cdi2=new ClassDeclId(); ClassDeclId cdi3=new ClassDeclId(); ClassDeclId bcd=new ClassDeclId(); ClassDeclId ccd=new ClassDeclId(); ClassDeclId dccd=new ClassDeclId(); UsedId u1=new UsedId(); UsedId u2=new UsedId(); UsedId text=new UsedId(); UsedId dccdsclass=new UsedId(); UsedId ausedformeth=new UsedId(); UsedId ausedformeth2=new UsedId(); UsedId ausedinmeth=new UsedId(); UsedId ausedinmeth2=new UsedId(); Type t=new Type(); Type t1=new Type(); Type t2=new Type(); Type t3=new Type(); Type t4=new Type(); Type t5=new Type(); Type t6=new Type(); cdi.set_classname("test"); cdi1.set_classname("class1"); cdi2.set_classname("class2"); cdi3.set_classname("class3"); bcd.set_classname("extendtest"); ccd.set_classname("methtestbasis"); dccd.set_classname("methtestinherit"); text.set_Name("extendtest"); dccdsclass.set_Name("methtestbasis"); a.set_ClassDeclId(cdi); a.set_UsedId(text); class1.set_ClassDeclId(cdi1); class2.set_ClassDeclId(cdi2); class3.set_ClassDeclId(cdi3); b.set_ClassDeclId(bcd); c.set_ClassDeclId(ccd); dc.set_ClassDeclId(dccd); dc.set_UsedId(dccdsclass); d1.set_Name("testint1"); d2.set_Name("testint2"); d3.set_Name("class1var"); decl1.set_Name("class2var"); decl2.set_Name("class3var"); decl3.set_Name("inttest"); bd1.set_Name("externesint1"); bd2.set_Name("externesint2"); adeclformeth.set_Name("klassenvariable"); adc.set_Name("klassenvariabledc"); t.set_Type("int"); t1.set_Type("class2"); t2.set_Type("class3"); t3.set_Type("int"); t4.set_Type("class1"); t5.set_Type("extendtest"); t6.set_Type("methtestinherit"); inst1.set_Type(t1); inst2.set_Type(t2); inst3.set_Type(t3); ij.set_Type(t4); i.set_Type(t); j.set_Type(t); aformeth.set_Type(t5); binstvar1.set_Type(t); binstvar2.set_Type(t); aformeth2.set_Type(t6); i.set_DeclId(d1); j.set_DeclId(d2); ij.set_DeclId(d3); aformeth.set_DeclId(adeclformeth); inst1.set_DeclId(decl1); inst2.set_DeclId(decl2); inst3.set_DeclId(decl3); binstvar1.set_DeclId(bd1); binstvar2.set_DeclId(bd2); aformeth2.set_DeclId(adc); ab.set_FieldDecl(i); ab.set_FieldDecl(j); ab.set_FieldDecl(ij); ab.set_FieldDecl(aformeth); b1.set_FieldDecl(inst1); b2.set_FieldDecl(inst2); b3.set_FieldDecl(inst3); bb.set_FieldDecl(binstvar1); bb.set_FieldDecl(binstvar2); ab.set_FieldDecl(aformeth2); u1.set_Name("class1var"); u1.set_Name("class2var"); u1.set_Name("class3var"); u1.set_Name("inttest"); u2.set_Name("testint2"); ausedformeth.set_Name("testfkt"); ausedinmeth.set_Name("klassenvariable"); ausedformeth2.set_Name("klassenvariabledc"); ausedformeth2.set_Name("testen"); lf.set_UsedId(u1); lf2.set_UsedId(u2); amerst.set_UsedId(u1); amzwei.set_UsedId(ausedinmeth); as.set_Expr(lf,lf2); amr.set_ReturnExpr(lf2); amrcv.set_Expr(lf); ammc.set_Receiver(amrcv); ammc.set_UsedId(ausedformeth); ammc.add_Expr(amerst); ammc.add_Expr(amzwei); ammc2.set_Receiver(amrcv); ammc2.set_UsedId(ausedformeth2); bl.set_Statement(as); bl.set_Statement(ammc); bl.set_Statement(ammc2); bl.set_Statement(amr); amd1.set_Name("intwert"); amd2.set_Name("extendtest"); dcmd1.set_Name("intwert"); dcmd2.set_Name("intwert"); ampf1.set_Type(t); ampf2.set_Type(t5); ampf1.set_DeclId(amd1); ampf2.set_DeclId(amd2); dcmpf1.set_Type(t); dcmpf2.set_Type(t); dcmpf1.set_DeclId(dcmd1); dcmpf2.set_DeclId(dcmd2); amp.set_AddParameter(ampf1); amp.set_AddParameter(ampf2); dcmp.set_AddParameter(dcmpf1); dcmp.set_AddParameter(dcmpf2); dcm.set_ParaList(dcmp); m.set_ParaList(amp); dcm.set_Block(dcmb); m.set_Block(bl); cm.set_Block(cmb); d.set_Name("testfkt"); cmname.set_Name("testen"); dcmname.set_Name("testen"); m.set_ReturnType(t); cm.set_ReturnType(t); dcm.set_ReturnType(t); m.set_DeclId(d); cm.set_DeclId(cmname); dcm.set_DeclId(dcmname); ab.set_FieldDecl(m); cb.set_FieldDecl(cm); dcb.set_FieldDecl(dcm); a.set_ClassBody(ab); class1.set_ClassBody(b1); class2.set_ClassBody(b2); class3.set_ClassBody(b3); b.set_ClassBody(bb); c.set_ClassBody(cb); dc.set_ClassBody(dcb); source.set_Class(c); source.set_Class(dc); source.set_Class(b); source.set_Class(class3); source.set_Class(class2); source.set_Class(class1); source.set_Class(a); try { source.sc_check(extendedsc); } catch (SCException ex) { ex.fehlerausgabe(); } } public void set_ext(boolean ext) { extendedsc=ext; } public static void main(String args[]) { SCTest test=new SCTest(); if(args!=null) { if(args[0].equals("fullinfo")) test.set_ext(true); else test.set_ext(false); } test.build_tree(); } }