CommaExpr.hGo to the documentation of this file.00001
00002 #ifndef _COMMA_EXPR_H
00003 #define _COMMA_EXPR_H
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifdef POLARIS_GNU_PRAGMAS
00021 #pragma interface
00022 #endif
00023
00024 #ifndef _NON_BINARY_EXPR_H
00025 #include "NonBinaryExpr.h"
00026 #endif
00027
00028 class CommaExpr : public NonBinaryExpr {
00029 friend class ExprTable;
00030
00031 public:
00032 inline CommaExpr();
00033
00034
00035 inline CommaExpr(Expression * exp1,
00036 Expression * exp2 = 0,
00037 Expression * exp3 = 0,
00038 Expression * exp4 = 0,
00039 Expression * exp5 = 0);
00040
00041
00042 inline CommaExpr(List<Expression> *list);
00043
00044
00045
00046
00047 inline CommaExpr(const CommaExpr & e);
00048
00049
00050 virtual ~CommaExpr();
00051
00052
00053 virtual CommaExpr & operator = (const CommaExpr &);
00054
00055
00056 virtual Expression *clone() const;
00057 virtual int structures_OK() const;
00058 virtual void convert(BinRep & exprSet, Symtab & symtab);
00059 virtual void print_debug(ostream & o, Boolean debug) const;
00060
00061
00062 virtual int exchange_expr( VDL & vdl );
00063
00064 };
00065
00066
00067
00068
00069 inline
00070 CommaExpr::CommaExpr()
00071 : NonBinaryExpr(COMMA_OP, make_type(VOID_TYPE))
00072 {
00073
00074 }
00075
00076 inline
00077 CommaExpr::CommaExpr(Expression * exp1,
00078 Expression * exp2 GIV(0),
00079 Expression * exp3 GIV(0),
00080 Expression * exp4 GIV(0),
00081 Expression * exp5 GIV(0))
00082 : NonBinaryExpr(COMMA_OP, make_type(VOID_TYPE),
00083 exp1, exp2, exp3, exp4, exp5)
00084 {
00085
00086 }
00087
00088 inline
00089 CommaExpr::CommaExpr(List<Expression>*list)
00090 : NonBinaryExpr(COMMA_OP, make_type(VOID_TYPE), list)
00091 {
00092
00093 }
00094
00095 inline
00096 CommaExpr::CommaExpr(const CommaExpr & e)
00097 : NonBinaryExpr(e)
00098 {
00099
00100 }
00101
00102 #endif
|