![]() |
libsesstype
2.0.0
Library for Session Types programming.
|
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__