1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 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& emitterOperationFlags flags) override;
21     void Store(Emitter& emitterOperationFlags flags) override;
22     EnumTypeSymbol* GetEnumTypeSymbol() const { return enumTypeSymbol; }
23 private:
24     EnumTypeSymbol* enumTypeSymbol;
25 };
26 
27 } } // namespace cmajor::binder
28 
29 #endif // CMAJOR_BINDER_BOUND_ENUMT_INCLUDED