1 #ifndef COMPILEUNIT_HPP
 2 #define COMPILEUNIT_HPP
 3 #include <sngcm/cmparser/ParserApi.hpp>
 4 #include <sngcm/ast/CompileUnit.hpp>
 5 #include <sngcm/cmparser/ParsingContext.hpp>
 6 #include <memory>
 7 #include <soulng/lexer/Token.hpp>
 8 #include <soulng/parser/Match.hpp>
 9 #include <soulng/parser/Value.hpp>
10 
11 // this file has been automatically generated from 'D:/work/soulng-project/sngcm/cmparser/CompileUnit.parser' using soulng parser generator spg version 3.0.0
12 
13 class CmajorLexer;
14 
15 struct CompileUnitParser 
16 {
17     static std::unique_ptr<sngcm::ast::CompileUnitNode> Parse(CmajorLexer& lexerParsingContext* ctx);
18     static soulng::parser::Match CompileUnit(CmajorLexer& lexerParsingContext* ctx);
19     static soulng::parser::Match NamespaceContent(CmajorLexer& lexerParsingContext* ctxsngcm::ast::CompileUnitNode* cusngcm::ast::NamespaceNode* ns);
20     static soulng::parser::Match UsingDirectives(CmajorLexer& lexerParsingContext* ctxsngcm::ast::NamespaceNode* ns);
21     static soulng::parser::Match UsingDirective(CmajorLexer& lexerParsingContext* ctxsngcm::ast::NamespaceNode* ns);
22     static soulng::parser::Match UsingAliasDirective(CmajorLexer& lexer);
23     static soulng::parser::Match UsingNamespaceDirective(CmajorLexer& lexerParsingContext* ctx);
24     static soulng::parser::Match Definitions(CmajorLexer& lexerParsingContext* ctxsngcm::ast::CompileUnitNode* cusngcm::ast::NamespaceNode* ns);
25     static soulng::parser::Match Definition(CmajorLexer& lexerParsingContext* ctxsngcm::ast::CompileUnitNode* cusngcm::ast::NamespaceNode* ns);
26     static soulng::parser::Match NamespaceDefinition(CmajorLexer& lexerParsingContext* ctxsngcm::ast::CompileUnitNode* cusngcm::ast::NamespaceNode* ns);
27     static soulng::parser::Match TypedefDeclaration(CmajorLexer& lexerParsingContext* ctx);
28     static soulng::parser::Match ConceptDefinition(CmajorLexer& lexerParsingContext* ctx);
29     static soulng::parser::Match FunctionDefinition(CmajorLexer& lexerParsingContext* ctx);
30     static soulng::parser::Match ClassDefinition(CmajorLexer& lexerParsingContext* ctx);
31     static soulng::parser::Match InterfaceDefinition(CmajorLexer& lexerParsingContext* ctx);
32     static soulng::parser::Match EnumTypeDefinition(CmajorLexer& lexerParsingContext* ctx);
33     static soulng::parser::Match ConstantDefinition(CmajorLexer& lexerParsingContext* ctx);
34     static soulng::parser::Match DelegateDefinition(CmajorLexer& lexerParsingContext* ctx);
35     static soulng::parser::Match ClassDelegateDefinition(CmajorLexer& lexerParsingContext* ctx);
36     static soulng::parser::Match GlobalVariableDefinition(CmajorLexer& lexerParsingContext* ctxsngcm::ast::CompileUnitNode* cu);
37 };
38 
39 #endif // COMPILEUNIT_HPP