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         CifFile *_fobj;
00196         CifFileReadDef _readDef;
00197         ISTable *_tbl;
00198         int _afterLoop;
00199         int _nTablesInBlock;
00200         int _curItemNo, _curValueNo, _numDataBlocks, _fieldListAlloc, _curRow;
00201         vector<string> _fieldList;
00202         string _pBufValue;
00203         string _tBufKeyword;
00204         string _curCategoryName;
00205         string _curDataBlockName;
00206         string _prevDataBlockName;
00207         void _ComplexWriteTable();
00208 
00209         string errorLog;
00210         int _err, _warn;
00211 };
00212  
00213 #endif /* CIF_PARSER_BASE_H */

Generated on Wed Feb 6 07:44:04 2008 for cifparse-obj-v7.0 by  doxygen 1.5.1