librcsb-core-wrapper 1.005
CifParserBase.h
Go to the documentation of this file.
1//$$FILE$$
2//$$VERSION$$
3//$$DATE$$
4//$$LICENSE$$
5
6
14#ifndef CIF_PARSER_BASE_H
15#define CIF_PARSER_BASE_H
16
17
18#include <iostream>
19#include <stdio.h>
20#include <stdlib.h>
21#include <string.h>
22#include <rcsb/ISTable.h>
23#include <rcsb/CifFile.h>
24#include <rcsb/CifScannerBase.h>
25#include <rcsb/CifParserInt.h>
26#include <rcsb/CifFileReadDef.h>
27
28
29#define DATA_TAG "data_"
30
31
41class CifParser : public CifScanner
42{
43 public:
61 CifParser(CifFile* cifFileP, bool verbose = false);
62
67 CifParser(CifFile* cifFileP, CifFileReadDef readDef,
68 bool verbose = false);
69
91 void Parse(const string& fileName, string& diagnostics,
92 const std::string& parseLogFileName = std::string());
93
111 void ParseString(const string& cifString, string& diagnostics);
112
126 virtual ~CifParser();
127
132 void Error(const char*);
133
138 void Clear();
139
144 void Reset();
145
151
157
163
169
175
180 void ProcessLoop(void);
181
186 void ProcessItemName(void);
187
193
199
205
211
217
218 private:
219 CifFile *_fobj;
220 CifFileReadDef _readDef;
221 ISTable *_tbl;
222 int _afterLoop;
223 int _nTablesInBlock;
224 int _curItemNo, _curValueNo, _numDataBlocks, _fieldListAlloc, _curRow;
225 vector<string> _fieldList;
226 string _pBufValue;
227 string _tBufKeyword;
228 string _curCategoryName;
229 string _curDataBlockName;
230 string _prevDataBlockName;
231 void _ComplexWriteTable();
232
233 int _err, _warn;
234};
235
236#endif /* CIF_PARSER_BASE_H */
Header file for CifFile class.
Header file for CifFileReadDef class.
Header file for bison interfacing to CifParser class.
Header file for CifScanner class.
Header file for ISTable class.
Public class that represents a CIF file, composed of blocks with tables.
Definition CifFile.h:48
Private class that represents a CIF parser controller.
Definition CifFileReadDef.h:39
Public class that respresents a CIF parser.
Definition CifParserBase.h:42
int ProcessValueList(void)
int ProcessLoopDeclaration(void)
CifParser(CifFile *cifFileP, bool verbose=false)
void Parse(const string &fileName, string &diagnostics, const std::string &parseLogFileName=std::string())
int ProcessItemValuePair(void)
void Clear()
void ProcessAssignments(void)
CifParser(CifFile *cifFileP, CifFileReadDef readDef, bool verbose=false)
void Reset()
void ProcessItemValue(void)
void ProcessLsItemValue(void)
void ProcessLoop(void)
virtual ~CifParser()
int ProcessItemNameList(void)
void ProcessItemName(void)
void ProcessMissingValue(void)
void Error(const char *)
void ProcessUnknownValue(void)
void ParseString(const string &cifString, string &diagnostics)
void ProcessDataBlockName(void)
Private class that represents a CIF scanner.
Definition CifScannerBase.h:49
Public class that respresents a two-dimensional table of strings.
Definition ISTable.h:54