00001
00002
00003
00004
00005
00006
00007
00008
00010
00011 #define sw_cbl_codetree_eoperator_h
00012
00013 #include <cbl/codetree/emethodcall.h>
00014
00015 #include
00016 #include
00017
00018 namespace cbl {
00019 namespace codetree {
00020
00021 namespace symbols {
00022 class TOperatorSym;
00023 }
00024
00025 namespace expr {
00026
00027 class TOperatorExpr : public TExpression {
00028 private:
00029 typedef std::deque TExprList;
00030 TExprList FArguments;
00031 TOperatorStyle FStyle;
00032
00033 protected:
00034 TOperatorExpr(symbols::TModuleSym *AOwner, TOperatorStyle AStyle,
00035 TExpression *AArg1, TExpression *AArg2 = 0);
00036
00037 TOperatorExpr(symbols::TModuleSym *AOwner, TOperatorStyle AStyle,
00038 const TExprList& AArgs);
00039
00040 friend class symbols::TModuleSym;
00041
00042 public:
00043
00044 TOperatorStyle style() const;
00045
00046
00047 const TExprList& arguments() const;
00048
00049
00050 virtual void accept(TExprVisitor&);
00051 };
00052
00053 }
00054 }
00055 }
00056
00057 #endif