From 87f293aeef783ecafef49ed280709d125f9c1f4f Mon Sep 17 00:00:00 2001 From: John Hodge Date: Thu, 14 Jul 2016 00:08:59 +0800 Subject: Macro Rules - Rewrite, take 3 - Incomplete --- src/macro_rules/mod.cpp | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) (limited to 'src/macro_rules/mod.cpp') diff --git a/src/macro_rules/mod.cpp b/src/macro_rules/mod.cpp index 24e877dc..4e914066 100644 --- a/src/macro_rules/mod.cpp +++ b/src/macro_rules/mod.cpp @@ -181,20 +181,33 @@ SERIALISE_TYPE_S(MacroPatEnt, { return os; } -SERIALISE_TYPE_S(MacroRuleEnt, { - s.item(name); - s.item(tok); - s.item(subpats); -}); +SERIALISE_TU(MacroExpansionEnt, "MacroExpansionEnt", e, +(Token, + s.item(e); + ), +(NamedValue, + s.item(e); + ), +(Loop, + s.item(e.entries); + s.item(e.joiner); + //s.item(e.variables); + ) +); -::std::ostream& operator<<(::std::ostream& os, const MacroRuleEnt& x) +::std::ostream& operator<<(::std::ostream& os, const MacroExpansionEnt& x) { - if(x.name.size()) - os << "$"<