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

  1. package espresso;
  2.  
  3. class VarObj extends Obj {
  4.    boolean passByRef = false;
  5.    int vnum = -1;
  6.    int adr = -1;
  7.    Object value = null;
  8.    AST initializer = null;
  9.  
  10.    boolean isConstant() {
  11.       return this.value != null && !(this.value instanceof Name) || this.initializer != null && this.initializer.isConstant();
  12.    }
  13.  
  14.    public String toString() {
  15.       return String.valueOf("variable ").concat(String.valueOf(super.name));
  16.    }
  17.  
  18.    void printDef() {
  19.       Pretty.align();
  20.       System.out.print(String.valueOf(String.valueOf(super.typ).concat(String.valueOf(" "))).concat(String.valueOf(super.name)));
  21.       if (this.value != null) {
  22.          System.out.print(String.valueOf(" = ").concat(String.valueOf(this.value)));
  23.       }
  24.  
  25.       System.out.println(";");
  26.    }
  27.  
  28.    Object constValue() {
  29.       if (this.value == null) {
  30.          ImmediateItem var1 = (ImmediateItem)this.initializer.gen().coerce(this.initializer.typ, super.typ);
  31.          this.value = var1.value;
  32.       }
  33.  
  34.       return this.value;
  35.    }
  36.  
  37.    VarObj(int var1, Name var2, Typ var3) {
  38.       super(var1, var2, var3);
  39.    }
  40.  
  41.    VarObj() {
  42.    }
  43. }
  44.