summaryrefslogtreecommitdiff
path: root/src/macro_rules/macro_rules.hpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2019-05-05 20:12:58 +0800
committerJohn Hodge <tpg@ucc.asn.au>2019-05-05 20:12:58 +0800
commit7a5cd835703fdfac0634b975392f915e0230c2a7 (patch)
treececda0ef233d853e9058649b49d373a8f0a5f299 /src/macro_rules/macro_rules.hpp
parent6cc802dfbd44a6f1f76cc5ae76227f1f54cf9f75 (diff)
downloadmrust-7a5cd835703fdfac0634b975392f915e0230c2a7.tar.gz
parse/expand/resolve - `macro` macros use their own module as the resolve root
Diffstat (limited to 'src/macro_rules/macro_rules.hpp')
-rw-r--r--src/macro_rules/macro_rules.hpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/macro_rules/macro_rules.hpp b/src/macro_rules/macro_rules.hpp
index 02b302d8..9e408fd5 100644
--- a/src/macro_rules/macro_rules.hpp
+++ b/src/macro_rules/macro_rules.hpp
@@ -181,4 +181,8 @@ public:
extern ::std::unique_ptr<TokenStream> Macro_InvokeRules(const char *name, const MacroRules& rules, const Span& sp, TokenTree input, AST::Module& mod);
extern MacroRulesPtr Parse_MacroRules(TokenStream& lex);
+extern ::std::vector<MacroPatEnt> Parse_MacroRules_Pat(TokenStream& lex, enum eTokenType open, enum eTokenType close, ::std::vector< ::std::string>& names);
+extern ::std::vector<MacroExpansionEnt> Parse_MacroRules_Cont(TokenStream& lex, enum eTokenType open, enum eTokenType close, const ::std::vector< ::std::string>& var_names, ::std::map<unsigned int,bool>* var_set_ptr=nullptr);
+extern MacroRulesArm Parse_MacroRules_MakeArm(Span pat_sp, ::std::vector<MacroPatEnt> pattern, ::std::vector<MacroExpansionEnt> contents);
+
#endif // MACROS_HPP_INCLUDED