1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef SNGCM_AST_SOURCE_TOKEN_INCLUDED
 7 #define SNGCM_AST_SOURCE_TOKEN_INCLUDED
 8 #include <sngcm/ast/AstApi.hpp>
 9 #include <string>
10 
11 namespace sngcm { namespace ast {
12 
13 class SourceTokenFormatter 
14 {
15 public:
16     virtual ~SourceTokenFormatter();
17     virtual void BeginFormat() {}
18     virtual void EndFormat() {}
19     virtual void Keyword(const std::u32string& keyword) {}
20     virtual void Identifier(const std::u32string& identifier) {}
21     virtual void Number(const std::u32string& number) {}
22     virtual void Char(const std::u32string& char_) {}
23     virtual void String(const std::u32string& string) {}
24     virtual void Spaces(const std::u32string& spaces) {}
25     virtual void Comment(const std::u32string& comment) {}
26     virtual void NewLine(const std::u32string& newline) {}
27     virtual void Other(const std::u32string& other) {}
28 };
29 
30 } } // namespace sngcm::ast
31 
32 #endif // SNGCM_AST_SOURCE_TOKEN_INCLUDED