1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef CMAJOR_MID_CMCPP_BACK_END_INCLUDED
 7 #define CMAJOR_MID_CMCPP_BACK_END_INCLUDED
 8 #include <cmajor/cmmid/BackEnd.hpp>
 9 
10 namespace cmajor { namespace mid {
11 
12 class CmcppBackEnd public BackEnd
13 {
14 public:
15     void Init() override;
16     void Done() override;
17     cmajor::ir::EmittingContext* CreateEmittingContext(int optimizationLevel) override;
18     void DestroyEmittingContext(cmajor::ir::EmittingContext* emittingContext) override;
19     cmajor::ir::Emitter* CreateEmitter(cmajor::ir::EmittingContext* emittingContext) override;
20     void DestroyEmitter(cmajor::ir::Emitter* emitter) override;
21     BackEndKind GetBackEndKind() override { return BackEndKind::cmcppBackEnd; }
22 };
23 
24 } } // namespace cmajor::mid
25 
26 #endif // CMAJOR_MID_CMCPP_BACK_END_INCLUDED