00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HxRegParser_h
00012 #define HxRegParser_h
00013
00014 #include "HxString.h"
00015 #include "HxToken.h"
00016 #include "HxRegData.h"
00017
00018 class HxCharReader;
00019 class HxScanner;
00020 class HxRegKey;
00021 class HxRegistry;
00022
00023 class HxRegParser
00024 {
00025 public:
00026 static HxRegParser& instance();
00027
00028 void parse();
00029
00030 void setReader(HxCharReader&) const;
00031 void setFileName(HxString fileName);
00032
00033 void setRegistry(HxRegistry&);
00034
00035 int scan();
00036
00037 void messageHead();
00038 void message(int tokNum);
00039
00040 int lineNr() const;
00041 HxToken& getToken();
00042
00043 void insertKey(HxString name);
00044 void insertValue(HxString name, const HxRegData&);
00045
00046 private:
00047 HxRegParser();
00048 HxRegParser(const HxRegParser&);
00049 HxRegParser& operator=(const HxRegParser&);
00050
00051 HxString _fileName;
00052 HxScanner* _scanner;
00053
00054 HxToken _currentToken;
00055 int _holdToken;
00056
00057 HxRegistry* _registry;
00058 HxRegKey* _currentKey;
00059
00060 friend class HxRegParserFriend;
00061 };
00062
00063
00064
00065 extern void regParse();
00066 extern int RegLsymb;
00067 extern void RegLmessage(int tokNum);
00068
00069 #endif