KEY2TableParser.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /*
3  * This file is part of the libetonyek project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #ifndef KEY2TABLEPARSER_H_INCLUDED
11 #define KEY2TABLEPARSER_H_INCLUDED
12 
13 #include "KEY2ParserUtils.h"
14 #include "KEYTable.h"
15 #include "KEYXMLReader.h"
16 
17 namespace libetonyek
18 {
19 
20 class KEYCollector;
21 class KEY2Parser;
22 
24 {
25 public:
26  explicit KEY2TableParser(KEY2Parser &parser);
27 
28  void parse(const KEYXMLReader &reader);
29 
30 private:
31  void parseTabularModel(const KEYXMLReader &reader);
32  void parseGrid(const KEYXMLReader &reader);
33  void parseColumns(const KEYXMLReader &reader);
34  void parseGridColumn(const KEYXMLReader &reader);
35  void parseRows(const KEYXMLReader &reader);
36  void parseGridRow(const KEYXMLReader &reader);
37 
38  void parseDatasource(const KEYXMLReader &reader);
39  void parseD(const KEYXMLReader &reader);
40  void parseDu(const KEYXMLReader &reader);
41  void parseF(const KEYXMLReader &reader);
42  void parseG(const KEYXMLReader &reader);
43  void parseN(const KEYXMLReader &reader);
44  void parseS(const KEYXMLReader &reader);
45  void parseT(const KEYXMLReader &reader);
46  void parseCt(const KEYXMLReader &reader);
47  void parseSo(const KEYXMLReader &reader);
48 
50 
51  void emitCell(bool covered = false);
52 
54 
55 private:
59 
60  unsigned m_column;
61  unsigned m_row;
62 
63  boost::optional<unsigned> m_columnSpan;
64  boost::optional<unsigned> m_rowSpan;
65  boost::optional<unsigned> m_cellMove;
66  boost::optional<std::string> m_content;
67 };
68 
69 }
70 
71 #endif // KEY2TABLEPARSER_H_INCLUDED
72 
73 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */

Generated for libetonyek by doxygen 1.8.3.1