home *** CD-ROM | disk | FTP | other *** search
Wrap
package espresso; class Predef implements Constants { static Name clinitS = Name.fromString("<clinit>"); static Name initS = Name.fromString("<init>"); static Scope arrayScope; static Scope scope = new Scope((Scope)null, (Obj)null); static VarObj lengthVar; static TypSet anyTypSet; static Typ runtimeExceptionTyp; static Typ errorTyp; static Typ throwableTyp; static Typ stringTyp; static Typ objectTyp; static ClassObj runtimeExceptionClass; static ClassObj errorClass; static ClassObj throwableClass; static ClassObj stringClass; static ClassObj objectClass; static void init() { scope.enter(Typ.byteTyp.obj); scope.enter(Typ.shortTyp.obj); scope.enter(Typ.charTyp.obj); scope.enter(Typ.intTyp.obj); scope.enter(Typ.longTyp.obj); scope.enter(Typ.floatTyp.obj); scope.enter(Typ.doubleTyp.obj); scope.enter(Typ.booleanTyp.obj); scope.enter(Typ.voidTyp.obj); scope.enter(Typ.anyTyp.obj); scope.enter(Typ.errTyp.obj); objectClass = loadClass("Object"); objectTyp = objectClass.typ; stringClass = loadClass("String"); stringTyp = stringClass.typ; throwableClass = loadClass("Throwable"); throwableTyp = throwableClass.typ; errorClass = loadClass("Error"); errorTyp = errorClass.typ; runtimeExceptionClass = loadClass("RuntimeException"); runtimeExceptionTyp = runtimeExceptionClass.typ; anyTypSet = new TypSet(throwableTyp, (TypSet)null); ClassObj var0 = Typ.arrayTyp.obj; var0.superclass = objectClass; var0.scope = new Scope((Scope)null, var0); lengthVar = new VarObj(17, Name.fromString("length"), Typ.intTyp); var0.scope.enter(lengthVar); enterConstant("null", Basic.nullValue, Typ.nullTyp); enterConstant("true", new Integer(1), Typ.booleanTyp); enterConstant("false", new Integer(0), Typ.booleanTyp); enterUnop("+", Typ.intTyp, Typ.intTyp, 0); enterUnop("+", Typ.longTyp, Typ.longTyp, 0); enterUnop("+", Typ.floatTyp, Typ.floatTyp, 0); enterUnop("+", Typ.doubleTyp, Typ.doubleTyp, 0); enterUnop("-", Typ.intTyp, Typ.intTyp, 116); enterUnop("-", Typ.longTyp, Typ.longTyp, 117); enterUnop("-", Typ.floatTyp, Typ.floatTyp, 118); enterUnop("-", Typ.doubleTyp, Typ.doubleTyp, 119); enterUnop("~", Typ.intTyp, Typ.intTyp, 130); enterUnop("~", Typ.longTyp, Typ.longTyp, 131); enterUnop("++", Typ.byteTyp, Typ.byteTyp, 96); enterUnop("++", Typ.shortTyp, Typ.shortTyp, 96); enterUnop("++", Typ.charTyp, Typ.charTyp, 96); enterUnop("++", Typ.intTyp, Typ.intTyp, 96); enterUnop("++", Typ.longTyp, Typ.longTyp, 97); enterUnop("++", Typ.floatTyp, Typ.floatTyp, 98); enterUnop("++", Typ.doubleTyp, Typ.doubleTyp, 99); enterUnop("--", Typ.byteTyp, Typ.byteTyp, 100); enterUnop("--", Typ.shortTyp, Typ.shortTyp, 100); enterUnop("--", Typ.charTyp, Typ.charTyp, 100); enterUnop("--", Typ.intTyp, Typ.intTyp, 100); enterUnop("--", Typ.longTyp, Typ.longTyp, 101); enterUnop("--", Typ.floatTyp, Typ.floatTyp, 102); enterUnop("--", Typ.doubleTyp, Typ.doubleTyp, 103); enterUnop("!", Typ.booleanTyp, Typ.booleanTyp, 257); enterBinop("+", Typ.intTyp, Typ.intTyp, Typ.intTyp, 96); enterBinop("+", Typ.longTyp, Typ.longTyp, Typ.longTyp, 97); enterBinop("+", Typ.floatTyp, Typ.floatTyp, Typ.floatTyp, 98); enterBinop("+", Typ.doubleTyp, Typ.doubleTyp, Typ.doubleTyp, 99); enterBinop("+", stringTyp, Typ.anyTyp, stringTyp, 256); enterBinop("+", Typ.anyTyp, stringTyp, stringTyp, 256); enterBinop("-", Typ.intTyp, Typ.intTyp, Typ.intTyp, 100); enterBinop("-", Typ.longTyp, Typ.longTyp, Typ.longTyp, 101); enterBinop("-", Typ.floatTyp, Typ.floatTyp, Typ.floatTyp, 102); enterBinop("-", Typ.doubleTyp, Typ.doubleTyp, Typ.doubleTyp, 103); enterBinop("*", Typ.intTyp, Typ.intTyp, Typ.intTyp, 104); enterBinop("*", Typ.longTyp, Typ.longTyp, Typ.longTyp, 105); enterBinop("*", Typ.floatTyp, Typ.floatTyp, Typ.floatTyp, 106); enterBinop("*", Typ.doubleTyp, Typ.doubleTyp, Typ.doubleTyp, 107); enterBinop("/", Typ.intTyp, Typ.intTyp, Typ.intTyp, 108); enterBinop("/", Typ.longTyp, Typ.longTyp, Typ.longTyp, 109); enterBinop("/", Typ.floatTyp, Typ.floatTyp, Typ.floatTyp, 110); enterBinop("/", Typ.doubleTyp, Typ.doubleTyp, Typ.doubleTyp, 111); enterBinop("%", Typ.intTyp, Typ.intTyp, Typ.intTyp, 112); enterBinop("%", Typ.longTyp, Typ.longTyp, Typ.longTyp, 113); enterBinop("%", Typ.floatTyp, Typ.floatTyp, Typ.floatTyp, 114); enterBinop("%", Typ.doubleTyp, Typ.doubleTyp, Typ.doubleTyp, 115); enterBinop("&", Typ.intTyp, Typ.intTyp, Typ.intTyp, 126); enterBinop("&", Typ.longTyp, Typ.longTyp, Typ.longTyp, 127); enterBinop("|", Typ.intTyp, Typ.intTyp, Typ.intTyp, 128); enterBinop("|", Typ.longTyp, Typ.longTyp, Typ.longTyp, 129); enterBinop("^", Typ.intTyp, Typ.intTyp, Typ.intTyp, 130); enterBinop("^", Typ.longTyp, Typ.longTyp, Typ.longTyp, 131); enterBinop("<<", Typ.intTyp, Typ.intTyp, Typ.intTyp, 120); enterBinop("<<", Typ.longTyp, Typ.intTyp, Typ.longTyp, 121); enterBinop(">>", Typ.intTyp, Typ.intTyp, Typ.intTyp, 122); enterBinop(">>", Typ.longTyp, Typ.intTyp, Typ.longTyp, 123); enterBinop(">>>", Typ.intTyp, Typ.intTyp, Typ.intTyp, 124); enterBinop(">>>", Typ.longTyp, Typ.intTyp, Typ.longTyp, 125); enterBinop("<", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 161); enterBinop("<", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75931); enterBinop("<", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76955); enterBinop("<", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77979); enterBinop(">", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 163); enterBinop(">", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75933); enterBinop(">", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76445); enterBinop(">", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77469); enterBinop("<=", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 164); enterBinop("<=", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75934); enterBinop("<=", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76958); enterBinop("<=", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77982); enterBinop(">=", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 162); enterBinop(">=", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75932); enterBinop(">=", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76444); enterBinop(">=", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77468); enterBinop("==", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 159); enterBinop("==", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75929); enterBinop("==", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76441); enterBinop("==", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77465); enterBinop("==", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 159); enterBinop("==", objectTyp, objectTyp, Typ.booleanTyp, 165); enterBinop("!=", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 160); enterBinop("!=", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75930); enterBinop("!=", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76442); enterBinop("!=", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77466); enterBinop("!=", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 160); enterBinop("!=", objectTyp, objectTyp, Typ.booleanTyp, 166); enterBinop("&", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 126); enterBinop("|", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 128); enterBinop("^", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 130); enterBinop("&&", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 258); enterBinop("||", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 259); } private static ClassObj loadClass(String var0) { try { return ClassFile.load(Name.fromString("java.lang."), Name.fromString(var0)); } catch (LoadError var2) { Report.error(Report.noPos, String.valueOf(String.valueOf(String.valueOf("error while loading class ").concat(String.valueOf(var0))).concat(String.valueOf(": "))).concat(String.valueOf(var2))); return (new Typ(11, Name.fromString(var0))).obj; } } private static void enterUnop(String var0, Typ var1, Typ var2, int var3) { Typ[] var4 = new Typ[]{var1}; scope.enter(new OperatorObj(Name.fromString(var0), new FunTyp(var4, var2, (TypSet)null), var3)); } private static void enterBinop(String var0, Typ var1, Typ var2, Typ var3, int var4) { Typ[] var5 = new Typ[]{var1, var2}; scope.enter(new OperatorObj(Name.fromString(var0), new FunTyp(var5, var3, (TypSet)null), var4)); } private static void enterConstant(String var0, Object var1, Typ var2) { VarObj var3 = new VarObj(25, Name.fromString(var0), var2); var3.value = var1; scope.enter(var3); } public Predef() { } }