1 #ifndef INTERFACE_HPP
2 #define INTERFACE_HPP
3 #include <sngcm/cmparser/ParserApi.hpp>
4 #include <sngcm/ast/Interface.hpp>
5 #include <sngcm/cmparser/ParsingContext.hpp>
6 #include <sngcm/ast/Class.hpp>
7 #include <soulng/lexer/Token.hpp>
8 #include <soulng/parser/Match.hpp>
9 #include <soulng/parser/Value.hpp>
10
11
12
13 class CmajorLexer;
14
15 struct InterfaceParser
16 {
17 static soulng::parser::Match Interface(CmajorLexer& lexer, boost::uuids::uuid* moduleId, ParsingContext* ctx);
18 static soulng::parser::Match InterfaceContent(CmajorLexer& lexer, boost::uuids::uuid* moduleId, ParsingContext* ctx, sngcm::ast::InterfaceNode* intf);
19 static soulng::parser::Match InterfaceMemFun(CmajorLexer& lexer, boost::uuids::uuid* moduleId, ParsingContext* ctx);
20 static soulng::parser::Match InterfaceFunctionGroupId(CmajorLexer& lexer);
21 };
22
23 #endif // INTERFACE_HPP