Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

HxRegParser.h

00001 /*
00002  *  Copyright (c) 1998, University of Amsterdam, The Netherlands.
00003  *  All rights reserved.
00004  *
00005  *
00006  *  Author(s):
00007  *  Dennis Koelma (koelma@wins.uva.nl)
00008  *  Edo Poll (poll@wins.uva.nl)
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 // Context needed for parser
00064 
00065 extern void     regParse();
00066 extern int      RegLsymb;
00067 extern void     RegLmessage(int tokNum);
00068 
00069 #endif

Generated on Tue Feb 3 14:18:41 2004 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001