1 #ifndef PATCHFILEPARSER_HPP
2 #define PATCHFILEPARSER_HPP
3 #include <cpp2cm/cpp2cm/Patch.hpp>
4 #include <soulng/lexer/Token.hpp>
5 #include <soulng/parser/Match.hpp>
6 #include <soulng/parser/Value.hpp>
7
8
9
10 class TrivialLexer;
11
12 struct PatchFileParser
13 {
14 static std::unique_ptr<cpp2cm::PatchFile> Parse(TrivialLexer& lexer);
15 static soulng::parser::Match PatchFile(TrivialLexer& lexer);
16 static soulng::parser::Match PatchLine(TrivialLexer& lexer);
17 static soulng::parser::Match FileName(TrivialLexer& lexer);
18 static soulng::parser::Match LineNumber(TrivialLexer& lexer);
19 static soulng::parser::Match Patch(TrivialLexer& lexer);
20 static soulng::parser::Match Insert(TrivialLexer& lexer);
21 static soulng::parser::Match Delete(TrivialLexer& lexer);
22 static soulng::parser::Match Modify(TrivialLexer& lexer);
23 static soulng::parser::Match Text(TrivialLexer& lexer);
24 static soulng::parser::Match Newline(TrivialLexer& lexer);
25 };
26
27 #endif // PATCHFILEPARSER_HPP