1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #include <soulng/lexer/TrivialLexer.hpp>
 7 
 8 TrivialLexer::TrivialLexer(const std::u32string& content_const std::string& fileName_int fileIndex_) : Lexer(content_fileName_fileIndex_)
 9 {
10 }
11 
12 TrivialLexer::TrivialLexer(const char32_t* start_const char32_t* end_const std::string& fileName_int fileIndex_) : Lexer(start_end_fileName_fileIndex_)
13 {
14 }
15 
16 int TrivialLexer::NextState(int statechar32_t c)
17 {
18     token.id = static_cast<int>(c);
19     token.match = lexeme;
20     if (c == '\n')
21     {
22         ++line;
23     }
24     return -1;
25 }
26 
27 
28 std::string GetTrivialTokenInfo(int tokenId)
29 {
30     if (tokenId == soulng::lexer::END_TOKEN)
31     {
32         return "end of file";
33     }
34     return std::to_string(tokenId);
35 }
36