FictionBook2BlockContext.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 libe-book 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 FICTIONBOOK2BLOCKCONTEXT_H_INCLUDED
11 #define FICTIONBOOK2BLOCKCONTEXT_H_INCLUDED
12 
13 #include <string>
14 
15 #include <boost/optional.hpp>
16 
18 
19 namespace libebook
20 {
21 
23 {
24 public:
26 
27 private:
29  void startOfElement() override;
30  void endOfElement() override;
31  void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
32 
33 private:
34  boost::optional<std::string> m_lang;
35 };
36 
38 {
39 public:
41 
42 private:
44  void endOfElement() override;
45  void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
46 };
47 
49 {
50 public:
52 
53 private:
54  void endOfElement() override;
55  void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
56 };
57 
59 {
60 public:
62 
63 private:
65  void endOfElement() override;
66  void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
67 };
68 
70 {
71 public:
73 
74 private:
76  void endOfElement() override;
77  void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
78 
79 private:
80  std::string m_href;
81  std::string m_altText;
82  bool m_valid;
83 };
84 
86 {
87 public:
89 
90 private:
92  void startOfElement() override;
93  void endOfElement() override;
94  void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
95 };
96 
98 {
99 public:
100  FictionBook2SectionContext(FictionBook2ParserContext *parentContext, const boost::optional<std::string> &lang);
101  FictionBook2SectionContext(FictionBook2ParserContext *parentContext, uint8_t level, const boost::optional<std::string> &lang);
102 
103 private:
105  void endOfElement() override;
106  void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
107 
109 
110 private:
111  // The level of the section. A section directly in body is at level 1.
112  boost::optional<uint8_t> m_level;
113  boost::optional<std::string> m_lang;
114 };
115 
117 {
118 public:
120 
121 private:
123  void endOfElement() override;
124  void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
125 };
126 
128 {
129 public:
131 
132 private:
134  void endOfElement() override;
135  void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
136 };
137 
138 }
139 
140 #endif // FICTIONBOOK2BLOCKCONTEXT_H_INCLUDED
141 
142 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
FictionBook2XMLParserContext * element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition: FictionBook2BlockContext.cpp:171
Definition: FictionBook2BlockContext.h:127
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2BlockContext.cpp:97
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2BlockContext.cpp:114
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2BlockContext.cpp:287
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2BlockContext.cpp:364
FictionBook2EpigraphContext(FictionBook2ParserContext *parentContext, const FictionBook2BlockFormat &format)
Definition: FictionBook2BlockContext.cpp:124
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2BlockContext.cpp:186
FictionBook2PoemContext(FictionBook2ParserContext *parentContext, const FictionBook2BlockFormat &format)
Definition: FictionBook2BlockContext.cpp:251
FictionBook2BodyContext(FictionBook2ParserContext *parentContext, FictionBook2Collector *collector)
Definition: FictionBook2BlockContext.cpp:20
boost::optional< uint8_t > m_level
Definition: FictionBook2BlockContext.h:112
FictionBook2EmptyLineContext(FictionBook2ParserContext *parentContext)
Definition: FictionBook2BlockContext.cpp:109
FictionBook2ImageContext(FictionBook2ParserContext *parentContext)
Definition: FictionBook2BlockContext.cpp:163
FictionBook2XMLParserContext * element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition: FictionBook2BlockContext.cpp:313
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2BlockContext.cpp:52
Definition: EBOOKHTMLToken.h:205
Definition: FictionBook2XMLParserContext.h:18
Definition: FictionBook2BlockContext.h:85
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2BlockContext.cpp:408
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2BlockContext.cpp:157
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2BlockContext.cpp:153
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2BlockContext.cpp:120
FictionBook2XMLParserContext * element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition: FictionBook2BlockContext.cpp:129
Definition: FictionBook2BlockContext.h:69
Definition: FictionBook2ParserContext.h:151
Definition: FictionBook2Style.h:35
FictionBook2CiteContext(FictionBook2ParserContext *parentContext, const FictionBook2BlockFormat &format)
Definition: FictionBook2BlockContext.cpp:68
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2BlockContext.cpp:449
Definition: FictionBook2Token.h:133
Definition: FictionBook2BlockContext.h:58
FictionBook2StanzaContext(FictionBook2ParserContext *parentContext, const FictionBook2BlockFormat &format)
Definition: FictionBook2BlockContext.cpp:382
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2BlockContext.cpp:414
std::string m_altText
Definition: FictionBook2BlockContext.h:81
const char * name
Definition: EBOOKHTMLToken.cpp:44
boost::optional< std::string > m_lang
Definition: FictionBook2BlockContext.h:34
FictionBook2BlockFormat makeBlockFormat() const
Definition: FictionBook2BlockContext.cpp:372
std::string m_href
Definition: FictionBook2BlockContext.h:80
FictionBook2TitleContext(FictionBook2ParserContext *const parentContext, const FictionBook2BlockFormat &format)
Definition: FictionBook2BlockContext.cpp:420
Definition: FictionBook2BlockContext.h:97
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2BlockContext.cpp:359
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2BlockContext.cpp:216
Base class for non-leaf element contexts.
Definition: FictionBook2ParserContext.h:61
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2BlockContext.cpp:57
FictionBook2XMLParserContext * element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition: FictionBook2BlockContext.cpp:426
bool m_valid
Definition: FictionBook2BlockContext.h:82
Base class for all contexts.
Definition: FictionBook2ParserContext.h:23
Definition: EBOOKOPFToken.h:54
Definition: FictionBook2BlockContext.h:116
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2BlockContext.cpp:444
Definition: FictionBook2Collector.h:22
Definition: BBeBCollector.cpp:18
qi::rule< Iterator, AttrValue_t, qi::space_type > value
Definition: TealDocParser.cpp:231
Definition: FictionBook2BlockContext.h:37
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2BlockContext.cpp:62
FictionBook2XMLParserContext * element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition: FictionBook2BlockContext.cpp:256
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2BlockContext.cpp:281
boost::optional< std::string > m_lang
Definition: FictionBook2BlockContext.h:113
Base class for leaf data element contexts.
Definition: FictionBook2ParserContext.h:81
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2BlockContext.cpp:291
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2BlockContext.cpp:101
FictionBook2SectionContext(FictionBook2ParserContext *parentContext, const boost::optional< std::string > &lang)
Definition: FictionBook2BlockContext.cpp:299
FictionBook2XMLParserContext * element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition: FictionBook2BlockContext.cpp:388
Definition: FictionBook2BlockContext.h:22
FictionBook2XMLParserContext * element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition: FictionBook2BlockContext.cpp:73
FictionBook2XMLParserContext * element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition: FictionBook2BlockContext.cpp:26
Definition: FictionBook2BlockContext.h:48

Generated for libe-book by doxygen 1.8.14