csv.hh

00001 #include <string>
00002 #include <sstream>
00003 
00004 #ifndef FATALMIND_INCLUDE_CSVLEXER
00005 #undef yyFlexLexer
00006 #define yyFlexLexer csvFlexLexer
00007 #include <FlexLexer.h>
00008 #endif
00009 
00010 namespace fatalmind {
00011 
00012 class csv: public csvFlexLexer {
00013     public:
00014         csv(std::istream& a_in);
00015         virtual ~csv() {
00016         }
00017         void parse();
00018 
00019         virtual void endRecord(int f, int r, int l, const std::ostringstream&) {
00020         };
00021         virtual void endFile(int f) {
00022         };
00023         virtual void field(int field,int r, const std::ostringstream&) = 0;
00024         int getRecords() {
00025             return r;
00026         };
00027         int getLines() {
00028             return l;
00029         }
00030     private:
00031         int yylex ();
00032         void field_found();
00033         void endRecord_found();
00034     
00035         std::ostringstream os;
00036         int l; // line
00037         int f; // field
00038         int r; // record
00039         std::ostringstream record;
00040 };
00041 
00042 }
00043 
00044 
00045 extern "C" {
00046 inline int csvwrap() {
00047     return 1;
00048 }
00049 }
00050 
00051 

Generated on Mon Nov 9 16:21:24 2009 for ResourcePool by  doxygen 1.5.3