home *** CD-ROM | disk | FTP | other *** search
- package espresso;
-
- class VarObj extends Obj {
- boolean passByRef = false;
- int vnum = -1;
- int adr = -1;
- Object value = null;
- AST initializer = null;
-
- boolean isConstant() {
- return this.value != null && !(this.value instanceof Name) || this.initializer != null && this.initializer.isConstant();
- }
-
- public String toString() {
- return String.valueOf("variable ").concat(String.valueOf(super.name));
- }
-
- void printDef() {
- Pretty.align();
- System.out.print(String.valueOf(String.valueOf(super.typ).concat(String.valueOf(" "))).concat(String.valueOf(super.name)));
- if (this.value != null) {
- System.out.print(String.valueOf(" = ").concat(String.valueOf(this.value)));
- }
-
- System.out.println(";");
- }
-
- Object constValue() {
- if (this.value == null) {
- ImmediateItem var1 = (ImmediateItem)this.initializer.gen().coerce(this.initializer.typ, super.typ);
- this.value = var1.value;
- }
-
- return this.value;
- }
-
- VarObj(int var1, Name var2, Typ var3) {
- super(var1, var2, var3);
- }
-
- VarObj() {
- }
- }
-