198 lines
2.5 KiB
C++
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;
|
|
}
|
|
|