00001
00002
00003
00004
00005
00006 #ifndef parser_h
00007 #define parser_h
00008
00009 #include <iostream>
00010
00011 #include <dsSmartException.h>
00012 #include <dsMmap.h>
00013 #include <dsutil.h>
00014 #include <dsTranslation.h>
00015
00016 DECLARE_EXCEPTION(tr);
00017
00018
00019 class Parser : public dsTranslation
00020 {
00021 char *_file;
00022 int _line;
00023
00024 void skip(char *src, char *maxptr, char **endptr);
00025 char *extract(char *src, char *maxptr, char **endptr);
00026
00027 void report(char *key, std::ostream& os);
00028
00029 public:
00030
00031 Parser(char *lang_file, char *src_file);
00032 ~Parser();
00033
00034 void go(std::ostream& os);
00035 };
00036
00037
00038
00039 #endif
00040