00001
00002
00003
00004
00005
00006
00007
00008
00010
00011 #define sw_cbl_codetree_enew_h
00012
00013 #include
00014
00015 namespace cbl {
00016 namespace codetree {
00017
00018 namespace stmt {
00019 class TCallStmt;
00020 }
00021
00022 namespace def {
00023 class TDef;
00024 }
00025
00026 namespace expr {
00027
00028 class TNewExpr : public TExpression {
00029 private:
00030 def::TDef *FNewType;
00031 stmt::TCallStmt *FConstructor;
00032
00033 protected:
00034 TNewExpr(symbols::TModuleSym *AOwner, def::TDef *ANewType, stmt::TCallStmt *AConstructor = 0);
00035
00036 friend class symbols::TModuleSym;
00037
00038 public:
00039
00040 const def::TDef *newType() const;
00041 const stmt::TCallStmt *constructor() const;
00042
00043
00044 virtual void accept(TExprVisitor&);
00045 };
00046
00047 }
00048 }
00049 }
00050
00051 #endif