CifParserBase.h

Go to the documentation of this file.
00001 //$$FILE$$
00002 //$$VERSION$$
00003 //$$DATE$$
00004 //$$LICENSE$$
00005 
00006 
00014 #ifndef CIF_PARSER_BASE_H
00015 #define CIF_PARSER_BASE_H
00016 
00017 
00018 #include <iostream>
00019 #include <stdio.h>
00020 #include <stdlib.h>
00021 #include <string.h>
00022 #include "ISTable.h"
00023 #include "CifFile.h"
00024 #include "CifScannerBase.h"
00025 #include "CifParserInt.h"
00026 #include "CifFileReadDef.h"
00027 
00028 
00029 #define  DATA_TAG "data_"
00030 
00031 
00041 class CifParser : public CifScanner
00042 {
00043     public:
00061         CifParser(CifFile* cifFileP, bool verbose = false);
00062 
00067         CifParser(CifFile* cifFileP, CifFileReadDef readDef,
00068           bool verbose = false);
00069 
00087         void Parse(const string& fileName, string& diagnostics);
00088 
00102         virtual ~CifParser();
00103 
00108         void Error(const char*);
00109 
00114         void Clear();
00115 
00120         void Reset();
00121 
00126         int ProcessLoopDeclaration(void);
00127 
00132         int ProcessItemNameList(void);
00133 
00138         int ProcessValueList(void);
00139 
00144         int ProcessItemValuePair(void);
00145 
00150         void ProcessAssignments(void);
00151 
00156         void ProcessLoop(void);
00157 
00162         void ProcessItemName(void);
00163 
00168         void ProcessItemValue(void);
00169 
00174         void ProcessLsItemValue(void);
00175 
00180         void ProcessUnknownValue(void);
00181 
00186         void ProcessMissingValue(void);
00187 
00192         void ProcessDataBlockName(void);
00193 
00194     private:
00195         string _uString;
00196         string _mString;
00197         CifFile *_fobj;
00198         CifFileReadDef _readDef;
00199         ISTable *_tbl;
00200         int _afterLoop;
00201         int _nTablesInBlock;
00202         int _curItemNo, _curValueNo, _numDataBlocks, _fieldListAlloc, _curRow;
00203         string _curCol;
00204         vector<string> _fieldList;
00205         string _pBufValue;
00206         vector<string>  * _rowBuf;
00207         string _tBufKeyword;
00208         string _curCategoryName;
00209         string _curDataBlockName;
00210         string _prevDataBlockName;
00211         void _ComplexWriteTable();
00212 
00213         string errorLog;
00214         int _err, _warn;
00215 };
00216  
00217 #endif /* CIF_PARSER_BASE_H */

Generated on Tue Apr 24 09:25:37 2007 for cifparse-obj-v7.0 by  doxygen 1.5.1