17#ifndef __LUCI_IR_CIRCLENODEIMPL_H__
18#define __LUCI_IR_CIRCLENODEIMPL_H__
33#define CIRCLE_NODE(OPCODE, CLASS) \
35 case CircleOpcode::OPCODE: \
36 return v->visit(dynamic_cast<const CLASS *>(this));
37#define CIRCLE_VNODE CIRCLE_NODE
39#include "CircleNodes.lst"
47 INTERNAL_EXN(
"CircleNode::accept(CircleNodeVisitorBase) not handled");
54#define CIRCLE_NODE(OPCODE, CLASS) \
56 case CircleOpcode::OPCODE: \
57 return v->visit(dynamic_cast<CLASS *>(this));
58#define CIRCLE_VNODE CIRCLE_NODE
60#include "CircleNodes.lst"
68 INTERNAL_EXN(
"CircleNode::accept(CircleNodeMutableVisitorBase) not handled");
#define INTERNAL_EXN(msg)
@ brief throw internal exception with message
virtual CircleOpcode opcode(void) const =0
T accept(CircleNodeVisitorBase< T > *) const