summaryrefslogtreecommitdiff
path: root/src/macro_rules/mod.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/macro_rules/mod.cpp')
-rw-r--r--src/macro_rules/mod.cpp78
1 files changed, 11 insertions, 67 deletions
diff --git a/src/macro_rules/mod.cpp b/src/macro_rules/mod.cpp
index 0f16a377..f9754286 100644
--- a/src/macro_rules/mod.cpp
+++ b/src/macro_rules/mod.cpp
@@ -1,4 +1,9 @@
/*
+ * MRustC - Mutabah's Rust Compiler
+ * - By John Hodge (Mutabah/thePowersGang)
+ *
+ * macro_rules/mod.cpp
+ * - Top-level handling for macro_rules macros
*/
#include <common.hpp>
#include "macro_rules.hpp"
@@ -152,64 +157,21 @@ bool is_token_item(eTokenType tt) {
}
}
+MacroRulesPtr::MacroRulesPtr(MacroRules* p):
+ m_ptr(p)
+{
+ //::std::cout << "MRP new " << m_ptr << ::std::endl;
+}
MacroRulesPtr::~MacroRulesPtr()
{
if(m_ptr)
{
+ //::std::cout << "MRP delete " << m_ptr << ::std::endl;
delete m_ptr;
m_ptr = nullptr;
}
}
-SERIALISE_TYPE_S(MacroRulesArm, {
-})
-
-void operator%(Serialiser& s, MacroPatEnt::Type c) {
- switch(c) {
- #define _(v) case MacroPatEnt::v: s << #v; return
- _(PAT_TOKEN);
- _(PAT_TT);
- _(PAT_PAT);
- _(PAT_TYPE);
- _(PAT_EXPR);
- _(PAT_LOOP);
- _(PAT_STMT);
- _(PAT_PATH);
- _(PAT_BLOCK);
- _(PAT_META);
- _(PAT_ITEM);
- _(PAT_IDENT);
- #undef _
- }
-}
-void operator%(::Deserialiser& s, MacroPatEnt::Type& c) {
- ::std::string n;
- s.item(n);
- #define _(v) else if(n == #v) c = MacroPatEnt::v
- if(0) ;
- _(PAT_TOKEN);
- _(PAT_TT);
- _(PAT_PAT);
- _(PAT_TYPE);
- _(PAT_EXPR);
- _(PAT_LOOP);
- //_(PAT_OPTLOOP);
- _(PAT_STMT);
- _(PAT_PATH);
- _(PAT_BLOCK);
- _(PAT_META);
- _(PAT_IDENT);
- _(PAT_ITEM);
- else
- throw ::std::runtime_error( FMT("No conversion for '" << n << "'") );
- #undef _
-}
-SERIALISE_TYPE_S(MacroPatEnt, {
- s % type;
- s.item(name);
- s.item(tok);
- s.item(subpats);
-});
::std::ostream& operator<<(::std::ostream& os, const MacroPatEnt& x)
{
switch(x.type)
@@ -257,20 +219,6 @@ SERIALISE_TYPE_S(MacroPatEnt, {
return os;
}
-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 MacroExpansionEnt& x)
{
TU_MATCH( MacroExpansionEnt, (x), (e),
@@ -295,8 +243,4 @@ SERIALISE_TU(MacroExpansionEnt, "MacroExpansionEnt", e,
MacroRules::~MacroRules()
{
}
-SERIALISE_TYPE_S(MacroRules, {
- s.item( m_exported );
- s.item( m_rules );
-});