home *** CD-ROM | disk | FTP | other *** search
/ Tutto per Internet / Internet.iso / soft95 / Java / espints / espinst.exe / classes / espresso / Predef.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-02-28  |  5.5 KB  |  174 lines

  1. package espresso;
  2.  
  3. class Predef implements Constants {
  4.    static Name clinitS = Name.fromString("<clinit>");
  5.    static Name initS = Name.fromString("<init>");
  6.    static Scope arrayScope;
  7.    static Scope scope = new Scope((Scope)null, (Obj)null);
  8.    static VarObj lengthVar;
  9.    static TypSet anyTypSet;
  10.    static Typ runtimeExceptionTyp;
  11.    static Typ errorTyp;
  12.    static Typ throwableTyp;
  13.    static Typ stringTyp;
  14.    static Typ objectTyp;
  15.    static ClassObj runtimeExceptionClass;
  16.    static ClassObj errorClass;
  17.    static ClassObj throwableClass;
  18.    static ClassObj stringClass;
  19.    static ClassObj objectClass;
  20.  
  21.    static void init() {
  22.       scope.enter(Typ.byteTyp.obj);
  23.       scope.enter(Typ.shortTyp.obj);
  24.       scope.enter(Typ.charTyp.obj);
  25.       scope.enter(Typ.intTyp.obj);
  26.       scope.enter(Typ.longTyp.obj);
  27.       scope.enter(Typ.floatTyp.obj);
  28.       scope.enter(Typ.doubleTyp.obj);
  29.       scope.enter(Typ.booleanTyp.obj);
  30.       scope.enter(Typ.voidTyp.obj);
  31.       scope.enter(Typ.anyTyp.obj);
  32.       scope.enter(Typ.errTyp.obj);
  33.       objectClass = loadClass("Object");
  34.       objectTyp = objectClass.typ;
  35.       stringClass = loadClass("String");
  36.       stringTyp = stringClass.typ;
  37.       throwableClass = loadClass("Throwable");
  38.       throwableTyp = throwableClass.typ;
  39.       errorClass = loadClass("Error");
  40.       errorTyp = errorClass.typ;
  41.       runtimeExceptionClass = loadClass("RuntimeException");
  42.       runtimeExceptionTyp = runtimeExceptionClass.typ;
  43.       anyTypSet = new TypSet(throwableTyp, (TypSet)null);
  44.       ClassObj var0 = Typ.arrayTyp.obj;
  45.       var0.superclass = objectClass;
  46.       var0.scope = new Scope((Scope)null, var0);
  47.       lengthVar = new VarObj(17, Name.fromString("length"), Typ.intTyp);
  48.       var0.scope.enter(lengthVar);
  49.       enterConstant("null", Basic.nullValue, Typ.nullTyp);
  50.       enterConstant("true", new Integer(1), Typ.booleanTyp);
  51.       enterConstant("false", new Integer(0), Typ.booleanTyp);
  52.       enterUnop("+", Typ.intTyp, Typ.intTyp, 0);
  53.       enterUnop("+", Typ.longTyp, Typ.longTyp, 0);
  54.       enterUnop("+", Typ.floatTyp, Typ.floatTyp, 0);
  55.       enterUnop("+", Typ.doubleTyp, Typ.doubleTyp, 0);
  56.       enterUnop("-", Typ.intTyp, Typ.intTyp, 116);
  57.       enterUnop("-", Typ.longTyp, Typ.longTyp, 117);
  58.       enterUnop("-", Typ.floatTyp, Typ.floatTyp, 118);
  59.       enterUnop("-", Typ.doubleTyp, Typ.doubleTyp, 119);
  60.       enterUnop("~", Typ.intTyp, Typ.intTyp, 130);
  61.       enterUnop("~", Typ.longTyp, Typ.longTyp, 131);
  62.       enterUnop("++", Typ.byteTyp, Typ.byteTyp, 96);
  63.       enterUnop("++", Typ.shortTyp, Typ.shortTyp, 96);
  64.       enterUnop("++", Typ.charTyp, Typ.charTyp, 96);
  65.       enterUnop("++", Typ.intTyp, Typ.intTyp, 96);
  66.       enterUnop("++", Typ.longTyp, Typ.longTyp, 97);
  67.       enterUnop("++", Typ.floatTyp, Typ.floatTyp, 98);
  68.       enterUnop("++", Typ.doubleTyp, Typ.doubleTyp, 99);
  69.       enterUnop("--", Typ.byteTyp, Typ.byteTyp, 100);
  70.       enterUnop("--", Typ.shortTyp, Typ.shortTyp, 100);
  71.       enterUnop("--", Typ.charTyp, Typ.charTyp, 100);
  72.       enterUnop("--", Typ.intTyp, Typ.intTyp, 100);
  73.       enterUnop("--", Typ.longTyp, Typ.longTyp, 101);
  74.       enterUnop("--", Typ.floatTyp, Typ.floatTyp, 102);
  75.       enterUnop("--", Typ.doubleTyp, Typ.doubleTyp, 103);
  76.       enterUnop("!", Typ.booleanTyp, Typ.booleanTyp, 257);
  77.       enterBinop("+", Typ.intTyp, Typ.intTyp, Typ.intTyp, 96);
  78.       enterBinop("+", Typ.longTyp, Typ.longTyp, Typ.longTyp, 97);
  79.       enterBinop("+", Typ.floatTyp, Typ.floatTyp, Typ.floatTyp, 98);
  80.       enterBinop("+", Typ.doubleTyp, Typ.doubleTyp, Typ.doubleTyp, 99);
  81.       enterBinop("+", stringTyp, Typ.anyTyp, stringTyp, 256);
  82.       enterBinop("+", Typ.anyTyp, stringTyp, stringTyp, 256);
  83.       enterBinop("-", Typ.intTyp, Typ.intTyp, Typ.intTyp, 100);
  84.       enterBinop("-", Typ.longTyp, Typ.longTyp, Typ.longTyp, 101);
  85.       enterBinop("-", Typ.floatTyp, Typ.floatTyp, Typ.floatTyp, 102);
  86.       enterBinop("-", Typ.doubleTyp, Typ.doubleTyp, Typ.doubleTyp, 103);
  87.       enterBinop("*", Typ.intTyp, Typ.intTyp, Typ.intTyp, 104);
  88.       enterBinop("*", Typ.longTyp, Typ.longTyp, Typ.longTyp, 105);
  89.       enterBinop("*", Typ.floatTyp, Typ.floatTyp, Typ.floatTyp, 106);
  90.       enterBinop("*", Typ.doubleTyp, Typ.doubleTyp, Typ.doubleTyp, 107);
  91.       enterBinop("/", Typ.intTyp, Typ.intTyp, Typ.intTyp, 108);
  92.       enterBinop("/", Typ.longTyp, Typ.longTyp, Typ.longTyp, 109);
  93.       enterBinop("/", Typ.floatTyp, Typ.floatTyp, Typ.floatTyp, 110);
  94.       enterBinop("/", Typ.doubleTyp, Typ.doubleTyp, Typ.doubleTyp, 111);
  95.       enterBinop("%", Typ.intTyp, Typ.intTyp, Typ.intTyp, 112);
  96.       enterBinop("%", Typ.longTyp, Typ.longTyp, Typ.longTyp, 113);
  97.       enterBinop("%", Typ.floatTyp, Typ.floatTyp, Typ.floatTyp, 114);
  98.       enterBinop("%", Typ.doubleTyp, Typ.doubleTyp, Typ.doubleTyp, 115);
  99.       enterBinop("&", Typ.intTyp, Typ.intTyp, Typ.intTyp, 126);
  100.       enterBinop("&", Typ.longTyp, Typ.longTyp, Typ.longTyp, 127);
  101.       enterBinop("|", Typ.intTyp, Typ.intTyp, Typ.intTyp, 128);
  102.       enterBinop("|", Typ.longTyp, Typ.longTyp, Typ.longTyp, 129);
  103.       enterBinop("^", Typ.intTyp, Typ.intTyp, Typ.intTyp, 130);
  104.       enterBinop("^", Typ.longTyp, Typ.longTyp, Typ.longTyp, 131);
  105.       enterBinop("<<", Typ.intTyp, Typ.intTyp, Typ.intTyp, 120);
  106.       enterBinop("<<", Typ.longTyp, Typ.intTyp, Typ.longTyp, 121);
  107.       enterBinop(">>", Typ.intTyp, Typ.intTyp, Typ.intTyp, 122);
  108.       enterBinop(">>", Typ.longTyp, Typ.intTyp, Typ.longTyp, 123);
  109.       enterBinop(">>>", Typ.intTyp, Typ.intTyp, Typ.intTyp, 124);
  110.       enterBinop(">>>", Typ.longTyp, Typ.intTyp, Typ.longTyp, 125);
  111.       enterBinop("<", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 161);
  112.       enterBinop("<", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75931);
  113.       enterBinop("<", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76955);
  114.       enterBinop("<", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77979);
  115.       enterBinop(">", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 163);
  116.       enterBinop(">", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75933);
  117.       enterBinop(">", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76445);
  118.       enterBinop(">", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77469);
  119.       enterBinop("<=", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 164);
  120.       enterBinop("<=", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75934);
  121.       enterBinop("<=", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76958);
  122.       enterBinop("<=", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77982);
  123.       enterBinop(">=", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 162);
  124.       enterBinop(">=", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75932);
  125.       enterBinop(">=", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76444);
  126.       enterBinop(">=", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77468);
  127.       enterBinop("==", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 159);
  128.       enterBinop("==", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75929);
  129.       enterBinop("==", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76441);
  130.       enterBinop("==", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77465);
  131.       enterBinop("==", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 159);
  132.       enterBinop("==", objectTyp, objectTyp, Typ.booleanTyp, 165);
  133.       enterBinop("!=", Typ.intTyp, Typ.intTyp, Typ.booleanTyp, 160);
  134.       enterBinop("!=", Typ.longTyp, Typ.longTyp, Typ.booleanTyp, 75930);
  135.       enterBinop("!=", Typ.floatTyp, Typ.floatTyp, Typ.booleanTyp, 76442);
  136.       enterBinop("!=", Typ.doubleTyp, Typ.doubleTyp, Typ.booleanTyp, 77466);
  137.       enterBinop("!=", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 160);
  138.       enterBinop("!=", objectTyp, objectTyp, Typ.booleanTyp, 166);
  139.       enterBinop("&", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 126);
  140.       enterBinop("|", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 128);
  141.       enterBinop("^", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 130);
  142.       enterBinop("&&", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 258);
  143.       enterBinop("||", Typ.booleanTyp, Typ.booleanTyp, Typ.booleanTyp, 259);
  144.    }
  145.  
  146.    private static ClassObj loadClass(String var0) {
  147.       try {
  148.          return ClassFile.load(Name.fromString("java.lang."), Name.fromString(var0));
  149.       } catch (LoadError var2) {
  150.          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)));
  151.          return (new Typ(11, Name.fromString(var0))).obj;
  152.       }
  153.    }
  154.  
  155.    private static void enterUnop(String var0, Typ var1, Typ var2, int var3) {
  156.       Typ[] var4 = new Typ[]{var1};
  157.       scope.enter(new OperatorObj(Name.fromString(var0), new FunTyp(var4, var2, (TypSet)null), var3));
  158.    }
  159.  
  160.    private static void enterBinop(String var0, Typ var1, Typ var2, Typ var3, int var4) {
  161.       Typ[] var5 = new Typ[]{var1, var2};
  162.       scope.enter(new OperatorObj(Name.fromString(var0), new FunTyp(var5, var3, (TypSet)null), var4));
  163.    }
  164.  
  165.    private static void enterConstant(String var0, Object var1, Typ var2) {
  166.       VarObj var3 = new VarObj(25, Name.fromString(var0), var2);
  167.       var3.value = var1;
  168.       scope.enter(var3);
  169.    }
  170.  
  171.    public Predef() {
  172.    }
  173. }
  174.