1
2
3
4
5
6 #ifndef CMAJOR_BINDER_BOUND_ENUMT_INCLUDED
7 #define CMAJOR_BINDER_BOUND_ENUMT_INCLUDED
8 #include <cmajor/binder/BoundNode.hpp>
9 #include <cmajor/symbols/EnumSymbol.hpp>
10
11 namespace cmajor { namespace binder {
12
13 using namespace cmajor::symbols;
14
15 class BoundEnumTypeDefinition : public BoundNode
16 {
17 public:
18 BoundEnumTypeDefinition(EnumTypeSymbol* enumTypeSymbol_);
19 void Accept(BoundNodeVisitor& visitor) override;
20 void Load(Emitter& emitter, OperationFlags flags) override;
21 void Store(Emitter& emitter, OperationFlags flags) override;
22 EnumTypeSymbol* GetEnumTypeSymbol() const { return enumTypeSymbol; }
23 private:
24 EnumTypeSymbol* enumTypeSymbol;
25 };
26
27 } }
28
29 #endif // CMAJOR_BINDER_BOUND_ENUMT_INCLUDED