From b880c3d28dda1997544875fc344486fe3afb07d7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vladimir=20Plazun/AI=20Tools=20Lab/Engineer/=EC=82=BC?= =?utf8?q?=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Thu, 24 May 2018 16:11:36 +0300 Subject: [PATCH] Add model IR visior (#173) Add "IR::mode::Visitor" class. Which is used as base for IR traversal Signed-off-by: Vladimir Plazun --- .../nnc_core/include/nnc_core/IR/model/visitor.h | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 contrib/nnc/libs/nnc_core/include/nnc_core/IR/model/visitor.h diff --git a/contrib/nnc/libs/nnc_core/include/nnc_core/IR/model/visitor.h b/contrib/nnc/libs/nnc_core/include/nnc_core/IR/model/visitor.h new file mode 100644 index 0000000..096478e --- /dev/null +++ b/contrib/nnc/libs/nnc_core/include/nnc_core/IR/model/visitor.h @@ -0,0 +1,27 @@ +#ifndef _NNC_CORE_IR_MODEL_VISITOR_H_ +#define _NNC_CORE_IR_MODEL_VISITOR_H_ + +namespace nncc { +namespace contrib { +namespace core { +namespace IR { +namespace model { + +class INode; + +class Visitor { + public: + // Operation-specific methods like: + // virtual void visit(INode* node, OpDescriptionSubclass& op) = 0; + + virtual void visit(INode *node) = 0; + virtual ~Visitor() = default; +}; + +} // namespace model +} // namespace IR +} // namespace core +} // namespace contrib +} // namespace nncc + +#endif //_NNC_CORE_IR_MODEL_VISITOR_H_ -- 2.7.4