libsesstype  2.0.0
Library for Session Types programming.
shr.h
00001 #ifndef SESSTYPE__PARAMETERISED__EXPR__SHR_H__
00002 #define SESSTYPE__PARAMETERISED__EXPR__SHR_H__
00003 
00004 #include "sesstype/parameterised/expr.h"
00005 
00006 #ifdef __cplusplus
00007 namespace sesstype {
00008 namespace parameterised {
00009 #endif
00010 
00011 #ifdef __cplusplus
00012 
00015 class ShrExpr : public BinExpr {
00016   public:
00020     ShrExpr(Expr *lhs, Expr *rhs) : BinExpr(ST_EXPR_SHR, lhs, rhs) { }
00021 
00023     ShrExpr(const ShrExpr &expr)
00024         : BinExpr(ST_EXPR_SHR, expr.lhs_->clone(), expr.rhs_->clone()) { }
00025 
00027     ShrExpr *clone() const override
00028     {
00029         return new ShrExpr(*this);
00030     }
00031 
00032     bool is_commutative() const override
00033     {
00034         return false;
00035     }
00036 
00037     bool is_associative() const override
00038     {
00039         return false;
00040     }
00041 
00042     virtual void accept(util::ExprVisitor &v) override;
00043 };
00044 #endif // __cplusplus
00045 
00046 #ifdef __cplusplus
00047 } // namespace parameterised
00048 } // namespace sesstype
00049 #endif
00050 
00051 #endif//SESSTYPE__PARAMETERISED__EXPR__SHR_H__
 All Classes Namespaces Files Functions