00001
00002
00003
00004
00005
00006
00007
00008
00010
00011 #define sw_cbl_codetree_expr_h
00012
00013 #include <cbl/codetree/codenode.h>
00014
00015 namespace cbl {
00016 namespace codetree {
00017
00018 namespace def {
00019 class TDef;
00020 }
00021
00022 namespace expr {
00023
00024 class TExprVisitor;
00025
00026
00027 class TExpression : public TCodeNode {
00028 private:
00029 def::TDef *FType;
00030
00031 protected:
00032 void type(def::TDef *);
00033
00034 TExpression(symbols::TModuleSym *AOwner, def::TDef *AType = 0);
00035
00036 public:
00037
00038 def::TDef *type() const;
00039
00040
00041 virtual void accept(TExprVisitor&) = 0;
00042 };
00043
00044 }
00045 }
00046 }
00047
00048 #endif