libsesstype  2.0.0
Library for Session Types programming.
expr_visitor.h
Go to the documentation of this file.
00001 
00005 #ifndef SESSTYPE__PARAMETERISED__UTIL__EXPR_VISITOR_H__
00006 #define SESSTYPE__PARAMETERISED__UTIL__EXPR_VISITOR_H__
00007 
00008 #include "sesstype/parameterised/expr.h"
00009 #include "sesstype/parameterised/expr/var.h"
00010 #include "sesstype/parameterised/expr/val.h"
00011 #include "sesstype/parameterised/expr/add.h"
00012 #include "sesstype/parameterised/expr/sub.h"
00013 #include "sesstype/parameterised/expr/mul.h"
00014 #include "sesstype/parameterised/expr/div.h"
00015 #include "sesstype/parameterised/expr/mod.h"
00016 #include "sesstype/parameterised/expr/shl.h"
00017 #include "sesstype/parameterised/expr/shr.h"
00018 #include "sesstype/parameterised/expr/seq.h"
00019 #include "sesstype/parameterised/expr/rng.h"
00020 #include "sesstype/parameterised/expr/log.h"
00021 
00022 #ifdef __cplusplus
00023 namespace sesstype {
00024 namespace parameterised {
00025 namespace util {
00026 #endif
00027 
00028 #ifdef __cplusplus
00029 
00032 class ExprVisitor {
00033   public:
00034     virtual void visit(Expr    *expr) = 0;
00035     virtual void visit(VarExpr *expr) = 0;
00036     virtual void visit(ValExpr *expr) = 0;
00037     virtual void visit(AddExpr *expr) = 0;
00038     virtual void visit(SubExpr *expr) = 0;
00039     virtual void visit(MulExpr *expr) = 0;
00040     virtual void visit(DivExpr *expr) = 0;
00041     virtual void visit(ModExpr *expr) = 0;
00042     virtual void visit(ShlExpr *expr) = 0;
00043     virtual void visit(ShrExpr *expr) = 0;
00044     virtual void visit(SeqExpr *expr) = 0;
00045     virtual void visit(RngExpr *expr) = 0;
00046     virtual void visit(LogExpr *expr) = 0;
00047 };
00048 #endif // __cplusplus
00049 
00050 #ifdef __cplusplus
00051 } // namespace util
00052 } // namespace parameterised
00053 } // namespace sesstype
00054 #endif
00055 
00056 #endif//SESSTYPE__PARAMETERISED__UTIL__EXPR_VISITOR_H__
 All Classes Namespaces Files Functions