#include "token.h" #include "symbolTable.h" using namespace std; string TokenIDTToString(TokenIDT t) { switch (t) { case IF: return "if"; case THEN: return "then"; case ELSE: return "else"; case ID: return "id"; case NUMBER: return "number"; case RELOP: return "relop"; case NONE: return "none"; default: return "Unknown Token"; } } string RelOPIDTToString(RelOPIDT r){ switch(r) { case LT: return "Less Then"; case GT: return "Greater Then"; case LE: return "Less Then or Equal"; case GE: return "Greater Then or Equal"; case EQ: return "Equal"; case NE: return "Not Equal"; default: return "Unknown Operator"; } } ostream & operator << (ostream & s, TokenIDT t) { s << TokenIDTToString(t); return s; } ostream & operator << (ostream & s, RelOPIDT r) { s << RelOPIDTToString(r) ; return s; } ostream & operator << (ostream & s, TokenT t) { s << t.first; switch (t.first) { case RELOP: s << ": " << t.second.opid ; break; case NUMBER: case ID: s << ": " << t.second.symbolInfo->key; break; } return s; }