summaryrefslogtreecommitdiff
path: root/src/parse
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse')
-rw-r--r--src/parse/token.cpp72
-rw-r--r--src/parse/token.hpp7
2 files changed, 2 insertions, 77 deletions
diff --git a/src/parse/token.cpp b/src/parse/token.cpp
index eb5830a2..115df135 100644
--- a/src/parse/token.cpp
+++ b/src/parse/token.cpp
@@ -457,78 +457,6 @@ struct EscapedString {
throw ParseError::BugCheck("Reached end of Token::to_str");
}
-void operator%(::Serialiser& s, enum eTokenType c) {
- s << Token::typestr(c);
-}
-void operator%(::Deserialiser& s, enum eTokenType& c) {
- ::std::string n;
- s.item(n);
- c = Token::typefromstr(n);
-}
-void operator%(::Serialiser& s, enum eCoreType t) {
- s << coretype_name(t);
-}
-void operator%(::Deserialiser& s, enum eCoreType& t) {
- ::std::string n;
- s.item(n);
- t = coretype_fromstring(n);
- ASSERT_BUG(Span(), t != CORETYPE_INVAL, "Invalid coretype '" << n << "'");
-}
-SERIALISE_TYPE(Token::, "Token", {
- s % m_type;
- s << Token::Data::tag_to_str(m_data.tag());
- TU_MATCH(Token::Data, (m_data), (e),
- (None, ),
- (String,
- s << e;
- ),
- (Integer,
- s % e.m_datatype;
- s.item( e.m_intval );
- ),
- (Float,
- s % e.m_datatype;
- s.item( e.m_floatval );
- ),
- (Fragment,
- assert(!"Serialising interpolated macro fragment");
- )
- )
-},{
- s % m_type;
- Token::Data::Tag tag;
- {
- ::std::string tag_str;
- s.item( tag_str );
- tag = Token::Data::tag_from_str(tag_str);
- }
- switch(tag)
- {
- case Token::Data::TAGDEAD: break;
- case Token::Data::TAG_None: break;
- case Token::Data::TAG_String: {
- ::std::string str;
- s.item( str );
- m_data = Token::Data::make_String(str);
- break; }
- case Token::Data::TAG_Integer: {
- enum eCoreType dt;
- uint64_t v;
- s % dt;
- s.item( v );
- m_data = Token::Data::make_Integer({dt, v});
- break; }
- case Token::Data::TAG_Float: {
- enum eCoreType dt;
- double v;
- s % dt;
- s.item( v );
- m_data = Token::Data::make_Float({dt, v});
- break; }
- case Token::Data::TAG_Fragment:
- assert(!"Serialising interpolated macro fragment");
- }
-});
::std::ostream& operator<<(::std::ostream& os, const Token& tok)
{
diff --git a/src/parse/token.hpp b/src/parse/token.hpp
index 2da64bca..3605679b 100644
--- a/src/parse/token.hpp
+++ b/src/parse/token.hpp
@@ -9,9 +9,9 @@
#include <rc_string.hpp>
#include <tagged_union.hpp>
-#include <serialise.hpp>
#include "../coretypes.hpp"
#include <ident.hpp>
+#include <memory>
enum eTokenType
{
@@ -56,8 +56,7 @@ namespace AST {
class InterpolatedFragment;
-class Token:
- public Serialisable
+class Token
{
friend class HirSerialiser;
friend class HirDeserialiser;
@@ -150,8 +149,6 @@ public:
static const char* typestr(enum eTokenType type);
static eTokenType typefromstr(const ::std::string& s);
- SERIALISABLE_PROTOTYPES();
-
friend ::std::ostream& operator<<(::std::ostream& os, const Token& tok);
};
extern ::std::ostream& operator<<(::std::ostream& os, const Token& tok);