Bitstream Interpretation Library (BIL)  0.1
XDLParser.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 #ifndef BIL_XDLPARSER_HPP
8 #define BIL_XDLPARSER_HPP
9 
10 #include <istream>
11 
12 
13 namespace bil {
14 
15  class Design;
16  class Device;
17  class StreamTokenizer;
18 
19  namespace xdlparser_detail {
20  class XDLParserImp;
21  }
22 
23 
32  class XDLParser {
33  public:
34 
35  /**********************************************************************/
36  /* CONSTRUCTION / DESTRUCTION */
37  /**********************************************************************/
38 
42  XDLParser();
43 
48 
49 
50  /**********************************************************************/
51  /* PARSING */
52  /**********************************************************************/
53 
63  void parseHeader(std::istream& inputStream, Design& design);
64 
73  void parseBody(const Device& device);
74 
75 
76  private:
77 
78  XDLParser(const XDLParser&);
79  XDLParser& operator=(const XDLParser&);
80 
81  StreamTokenizer* m_tokenizer;
82  xdlparser_detail::XDLParserImp* m_parserImp;
83 
84  };
85 
86 }
87 
88 #endif