#ifndef LATAN_SAMPLE_HPP_ #define LATAN_SAMPLE_HPP_ #include #include #include LATAN_BEGIN_CPPDECL template class ParserState { public: // constructor explicit ParserState(std::istream *streamPt, std::string *namePt, DataObj *dataPt); // destructor virtual ~ParserState(void); private: // scanner allocation/deallocation virtual void initScanner(void) = 0; virtual void destroyScanner(void) = 0; public: DataObj* data; void* scanner; std::istream* stream; std::string* streamName; }; template ParserState::ParserState(std::istream *streamPt, std::string *namePt, DataObj *dataPt) : data(dataPt) , scanner(NULL) , stream(streamPt) , streamName(namePt) {} template ParserState::~ParserState(void) {} LATAN_END_CPPDECL #endif