1 #ifndef LEXERFILEPARSER_HPP
2 #define LEXERFILEPARSER_HPP
3 #include <sng2html/sng2html/LexerFile.hpp>
4 #include <soulng/lexer/Token.hpp>
5 #include <soulng/parser/Match.hpp>
6 #include <soulng/parser/Value.hpp>
7
8
9
10 class LexerFileLexer;
11
12 struct LexerFileParser
13 {
14 static std::unique_ptr<sng2html::sng2html::LexerFile> Parse(LexerFileLexer& lexer);
15 static soulng::parser::Match LexerFile(LexerFileLexer& lexer);
16 static soulng::parser::Match Declaration(LexerFileLexer& lexer);
17 static soulng::parser::Match ClassMap(LexerFileLexer& lexer);
18 static soulng::parser::Match Prefix(LexerFileLexer& lexer);
19 static soulng::parser::Match Include(LexerFileLexer& lexer);
20 static soulng::parser::Match Tokens(LexerFileLexer& lexer);
21 static soulng::parser::Match Token(LexerFileLexer& lexer);
22 static soulng::parser::Match Keywords(LexerFileLexer& lexer);
23 static soulng::parser::Match Keyword(LexerFileLexer& lexer);
24 static soulng::parser::Match Expressions(LexerFileLexer& lexer);
25 static soulng::parser::Match Expression(LexerFileLexer& lexer, int index);
26 static soulng::parser::Match ExprString(LexerFileLexer& lexer);
27 static soulng::parser::Match Lexer(LexerFileLexer& lexer);
28 static soulng::parser::Match Api(LexerFileLexer& lexer);
29 static soulng::parser::Match LexerClause(LexerFileLexer& lexer, sng2html::sng2html::Lexer* currentLexer);
30 static soulng::parser::Match Variables(LexerFileLexer& lexer, sng2html::sng2html::Lexer* currentLexer);
31 static soulng::parser::Match Variable(LexerFileLexer& lexer);
32 static soulng::parser::Match Actions(LexerFileLexer& lexer, sng2html::sng2html::Lexer* currentLexer);
33 static soulng::parser::Match Action(LexerFileLexer& lexer);
34 };
35
36 #endif // LEXERFILEPARSER_HPP