1 #ifndef BUILDLANGCLIENTPARSER_HPP
2 #define BUILDLANGCLIENTPARSER_HPP
3 #include <cmajor/build/BuildApi.hpp>
4 #include <cmajor/build/BuildOption.hpp>
5 #include <cmajor/build/ClientCommand.hpp>
6 #include <memory>
7 #include <soulng/lexer/Token.hpp>
8 #include <soulng/parser/Match.hpp>
9 #include <soulng/parser/Value.hpp>
10
11
12
13 class BuildLangLexer;
14
15 struct BuildLangClientParser
16 {
17 static std::unique_ptr<cmajor::build::ClientCommand> Parse(BuildLangLexer& lexer, cmajor::build::BuildOptionSetter* optionSetter);
18 static soulng::parser::Match ClientSentence(BuildLangLexer& lexer, cmajor::build::BuildOptionSetter* optionSetter);
19 static soulng::parser::Match ClientCommandSentence(BuildLangLexer& lexer);
20 static soulng::parser::Match PushProjectSentence(BuildLangLexer& lexer);
21 static soulng::parser::Match RemoveProjectSentence(BuildLangLexer& lexer);
22 static soulng::parser::Match AddServerSentence(BuildLangLexer& lexer);
23 static soulng::parser::Match RemoveServerSentence(BuildLangLexer& lexer);
24 static soulng::parser::Match BuildProjectSentence(BuildLangLexer& lexer);
25 static soulng::parser::Match DebugProjectSentence(BuildLangLexer& lexer);
26 static soulng::parser::Match InstallProjectSentence(BuildLangLexer& lexer);
27 static soulng::parser::Match ShowConfigurationSentence(BuildLangLexer& lexer);
28 static soulng::parser::Match ProjectFilePath(BuildLangLexer& lexer);
29 static soulng::parser::Match DirectoryPath(BuildLangLexer& lexer);
30 static soulng::parser::Match ServerName(BuildLangLexer& lexer);
31 static soulng::parser::Match Host(BuildLangLexer& lexer);
32 static soulng::parser::Match HostName(BuildLangLexer& lexer);
33 static soulng::parser::Match IpAddress(BuildLangLexer& lexer);
34 static soulng::parser::Match Port(BuildLangLexer& lexer);
35 static soulng::parser::Match ToolChain(BuildLangLexer& lexer);
36 };
37
38 #endif // BUILDLANGCLIENTPARSER_HPP