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

HxSadParser.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 HxSadParser_h
00012 #define HxSadParser_h
00013 
00014 #include "HxString.h"
00015 #include "HxToken.h"
00016 
00017 #include "HxSyntaxLeafNode.h"
00018 #include "HxSyntaxBranchNode.h"
00019 
00020 class HxCharReader;
00021 class HxScanner;
00022 
00023 class HxSadParser
00024 {
00025 public:
00026     static HxSadParser& instance();
00027 
00028     void                parse();
00029 
00030     void                setReader(HxCharReader&) const;
00031     void                setFileName(HxString fileName);
00032     HxString            getFileName() const;
00033 
00034     int                 scan();
00035     HxToken&            peek(int n = 0);
00036 
00037     HxBool              isConstructor();
00038 
00039     void                messageHead();
00040     void                message(int tokNum);
00041 
00042     int                 lineNr() const;
00043     HxToken&            getToken();
00044 
00045 private:
00046                         HxSadParser();
00047                         HxSadParser(const HxSadParser&);
00048     HxSadParser&        operator=(const HxSadParser&);
00049 
00050     friend class HxSadParserFriend;
00051 
00052     HxString            _fileName;
00053     HxScanner*          _scanner;
00054 
00055     HxToken             _currentToken;
00056     int                 _holdToken;
00057 };
00058 
00059 inline HxString
00060 HxSadParser::getFileName() const { return _fileName; }
00061 
00062 // Context needed for parser
00063 
00064 extern void     sadParse();
00065 extern int      SadLsymb;
00066 extern void     SadLmessage(int tokNum);
00067 
00068 #endif

Generated on Mon Jan 27 15:48:48 2003 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001