#ifndef TOKEN_DOT_H #define TOKEN_DOT_H #include #include enum TokenIDT {IF=1, THEN, ELSE, ID, NUMBER, RELOP, NONE}; enum RelOPIDT {LT, LE, GT, GE, EQ, NE}; std::string TokenIDTToString(TokenIDT t); std::string RelOPIDTToString(RelOPIDT r); std::ostream & operator << (std::ostream & s, TokenIDT t); std::ostream & operator << (std::ostream & s, RelOPIDT r); // forward definition, circular reference needed. struct SymbolTableEntry; typedef SymbolTableEntry * SymbolTablePtr; union AttributeT{ RelOPIDT opid; SymbolTablePtr symbolInfo; }; typedef std::pair TokenT; std::ostream & operator << (std::ostream & s, TokenT t); #endif