#include "TokenType.h" std::ostream& operator<<(std::ostream& os, const Tokens::Type& c) { switch(c) { case Tokens::FLOAT: os << "float"; break; case Tokens::TRUE: os << "true"; break; case Tokens::FALSE: os << "false"; break; case Tokens::TNULL: os << "null"; break; case Tokens::TEXT: os << "String"; break; case Tokens::LABEL: os << "Label"; break; case Tokens::VAR: os << "var"; break; case Tokens::GLOBAL: os << "$"; break; case Tokens::INC: os << "++"; break; case Tokens::DEC: os << "--"; break; case Tokens::INVERT: os << "!"; break; case Tokens::BIT_INVERT: os << "~"; break; case Tokens::MUL: os << "*"; break; case Tokens::DIV: os << "/"; break; case Tokens::MOD: os << "%"; break; case Tokens::ADD: os << "+"; break; case Tokens::SUB: os << "-"; break; case Tokens::LEFT_SHIFT: os << "<<"; break; case Tokens::RIGHT_SHIFT: os << ">>"; break; case Tokens::LESS: os << "<"; break; case Tokens::LESS_EQUAL: os << "<="; break; case Tokens::GREATER: os << ">"; break; case Tokens::GREATER_EQUAL: os << ">="; break; case Tokens::EQUAL: os << "=="; break; case Tokens::NOT_EQUAL: os << "!="; break; case Tokens::BIT_AND: os << "&"; break; case Tokens::BIT_XOR: os << "^"; break; case Tokens::BIT_OR: os << "|"; break; case Tokens::AND: os << "&&"; break; case Tokens::OR: os << "||"; break; case Tokens::SET: os << "="; break; case Tokens::ADD_SET: os << "+="; break; case Tokens::SUB_SET: os << "-="; break; case Tokens::MUL_SET: os << "*="; break; case Tokens::DIV_SET: os << "/="; break; case Tokens::MOD_SET: os << "%="; break; case Tokens::LEFT_SHIFT_SET: os << "<<="; break; case Tokens::RIGHT_SHIFT_SET: os << ">>="; break; case Tokens::BIT_AND_SET: os << "&="; break; case Tokens::BIT_XOR_SET: os << "^="; break; case Tokens::BIT_OR_SET: os << "|="; break; case Tokens::COMMA: os << ","; break; case Tokens::OPEN_BRACKET: os << ")"; break; case Tokens::CLOSE_BRACKET: os << ")"; break; case Tokens::OPEN_SQUARE_BRACKET: os << "["; break; case Tokens::CLOSE_SQUARE_BRACKET: os << "]"; break; case Tokens::OPEN_CURVED_BRACKET: os << "{"; break; case Tokens::CLOSE_CURVED_BRACKET: os << "}"; break; case Tokens::SEMICOLON: os <<";"; break; case Tokens::IF: os << "if"; break; case Tokens::ELSE_IF: os << "else if"; break; case Tokens::ELSE: os << "else"; break; case Tokens::FOR: os << "for"; break; case Tokens::WHILE: os << "while"; break; case Tokens::FUNCTION: os << "function"; break; case Tokens::BREAK: os << "break"; break; case Tokens::CONTINUE: os << "continue"; break; case Tokens::RETURN: os << "return"; break; case Tokens::TRY: os << "try"; break; case Tokens::CATCH: os << "catch"; break; case Tokens::END_OF_FILE: os << "end_of_file"; break; } return os; }