librcsb-core-wrapper  1.000
CifScannerBase.h
Go to the documentation of this file.
1 //$$FILE$$
2 //$$VERSION$$
3 //$$DATE$$
4 //$$LICENSE$$
5 
6 
14 /*
15  PURPOSE: DDL 2.1 compliant CIF file lexer ...
16 */
17 
18 
19 #ifndef CIFSCANNERBASE_H
20 #define CIFSCANNERBASE_H
21 
22 
23 /*
24 #if !defined(FLEX_LEXER_INCLUDED)
25 #undef yyFlexLexer
26 #define yyFlexLexer CifFlexLexer
27 #include <rcsb/FlexLexer.h>
28 #endif
29 */
30 
31 #include <string>
32 
33 
34 #include <fstream>
35 #include <stdio.h>
36 #include <string.h>
37 
38 #ifndef DEBUG
39 #define DEBUG 0
40 #endif
41 
42 
48 class CifScanner // : public CifFlexLexer
49 {
50  protected:
51 
52  std::string *_tBuf;
53  int _isText;
54  int _i, _j, _len;
55 
56  protected:
57  std::ofstream log;
58  std::string errorLog;
59  bool _verbose;
60  void alt_yymore(void);
61  void OpenLog(const std::string& logName, bool verboseLevel);
62 
63  public:
64  int NDBlineNo;
65  CifScanner(std::istream *yyin);
66  CifScanner();
67  int ProcessNone();
68  void ProcessWhiteSpace();
69  int ProcessData();
70  int ProcessLoopScanner();
71  void ProcessStop();
72  int ProcessDot();
73  int ProcessQuestion();
74  void ProcessComment();
75  int ProcessUnderscore();
76  int ProcessBadStrings();
79  int ProcessEof();
80  void Clear();
81  void Reset();
82  virtual int yylex();
83  virtual ~CifScanner() {Reset();};
84 };
85 
86 #endif /* CIFSCANNERBASE_H */