1 // =================================
 2 // Copyright (c) 2020 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef SNGCPP_SYMBOLS_PARAMETER_SYMBOL_INCLUDED
 7 #define SNGCPP_SYMBOLS_PARAMETER_SYMBOL_INCLUDED
 8 #include <sngcpp/symbols/Symbol.hpp>
 9 
10 namespace sngcpp { namespace symbols {
11 
12 class TypeSymbol;
13 
14 class ParameterSymbol public Symbol
15 {
16 public:
17     ParameterSymbol(const Span& span_const std::u32string& name_);
18     std::u32string KindStr() override { return U"parameter"; }
19     std::u32string IdStr() override;
20     std::unique_ptr<sngxml::dom::Element> CreateElement() override;
21     bool IsParameterSymbol() const override { return true; }
22     TypeSymbol* GetType() override { return type; }
23     void SetType(TypeSymbol* type_) { type = type_; }
24 private:
25     TypeSymbol* type;
26 };
27 
28 } } // namespace sngcpp::symbols
29 
30 #endif // SNGCPP_SYMBOLS_PARAMETER_SYMBOL_INCLUDED
31