00001 #ifndef STDIOPARSERINPUT_H
00002 #define STDIOPARSERINPUT_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #pragma interface
00025
00026 #include <tagcoll/ParserBase.h>
00027 #include <stdio.h>
00028
00029 #include <string>
00030
00031 class StdioParserInput : public ParserInput
00032 {
00033 protected:
00034 std::string _file;
00035 int _line;
00036 FILE* _in;
00037 bool _close_on_exit;
00038
00039 public:
00040 StdioParserInput(FILE* in, const std::string& fname, int line = 1) throw ();
00041 StdioParserInput(const std::string& fname) throw (FileException);
00042 virtual ~StdioParserInput() throw ();
00043
00044 virtual const std::string& fileName() const throw () { return _file; }
00045 virtual int lineNumber() const throw () { return _line; }
00046
00047 virtual int nextChar() throw (ParserInputException);
00048 virtual void pushChar(int c) throw (ParserInputException);
00049 };
00050
00051
00052 #endif