summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/macros.cpp39
-rw-r--r--src/macros.hpp38
2 files changed, 41 insertions, 36 deletions
diff --git a/src/macros.cpp b/src/macros.cpp
index 3cdbe850..9256b7b7 100644
--- a/src/macros.cpp
+++ b/src/macros.cpp
@@ -829,9 +829,48 @@ SERIALISE_TYPE_S(MacroPatEnt, {
s.item(tok);
s.item(subpats);
});
+::std::ostream& operator<<(::std::ostream& os, const MacroPatEnt& x)
+{
+ os << "MacroPatEnt(";
+ switch(x.type)
+ {
+ case MacroPatEnt::PAT_TOKEN: os << "token "; break;
+ case MacroPatEnt::PAT_TT: os << "tt "; break;
+ case MacroPatEnt::PAT_PAT: os << "pat "; break;
+ case MacroPatEnt::PAT_IDENT: os << "ident "; break;
+ case MacroPatEnt::PAT_PATH: os << "path "; break;
+ case MacroPatEnt::PAT_TYPE: os << "type "; break;
+ case MacroPatEnt::PAT_EXPR: os << "expr "; break;
+ case MacroPatEnt::PAT_STMT: os << "stmt "; break;
+ case MacroPatEnt::PAT_BLOCK: os << "block "; break;
+ case MacroPatEnt::PAT_META: os << "meta "; break;
+ case MacroPatEnt::PAT_LOOP: os << "loop "; break;
+ }
+ if(x.name.size())
+ os << "'"<<x.name<<"'";
+ else if( x.subpats.size() )
+ os << x.tok << " [" << x.subpats << "]";
+ else
+ os << x.tok;
+ os << ")";
+ return os;
+}
SERIALISE_TYPE_S(MacroRuleEnt, {
s.item(name);
s.item(tok);
s.item(subpats);
});
+
+::std::ostream& operator<<(::std::ostream& os, const MacroRuleEnt& x)
+{
+ os << "MacroRuleEnt(";
+ if(x.name.size())
+ os << "'"<<x.name<<"'";
+ else if( x.subpats.size() )
+ os << x.tok << " [" << x.subpats << "]";
+ else
+ os << x.tok;
+ os << ")";
+ return os;
+}
diff --git a/src/macros.hpp b/src/macros.hpp
index ff6f0dbd..a001ee94 100644
--- a/src/macros.hpp
+++ b/src/macros.hpp
@@ -42,17 +42,7 @@ public:
{
}
- friend ::std::ostream& operator<<(::std::ostream& os, const MacroRuleEnt& x) {
- os << "MacroRuleEnt(";
- if(x.name.size())
- os << "'"<<x.name<<"'";
- else if( x.subpats.size() )
- os << x.tok << " [" << x.subpats << "]";
- else
- os << x.tok;
- os << ")";
- return os;
- }
+ friend ::std::ostream& operator<<(::std::ostream& os, const MacroRuleEnt& x);
SERIALISABLE_PROTOTYPES();
};
@@ -104,31 +94,7 @@ struct MacroPatEnt:
{
}
- friend ::std::ostream& operator<<(::std::ostream& os, const MacroPatEnt& x) {
- os << "MacroPatEnt(";
- switch(x.type)
- {
- case PAT_TOKEN: os << "token "; break;
- case PAT_TT: os << "tt "; break;
- case PAT_PAT: os << "pat "; break;
- case PAT_IDENT: os << "ident "; break;
- case PAT_PATH: os << "path "; break;
- case PAT_TYPE: os << "type "; break;
- case PAT_EXPR: os << "expr "; break;
- case PAT_STMT: os << "stmt "; break;
- case PAT_BLOCK: os << "block "; break;
- case PAT_META: os << "meta "; break;
- case PAT_LOOP: os << "loop "; break;
- }
- if(x.name.size())
- os << "'"<<x.name<<"'";
- else if( x.subpats.size() )
- os << x.tok << " [" << x.subpats << "]";
- else
- os << x.tok;
- os << ")";
- return os;
- }
+ friend ::std::ostream& operator<<(::std::ostream& os, const MacroPatEnt& x);
SERIALISABLE_PROTOTYPES();
};