void Quake3MapReader::readFromStream(std::istream& stream) { // Call the virtual method to initialise the primitve parser map (if not done yet) initPrimitiveParsers(); // The tokeniser used to split the stream into pieces parser::BasicDefTokeniser<std::istream> tok(stream); // Read each entity in the map, until EOF is reached while (tok.hasMoreTokens()) { // Create an entity node by parsing from the stream. If there is an // exception, display it and return try { parseEntity(tok); } catch (FailureException& e) { std::string text = (boost::format(_("Failed parsing entity %d:\n%s")) % _entityCount % e.what()).str(); // Re-throw with more text throw FailureException(text); } _entityCount++; } // EOF reached, success }
ANFparser::ANFparser(const char parseMode): parseMode(parseMode){ initPrimitiveParsers(); }