1 #ifndef STATEMENT_HPP
 2 #define STATEMENT_HPP
 3 #include <sngcm/cmparser/ParserApi.hpp>
 4 #include <sngcm/ast/Statement.hpp>
 5 #include <sngcm/cmparser/ParsingContext.hpp>
 6 #include <soulng/lexer/Token.hpp>
 7 #include <soulng/parser/Match.hpp>
 8 #include <soulng/parser/Value.hpp>
 9 
10 // this file has been automatically generated from 'D:/work/soulng-project/sngcm/cmparser/Statement.parser' using soulng parser generator spg version 3.0.0
11 
12 class CmajorLexer;
13 
14 struct StatementParser 
15 {
16     static soulng::parser::Match Statement(CmajorLexer& lexerParsingContext* ctx);
17     static soulng::parser::Match Label(CmajorLexer& lexer);
18     static soulng::parser::Match LabeledStatement(CmajorLexer& lexerParsingContext* ctx);
19     static soulng::parser::Match ControlStatement(CmajorLexer& lexerParsingContext* ctx);
20     static soulng::parser::Match CompoundStatement(CmajorLexer& lexerParsingContext* ctx);
21     static soulng::parser::Match ReturnStatement(CmajorLexer& lexerParsingContext* ctx);
22     static soulng::parser::Match IfStatement(CmajorLexer& lexerParsingContext* ctx);
23     static soulng::parser::Match WhileStatement(CmajorLexer& lexerParsingContext* ctx);
24     static soulng::parser::Match DoStatement(CmajorLexer& lexerParsingContext* ctx);
25     static soulng::parser::Match ForStatement(CmajorLexer& lexerParsingContext* ctx);
26     static soulng::parser::Match ForInitStatement(CmajorLexer& lexerParsingContext* ctx);
27     static soulng::parser::Match ForLoopStatementExpr(CmajorLexer& lexerParsingContext* ctx);
28     static soulng::parser::Match RangeForStatement(CmajorLexer& lexerParsingContext* ctx);
29     static soulng::parser::Match BreakStatement(CmajorLexer& lexerParsingContext* ctx);
30     static soulng::parser::Match ContinueStatement(CmajorLexer& lexerParsingContext* ctx);
31     static soulng::parser::Match GotoStatement(CmajorLexer& lexerParsingContext* ctx);
32     static soulng::parser::Match SwitchStatement(CmajorLexer& lexerParsingContext* ctx);
33     static soulng::parser::Match CaseStatement(CmajorLexer& lexerParsingContext* ctx);
34     static soulng::parser::Match DefaultStatement(CmajorLexer& lexerParsingContext* ctx);
35     static soulng::parser::Match GotoCaseStatement(CmajorLexer& lexerParsingContext* ctx);
36     static soulng::parser::Match GotoDefaultStatement(CmajorLexer& lexerParsingContext* ctx);
37     static soulng::parser::Match AssignmentStatementExpr(CmajorLexer& lexerParsingContext* ctx);
38     static soulng::parser::Match AssignmentStatement(CmajorLexer& lexerParsingContext* ctx);
39     static soulng::parser::Match ConstructionStatement(CmajorLexer& lexerParsingContext* ctx);
40     static soulng::parser::Match DeleteStatement(CmajorLexer& lexerParsingContext* ctx);
41     static soulng::parser::Match DestroyStatement(CmajorLexer& lexerParsingContext* ctx);
42     static soulng::parser::Match ExpressionStatement(CmajorLexer& lexerParsingContext* ctx);
43     static soulng::parser::Match EmptyStatement(CmajorLexer& lexerParsingContext* ctx);
44     static soulng::parser::Match ThrowStatement(CmajorLexer& lexerParsingContext* ctx);
45     static soulng::parser::Match TryStatement(CmajorLexer& lexerParsingContext* ctx);
46     static soulng::parser::Match Catch(CmajorLexer& lexerParsingContext* ctx);
47     static soulng::parser::Match AssertStatement(CmajorLexer& lexerParsingContext* ctx);
48     static soulng::parser::Match ConditionalCompilationStatement(CmajorLexer& lexerParsingContext* ctx);
49     static soulng::parser::Match ConditionalCompilationExpression(CmajorLexer& lexer);
50     static soulng::parser::Match ConditionalCompilationDisjunction(CmajorLexer& lexer);
51     static soulng::parser::Match ConditionalCompilationConjunction(CmajorLexer& lexer);
52     static soulng::parser::Match ConditionalCompilationPrefix(CmajorLexer& lexer);
53     static soulng::parser::Match ConditionalCompilationPrimary(CmajorLexer& lexer);
54 };
55 
56 #endif // STATEMENT_HPP