00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 #ifndef _BASFILE_H_
00010 #define _BASFILE_H_
00011 
00012 #include <string>
00013 #include <fstream>
00014 #include "Record.h"
00015 #include "RE.h"
00016 #include <map>
00017 
00018 
00020 class BASfile : public Record
00021 {
00022 private:
00023   RE* tierRE[6];
00024   RE* tierREsub;
00025   map<string,int> classMap;
00026 
00027   bool tier_process1(const string& tier);
00028   bool tier_process4(const string& tier);
00029   bool tier_process5(const string& tier);
00030   bool (BASfile::*tier_process[6])(const string&);
00031 
00032   void
00033   init();
00034 
00035   virtual void
00036   preprocess();
00037 
00038   virtual void
00039   read_entry();
00040 
00041 public:
00042   BASfile();
00043   BASfile(const string& filename);
00044   ~BASfile();
00045 
00047   bool read_record();
00048 
00050   string get_type();
00052   string get_time();
00054   string get_dur();
00056   string get_ref();
00058   string get_label();
00059 };
00060 
00061 #endif