DTDataType.java
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:3k
源码类别:

编译器/解释器

开发平台:

Others

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