1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef CMAJOR_SYMBOLS_TRAP_INCLUDED
 7 #define CMAJOR_SYMBOLS_TRAP_INCLUDED
 8 #include <cmajor/symbols/FunctionSymbol.hpp>
 9 
10 namespace cmajor { namespace symbols {
11 
12 class SymbolTable;
13 
14 class TrapFunction public FunctionSymbol
15 {
16 public:
17     TrapFunction(SymbolTable& symbolTable);
18     TrapFunction(const Span& span_const boost::uuids::uuid& sourceModuleIdconst std::u32string& name_);
19     void GenerateCall(Emitter& emitterstd::std::vector<GenObject*>&genObjectsOperationFlagsflagsconstSpan&spanconstboost::uuids::uuid& moduleId) override;
20 };
21 
22 void InitTrap(SymbolTable& symbolTable);
23 
24 } } // namespace cmajor::symbols
25 
26 #endif // CMAJOR_SYMBOLS_TRAP_INCLUDED