Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

evalue.h

Go to the documentation of this file.
00001 
00002 //
00003 //  Borland C++ 5.5, GNU C++ 3.0
00004 //  Compiler Backend Library
00005 //  $Id: evalue_8h-source.html,v 1.1 2002/07/18 14:58:45 cparpart Exp $
00006 //
00007 //  Copyright (c) 2000-2002 SurakWare Corp.
00008 //
00010 #ifndef sw_cbl_codetree_evalue_h
00011 #define sw_cbl_codetree_evalue_h
00012 
00013 #include 
00014 
00015 #include 
00016 
00017 namespace cbl {
00018 namespace codetree {
00019 
00020 namespace def {
00021     class TRangeDef;
00022     class TFloatDef;
00023     class TArrayDef;
00024     class TPointerDef;
00025     class TEnumDef;
00026     class TTypeRefDef;
00027 }
00028 
00029 namespace expr {
00030 
00031 // TValueExpr
00032 template<typename TValueType, typename TBaseDef>
00033 class TValueExpr : public TExpression {
00034 private:
00035     TValueType FValue;
00036 
00037 public: // really public?
00038     typedef TValueExpr base;
00039 
00040 protected:
00041     TValueExpr(symbols::TModuleSym *AOwner, const TValueType&, TBaseDef *ADef);
00042 
00043 public:
00044     // value
00045     void value(const TValueType&);
00046     const TValueType& value() const;
00047 };
00048 
00049 // TGenIntExpr
00050 template<typename TValueType>
00051 class TGenIntExpr : public TValueExpr {
00052 protected:
00053     TGenIntExpr(symbols::TModuleSym *AOwner, TValueType, def::TRangeDef *ADef);
00054 
00055     friend class symbols::TModuleSym;
00056 };
00057 
00058 // TInt32Expr
00059 class TInt32Expr : public TGenIntExpr {
00060 protected:
00061     TInt32Expr(symbols::TModuleSym *AOwner, crosspl::int32 AValue, def::TRangeDef *ADef);
00062 
00063     friend class symbols::TModuleSym;
00064 
00065 public:
00066     virtual void accept(TExprVisitor&);
00067 };
00068 
00069 // TUInt32Expr
00070 class TUInt32Expr : public TGenIntExpr {
00071 protected:
00072     TUInt32Expr(symbols::TModuleSym *AOwner, crosspl::uint32 AValue, def::TRangeDef *ADef);
00073 
00074     friend class symbols::TModuleSym;
00075 
00076 public:
00077     virtual void accept(TExprVisitor&);
00078 };
00079 
00080 // TInt64Expr
00081 class TInt64Expr : public TGenIntExpr {
00082 protected:
00083     TInt64Expr(symbols::TModuleSym *AOwner, crosspl::int64 AValue, def::TRangeDef *ADef);
00084 
00085     friend class symbols::TModuleSym;
00086 
00087 public:
00088     virtual void accept(TExprVisitor&);
00089 };
00090 
00091 // TUInt64Expr
00092 class TUInt64Expr : public TGenIntExpr {
00093 protected:
00094     TUInt64Expr(symbols::TModuleSym *AOwner, crosspl::uint64 AValue, def::TRangeDef *ADef);
00095 
00096     friend class symbols::TModuleSym;
00097 
00098 public:
00099     virtual void accept(TExprVisitor&);
00100 };
00101 
00102 typedef TInt32Expr TIntExpr;
00103 typedef TUInt32Expr TUIntExpr;
00104 
00105 // TGenFloatExpr
00106 template
00107 class TGenFloatExpr : public TValueExpr {
00108 protected:
00109     TGenFloatExpr(symbols::TModuleSym *AOwner, TValueType, def::TFloatDef *ADef);
00110     
00111     friend class symbols::TModuleSym;
00112 };
00113 
00114 class TFloat64Expr : public TGenFloatExpr {
00115 protected:
00116     TFloat64Expr(symbols::TModuleSym *AOwner, crosspl::float64 AValue, def::TFloatDef *ADef);
00117 
00118     friend class symbols::TModuleSym;
00119 
00120 public:
00121     virtual void accept(TExprVisitor&);
00122 };
00123 
00124 class TFloat80Expr : public TGenFloatExpr {
00125 protected:
00126     TFloat80Expr(symbols::TModuleSym *AOwner, crosspl::float80 AValue, def::TFloatDef *ADef);
00127 
00128     friend class symbols::TModuleSym;
00129 
00130 public:
00131     virtual void accept(TExprVisitor&);
00132 };
00133 
00134 typedef TFloat64Expr TFloatExpr;
00135 
00136 // TStringExpr
00137 class TStringExpr : public TValueExpr {
00138 protected:
00139     TStringExpr(symbols::TModuleSym *AOwner, const std::string& AValue, def::TArrayDef *ADef);
00140 
00141     friend class symbols::TModuleSym;
00142 
00143 public:
00144     virtual void accept(TExprVisitor&);
00145 };
00146 
00147 // TCharExpr
00148 class TCharExpr : public TValueExpr {
00149 protected:
00150     TCharExpr(symbols::TModuleSym *AOwner, crosspl::char8 AValue, def::TRangeDef *);
00151 
00152     friend class symbols::TModuleSym;
00153 
00154 public:
00155     virtual void accept(TExprVisitor&);
00156 };
00157 
00158 // TWideCharExpr
00159 class TWideCharExpr : public TValueExpr {
00160 protected:
00161     TWideCharExpr(symbols::TModuleSym *AOwner, crosspl::char16 AValue, def::TRangeDef *);
00162 
00163     friend class symbols::TModuleSym;
00164 
00165 public:
00166     virtual void accept(TExprVisitor&);
00167 };
00168 
00169 // TBoolExpr
00170 class TBoolExpr : public TValueExpr {
00171 protected:
00172     TBoolExpr(symbols::TModuleSym *AOwner, bool AValue, def::TRangeDef *);
00173 
00174     friend class symbols::TModuleSym;
00175 
00176 public:
00177     virtual void accept(TExprVisitor&);
00178 };
00179 
00180 // TPointerExpr
00181 class TPointerExpr : public TValueExpr {
00182 protected:
00183     TPointerExpr(symbols::TModuleSym *AOwner, void *AValue, def::TPointerDef *);
00184 
00185     friend class symbols::TModuleSym;
00186 
00187 public:
00188     virtual void accept(TExprVisitor&);
00189 };
00190 
00191 // TEnumExpr
00192 class TEnumExpr : public TValueExpr {
00193 protected:
00194     TEnumExpr(symbols::TModuleSym *AOwner, crosspl::uint AValue, def::TEnumDef *);
00195 
00196     friend class symbols::TModuleSym;
00197 
00198 public:
00199     virtual void accept(TExprVisitor&);
00200 };
00201 
00202 // TTypeidExpr
00203 class TTypeidExpr : public TValueExpr {
00204 protected:
00205     TTypeidExpr(symbols::TModuleSym *AOwner, def::TDef *AValue, def::TTypeRefDef *);
00206 
00207     friend class symbols::TModuleSym;
00208 
00209 public:
00210     virtual void accept(TExprVisitor&);
00211 };
00212 
00213 } // namespace expr
00214 } // namespace codetree
00215 } // namespace cbl
00216 
00217 #endif

Generated on Sat Apr 6 19:07:25 2002 for Compiler Backend Library by doxygen1.2.14 written by , © 1997-2002