00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00010 
00011 #define sw_cbl_codetree_deffloat_h
00012 
00013 #include 
00014 
00015 namespace cbl {
00016 namespace codetree {
00017 namespace def {
00018 
00019 
00020 class TFloatDef : public TDef {
00021 public:
00022     enum TFloatType {
00023         ft32Bit = sizeof(float),
00024         ft64Bit = sizeof(double),
00025         ft80Bit = sizeof(long double)
00026     };
00027 
00028 private:
00029     TFloatType FFloatType;
00030 
00031 protected:
00032     TFloatDef(symbols::TModuleSym *AOwner, TFloatType AFloatType);
00033     
00034     friend class symbols::TModuleSym;
00035 
00036 public:
00037     
00038     virtual unsigned size() const;
00039 
00040     
00041     void floatType(TFloatType);
00042     TFloatType floatType() const;
00043 
00044     
00045     virtual void accept(TDefVisitor&);
00046 
00047     
00048     virtual TFloatDef *clone() const;
00049 };
00050 
00051 } 
00052 } 
00053 } 
00054 
00055 #endif