1
2
3
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 } }
29
30 #endif // SNGCPP_SYMBOLS_PARAMETER_SYMBOL_INCLUDED
31