1 #ifndef EXPRESSION_HPP
 2 #define EXPRESSION_HPP
 3 #include <sngcm/cmparser/ParserApi.hpp>
 4 #include <sngcm/ast/Expression.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/Expression.parser' using soulng parser generator spg version 3.0.0
11 
12 class CmajorLexer;
13 
14 struct ExpressionParser 
15 {
16     static soulng::parser::Match Expression(CmajorLexer& lexerParsingContext* ctx);
17     static soulng::parser::Match Equivalence(CmajorLexer& lexerParsingContext* ctx);
18     static soulng::parser::Match Implication(CmajorLexer& lexerParsingContext* ctx);
19     static soulng::parser::Match Disjunction(CmajorLexer& lexerParsingContext* ctx);
20     static soulng::parser::Match Conjunction(CmajorLexer& lexerParsingContext* ctx);
21     static soulng::parser::Match BitOr(CmajorLexer& lexerParsingContext* ctx);
22     static soulng::parser::Match BitXor(CmajorLexer& lexerParsingContext* ctx);
23     static soulng::parser::Match BitAnd(CmajorLexer& lexerParsingContext* ctx);
24     static soulng::parser::Match Equality(CmajorLexer& lexerParsingContext* ctx);
25     static soulng::parser::Match Relational(CmajorLexer& lexerParsingContext* ctx);
26     static soulng::parser::Match Shift(CmajorLexer& lexerParsingContext* ctx);
27     static soulng::parser::Match Additive(CmajorLexer& lexerParsingContext* ctx);
28     static soulng::parser::Match Multiplicative(CmajorLexer& lexerParsingContext* ctx);
29     static soulng::parser::Match Prefix(CmajorLexer& lexerParsingContext* ctx);
30     static soulng::parser::Match Postfix(CmajorLexer& lexerParsingContext* ctx);
31     static soulng::parser::Match Primary(CmajorLexer& lexerParsingContext* ctx);
32     static soulng::parser::Match SizeOfExpr(CmajorLexer& lexerParsingContext* ctx);
33     static soulng::parser::Match TypeNameExpr(CmajorLexer& lexerParsingContext* ctx);
34     static soulng::parser::Match TypeIdExpr(CmajorLexer& lexerParsingContext* ctx);
35     static soulng::parser::Match CastExpr(CmajorLexer& lexerParsingContext* ctx);
36     static soulng::parser::Match ConstructExpr(CmajorLexer& lexerParsingContext* ctx);
37     static soulng::parser::Match NewExpr(CmajorLexer& lexerParsingContext* ctx);
38     static soulng::parser::Match ArgumentList(CmajorLexer& lexerParsingContext* ctxsngcm::ast::Node* node);
39     static soulng::parser::Match ExpressionList(CmajorLexer& lexerParsingContext* ctxsngcm::ast::Node* node);
40     static soulng::parser::Match InvokeExpr(CmajorLexer& lexerParsingContext* ctx);
41 };
42 
43 #endif // EXPRESSION_HPP