class LexError : public std::exception { unsigned int myLineNumber; public: LexError(const unsigned int lineNumber) : myLineNumber(lineNumber) {}; virtual const char* what() const throw() { std::string errorMessage; std::stringstream ss(std::stringstream::in | std::stringstream::out); ss << "Line " << (char *)lineNumber << ": General Error"; errorMessage = ss.str(); return errorMessage.c_str(); } ~LexError() throw() {}; };