1 package tinybasic; 2 import antlr.collections.AST; 3 4 public abstract class DTDataType { 5 6 protected Scope scope; 7 protected int theType; 8 protected static int INT_VAR = TinyBasicTokenTypes.INT_VAR; 9 protected static int FLT_VAR = TinyBasicTokenTypes.FLT_VAR; 10 protected static int STR_VAR = TinyBasicTokenTypes.STR_VAR; 11 protected static int INT_CONST = TinyBasicTokenTypes.INT_CONST; 12 protected static int FLT_CONST = TinyBasicTokenTypes.FLT_CONST; 13 protected static int STR_CONST = TinyBasicTokenTypes.STR_CONST; 14 DTDataType(Scope scope,int _ttype)15 public DTDataType(Scope scope,int _ttype){ 16 this.scope=scope; 17 theType=_ttype; 18 } 19 getType()20 public int getType(){ 21 return theType; 22 } 23 getInteger()24 public int getInteger () { return 12345; } getFloat()25 public double getFloat () { return 12345.0;} getString()26 public String getString () { return null; } 27 setInteger(DTDataType tbd)28 public void setInteger (DTDataType tbd){setInteger (tbd.getInteger ());} setFloat(DTDataType tbd)29 public void setFloat (DTDataType tbd){setFloat (tbd.getFloat ());} setString(DTDataType tbd)30 public void setString (DTDataType tbd){setString (tbd.getString ());} 31 setInteger(int i)32 public void setInteger (int i){} setFloat(double d)33 public void setFloat (double d){} setString(String s)34 public void setString (String s){} 35 getDTDataType(DTDataType i1)36 public DTDataType getDTDataType(DTDataType i1){return null;} getDTDataType(DTDataType i1,DTDataType i2)37 public DTDataType getDTDataType(DTDataType i1,DTDataType i2){return null;} getDTDataType(DTDataType i1,DTDataType i2,DTDataType i3)38 public DTDataType getDTDataType(DTDataType i1,DTDataType i2,DTDataType i3){return null;} 39 40 setDTDataType(DTDataType i1,DTDataType s)41 public void setDTDataType(DTDataType i1,DTDataType s){} setDTDataType(DTDataType i1,DTDataType i2,DTDataType s)42 public void setDTDataType(DTDataType i1,DTDataType i2,DTDataType s){} setDTDataType(DTDataType i1,DTDataType i2,DTDataType i3,DTDataType s)43 public void setDTDataType(DTDataType i1,DTDataType i2,DTDataType i3,DTDataType s){} 44 assign(DTDataType tbd)45 public void assign(DTDataType tbd){} 46 getDimension()47 public int getDimension(){return 0;} 48 getDimensioned(int i)49 public int getDimensioned(int i){return 0;} 50 multiply(DTDataType other)51 public DTDataType multiply(DTDataType other) { return null;} divide(DTDataType other)52 public DTDataType divide(DTDataType other) { return null;} add(DTDataType other)53 public DTDataType add(DTDataType other) { return null;} subtract(DTDataType other)54 public DTDataType subtract(DTDataType other) { return null;} mod(DTDataType other)55 public DTDataType mod(DTDataType other) { return null;} round(DTDataType other)56 public DTDataType round(DTDataType other) { return null;} truncate(DTDataType other)57 public DTDataType truncate(DTDataType other) { return null;} 58 getOne()59 protected DTDataType getOne(){ 60 return getOne(theType,scope); 61 } 62 getOne(int aType,Scope scope)63 public static DTDataType getOne(int aType,Scope scope){ 64 if ( aType==INT_CONST ){ 65 return new DTInteger(scope,0); 66 } else if ( aType==INT_VAR ){ 67 return new DTInteger(scope,0); 68 } else if ( aType==FLT_CONST ){ 69 return new DTFloat (scope,0.0); 70 } else if ( aType==FLT_VAR ){ 71 return new DTFloat (scope,0.0); 72 } else if ( aType==STR_CONST ){ 73 return new DTString (scope,""); 74 } else if ( aType==STR_VAR ){ 75 return new DTString (scope,""); 76 } 77 return null; 78 79 80 } 81 getOne(DTDataType s)82 protected DTDataType getOne(DTDataType s){ 83 DTDataType t=getOne(); 84 t.assign(s); 85 return t; 86 } 87 cloneDTDataType()88 public DTDataType cloneDTDataType() 89 { 90 return getOne(this); 91 } 92 setDimension(int i1)93 public void setDimension(int i1){ 94 } setDimension(int i1,int i2)95 public void setDimension(int i1,int i2){ 96 } setDimension(int i1,int i2,int i3)97 public void setDimension(int i1,int i2,int i3){ 98 } 99 compareTo(Object o)100 public abstract int compareTo(Object o); 101 attach(DTDataType theBoss)102 public void attach(DTDataType theBoss){} 103 104 } 105