From 9c0dc7ebe448331ecdc330fb9a37a62012eaf5f0 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Sun, 24 Aug 2014 19:26:09 +0200
Subject: [PATCH] operator<< ostream Token

---
 alib2data/src/sax/Token.cpp | 24 ++++++++++++++++++++++++
 alib2data/src/sax/Token.h   |  7 +++----
 2 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/alib2data/src/sax/Token.cpp b/alib2data/src/sax/Token.cpp
index e551e1a6df..471d6fa892 100644
--- a/alib2data/src/sax/Token.cpp
+++ b/alib2data/src/sax/Token.cpp
@@ -31,4 +31,28 @@ bool Token::operator==(const Token& other) const {
 	return data == other.data && type == other.type;
 }
 
+std::ostream& operator<<(std::ostream& os, const Token& token) {
+	os << "(Token ";
+	switch(token.type) {
+		case Token::TokenType::START_ELEMENT:
+			os << "START_ELEMENT ";
+			break;
+		case Token::TokenType::END_ELEMENT:
+			os << "END_ELEMENT ";
+			break;
+		case Token::TokenType::START_ATTRIBUTE:
+			os << "START_ATTRIBUTE ";
+			break;
+		case Token::TokenType::END_ATTRIBUTE:
+			os << "END_ATTRIBUTE ";
+			break;
+		case Token::TokenType::CHARACTER:
+			os << "CHARACTER ";
+			break;
+	}
+	os << token.data;
+	os << ")";
+	return os;
+}
+
 } /* namespace sax */
diff --git a/alib2data/src/sax/Token.h b/alib2data/src/sax/Token.h
index 6987699f7f..2257c76489 100644
--- a/alib2data/src/sax/Token.h
+++ b/alib2data/src/sax/Token.h
@@ -9,6 +9,7 @@
 #define TOKEN_H_
 
 #include <string>
+#include <ostream>
 
 namespace sax {
 
@@ -44,10 +45,8 @@ public:
 
 	bool operator==(const Token& other) const;
 
-	friend std::ostream& operator<<(std::ostream& os, const Token& token) {
-		os << token.data; //TODO
-		return os;
-	}
+	friend std::ostream& operator<<(std::ostream& os, const Token& token);
+
 };
 
 } /* namespace sax */
-- 
GitLab