1 #ifndef COMMANDLINE_HPP
2 #define COMMANDLINE_HPP
3 #include <sngcm/cmparser/ParserApi.hpp>
4 #include <vector>
5 #include <string>
6 #include <soulng/lexer/Token.hpp>
7 #include <soulng/parser/Match.hpp>
8 #include <soulng/parser/Value.hpp>
9
10
11
12 class TrivialLexer;
13
14 struct CommandLineParser
15 {
16 static std::vector<std::string> Parse(TrivialLexer& lexer);
17 static soulng::parser::Match CommandLine(TrivialLexer& lexer);
18 static soulng::parser::Match Spaces(TrivialLexer& lexer);
19 static soulng::parser::Match Argument(TrivialLexer& lexer);
20 static soulng::parser::Match ArgElement(TrivialLexer& lexer);
21 static soulng::parser::Match OddBackslashesAndLiteralQuotationMark(TrivialLexer& lexer);
22 static soulng::parser::Match EvenBackslashesAndQuotationMark(TrivialLexer& lexer);
23 static soulng::parser::Match StringChar(TrivialLexer& lexer);
24 };
25
26 #endif // COMMANDLINE_HPP