libsesstype  2.0.0
Library for Session Types programming.
shl.h
00001 #ifndef SESSTYPE__PARAMETERISED__EXPR__SHL_H__
00002 #define SESSTYPE__PARAMETERISED__EXPR__SHL_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 ShlExpr : public BinExpr {
00016   public:
00020     ShlExpr(Expr *lhs, Expr *rhs) : BinExpr(ST_EXPR_SHL, lhs, rhs) { }
00021 
00023     ShlExpr(const ShlExpr &expr)
00024         : BinExpr(ST_EXPR_SHL, expr.lhs_->clone(), expr.rhs_->clone()) { }
00025 
00026 
00028     ShlExpr *clone() const override
00029     {
00030         return new ShlExpr(*this);
00031     }
00032 
00033     bool is_commutative() const override
00034     {
00035         return false;
00036     }
00037 
00038     bool is_associative() const override
00039     {
00040         return false;
00041     }
00042 
00043     virtual void accept(util::ExprVisitor &v) override;
00044 };
00045 #endif // __cplusplus
00046 
00047 #ifdef __cplusplus
00048 } // namespace parameterised
00049 } // namespace sesstype
00050 #endif
00051 
00052 #endif//SESSTYPE__PARAMETERISED__EXPR__SHL_H__
 All Classes Namespaces Files Functions