Files
Work/http/HOLD/READER.CPP
2024-08-07 09:16:27 -04:00

198 lines
2.5 KiB
C++

#include <http/reader.hpp>
#include <http/scan.hpp>
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;
}