// ============================================================================ // Project: Bracket-matching example of stack usage File: token.hpp // Author: Michael and Alice Fischer Copyright: January 2009 // Modified February 2016 // ============================================================================ #ifndef TOKEN_HPP #define TOKEN_HPP #include "tools.hpp" enum BracketType {BKT_SQ, BKT_RND, BKT_CURLY, BKT_ANGLE, BKT_NONE}; enum TokenSense {SENSE_LEFT, SENSE_RIGHT}; class Token { private: BracketType type; TokenSense sense; char ch; void classify(char ch); public: Token( char ch ); Token() : type(), sense(), ch() {} ~Token(){} ostream& print( ostream& out) const { return out << ch; } BracketType getType() const { return type; } TokenSense getSense() const { return sense; } }; inline ostream& operator<<( ostream& out, const Token& t ) { return t.print( out ); } #endif // TOKEN_HPP