diff options
author | John Hodge <tpg@ucc.asn.au> | 2019-05-05 20:12:58 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2019-05-05 20:12:58 +0800 |
commit | 7a5cd835703fdfac0634b975392f915e0230c2a7 (patch) | |
tree | cecda0ef233d853e9058649b49d373a8f0a5f299 /src/macro_rules/macro_rules.hpp | |
parent | 6cc802dfbd44a6f1f76cc5ae76227f1f54cf9f75 (diff) | |
download | mrust-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.hpp | 4 |
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 |