summaryrefslogtreecommitdiff
path: root/src/macros.cpp
diff options
context:
space:
mode:
authorJohn Hodge (sonata) <tpg@mutabah.net>2015-01-18 20:19:14 +0800
committerJohn Hodge (sonata) <tpg@mutabah.net>2015-01-18 20:19:14 +0800
commit99da72da61653582d8e98075a7b3a03c36fc1976 (patch)
treec88032e1ef0eeed1a0b17727b6eab1d7cd8bf4cb /src/macros.cpp
parent26a027caaf751cde502b6044ad91b208bbfdc8ca (diff)
downloadmrust-99da72da61653582d8e98075a7b3a03c36fc1976.tar.gz
Remove evil FOREACH macros
Diffstat (limited to 'src/macros.cpp')
-rw-r--r--src/macros.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/macros.cpp b/src/macros.cpp
index 4356a399..fa9ca9ef 100644
--- a/src/macros.cpp
+++ b/src/macros.cpp
@@ -62,7 +62,7 @@ MacroExpander Macro_Invoke(const char* name, TokenTree input)
// 2. Check input token tree against possible variants
// 3. Bind names
// 4. Return expander
- FOREACH(MacroRules, rule_it, rules)
+ for(const auto& rule : rules)
{
Token tok;
// Create token stream for input tree
@@ -73,10 +73,9 @@ MacroExpander Macro_Invoke(const char* name, TokenTree input)
::std::map<const char*,TokenTree,cmp_str> bound_tts;
// Parse according to rules
bool fail = false;
- FOREACH(::std::vector<MacroPatEnt>, pat_it, rule_it->m_pattern)
+ for(const auto& pat : rule.m_pattern)
{
TokenTree val;
- const MacroPatEnt& pat = *pat_it;
try
{
switch(pat.type)
@@ -107,7 +106,7 @@ MacroExpander Macro_Invoke(const char* name, TokenTree input)
}
if( !fail && lex.getToken().type() == TOK_EOF )
{
- return MacroExpander(rule_it->m_contents, bound_tts);
+ return MacroExpander(rule.m_contents, bound_tts);
}
}
throw ParseError::Todo("Error when macro fails to match");