#include #include Reader::Reader(void) { } Reader::~Reader() { } void Reader::read(PureViewOfFile &inView) { Scan::ScanSymbols scanSymbol; String workString; double workDouble; int strLength; inView.rewind(); while(TRUE) { if(!inView.read((int&)scanSymbol))break; switch(scanSymbol) { case Scan::leftangle1 : leftangle(); break; case Scan::rightangle1 : rightangle(); break; case Scan::forwardslash1 : forwardslash(); break; case Scan::ampersand1 : ampersand(); break; case Scan::semicolon1 : semicolon(); break; case Scan::space1 : space(); break; case Scan::colon1 : colon(); break; case Scan::leftparen1 : leftparen(); break; case Scan::rightparen1 : rightparen(); break; case Scan::exclamation1 : exclamation(); break; case Scan::minus1 : minus(); break; case Scan::pound1 : pound(); break; case Scan::equal1 : equal(); break; case Scan::newline1 : newline(); break; case Scan::endtext1 : endtext(); break; case Scan::unknown1 : unknown(); break; case Scan::literal1 : inView.read(strLength); workString.reserve(strLength+1); inView.read((LPSTR)workString,strLength); literal(workString); break; case Scan::name1 : inView.read(strLength); workString.reserve(strLength+1); inView.read((LPSTR)workString,strLength); name(workString); break; case Scan::numeral1 : inView.read(workDouble); numeral(workDouble); break; case Scan::stop1 : stop(); break; } } } // virtuals void Reader::leftangle(void) { return; } void Reader::rightangle(void) { return; } void Reader::forwardslash(void) { return; } void Reader::ampersand(void) { return; } void Reader::semicolon(void) { return; } void Reader::space(void) { return; } void Reader::colon(void) { return; } void Reader::leftparen(void) { return; } void Reader::rightparen(void) { return; } void Reader::exclamation(void) { return; } void Reader::minus(void) { return; } void Reader::pound(void) { return; } void Reader::equal(void) { return; } void Reader::newline(void) { return; } void Reader::endtext(void) { return; } void Reader::unknown(void) { return; } void Reader::numeral(double /*value*/) { return; } void Reader::literal(const String &/*literal*/) { return; } void Reader::name(const String &/*name*/) { return; } void Reader::stop(void) { return; }