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
19namespace libebook
20{
21
23{
24public:
25 FictionBook2BodyContext(std::shared_ptr<FictionBook2ParserContext> parentContext, FictionBook2Collector *collector);
26
27private:
28 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
29 void startOfElement() override;
30 void endOfElement() override;
31 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
32
33private:
34 boost::optional<std::string> m_lang;
35};
36
38{
39public:
40 FictionBook2CiteContext(std::shared_ptr<FictionBook2ParserContext> parentContext, const FictionBook2BlockFormat &format);
41
42private:
43 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
44 void endOfElement() override;
45 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
46};
47
49{
50public:
51 explicit FictionBook2EmptyLineContext(std::shared_ptr<FictionBook2ParserContext> parentContext);
52
53private:
54 void endOfElement() override;
55 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
56};
57
59{
60public:
61 FictionBook2EpigraphContext(std::shared_ptr<FictionBook2ParserContext> parentContext, const FictionBook2BlockFormat &format);
62
63private:
64 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
65 void endOfElement() override;
66 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
67};
68
70{
71public:
72 FictionBook2ImageContext(std::shared_ptr<FictionBook2ParserContext> parentContext);
73
74private:
75 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
76 void endOfElement() override;
77 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
78
79private:
80 std::string m_href;
81 std::string m_altText;
82 bool m_valid;
83};
84
86{
87public:
88 FictionBook2PoemContext(std::shared_ptr<FictionBook2ParserContext> parentContext, const FictionBook2BlockFormat &format);
89
90private:
91 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
92 void startOfElement() override;
93 void endOfElement() override;
94 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
95};
96
98{
99public:
100 FictionBook2SectionContext(std::shared_ptr<FictionBook2ParserContext> parentContext, const boost::optional<std::string> &lang);
101 FictionBook2SectionContext(std::shared_ptr<FictionBook2ParserContext> parentContext, uint8_t level, const boost::optional<std::string> &lang);
102
103private:
104 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
105 void endOfElement() override;
106 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
107
109
110private:
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{
118public:
119 FictionBook2StanzaContext(std::shared_ptr<FictionBook2ParserContext> parentContext, const FictionBook2BlockFormat &format);
120
121private:
122 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
123 void endOfElement() override;
124 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
125};
126
128{
129public:
130 FictionBook2TitleContext(std::shared_ptr<FictionBook2ParserContext> parentContext, const FictionBook2BlockFormat &format);
131
132private:
133 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
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: */
FictionBook2BlockFormatContextBase(std::shared_ptr< FictionBook2ParserContext > parentContext, const FictionBook2BlockFormat &format)
Definition FictionBook2ParserContext.cpp:217
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2BlockContext.cpp:57
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2BlockContext.cpp:62
boost::optional< std::string > m_lang
Definition FictionBook2BlockContext.h:34
FictionBook2BodyContext(std::shared_ptr< FictionBook2ParserContext > parentContext, FictionBook2Collector *collector)
Definition FictionBook2BlockContext.cpp:20
void startOfElement() override
Signalize the start of an element.
Definition FictionBook2BlockContext.cpp:52
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2BlockContext.cpp:26
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2BlockContext.cpp:101
FictionBook2CiteContext(std::shared_ptr< FictionBook2ParserContext > parentContext, const FictionBook2BlockFormat &format)
Definition FictionBook2BlockContext.cpp:68
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2BlockContext.cpp:97
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2BlockContext.cpp:73
Definition FictionBook2Collector.h:23
FictionBook2DataContextBase(std::shared_ptr< FictionBook2ParserContext > parentContext)
Definition FictionBook2ParserContext.cpp:60
FictionBook2EmptyLineContext(std::shared_ptr< FictionBook2ParserContext > parentContext)
Definition FictionBook2BlockContext.cpp:109
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2BlockContext.cpp:120
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2BlockContext.cpp:114
FictionBook2EpigraphContext(std::shared_ptr< FictionBook2ParserContext > parentContext, const FictionBook2BlockFormat &format)
Definition FictionBook2BlockContext.cpp:124
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2BlockContext.cpp:153
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2BlockContext.cpp:129
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:186
std::string m_href
Definition FictionBook2BlockContext.h:80
FictionBook2ImageContext(std::shared_ptr< FictionBook2ParserContext > parentContext)
Definition FictionBook2BlockContext.cpp:163
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2BlockContext.cpp:171
bool m_valid
Definition FictionBook2BlockContext.h:82
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2BlockContext.cpp:216
std::string m_altText
Definition FictionBook2BlockContext.h:81
FictionBook2NodeContextBase(std::shared_ptr< FictionBook2ParserContext > parentContext, FictionBook2Collector *collector=nullptr)
Definition FictionBook2ParserContext.cpp:43
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:291
std::shared_ptr< 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
FictionBook2PoemContext(std::shared_ptr< FictionBook2ParserContext > parentContext, const FictionBook2BlockFormat &format)
Definition FictionBook2BlockContext.cpp:251
boost::optional< uint8_t > m_level
Definition FictionBook2BlockContext.h:112
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2BlockContext.cpp:364
boost::optional< std::string > m_lang
Definition FictionBook2BlockContext.h:113
FictionBook2SectionContext(std::shared_ptr< FictionBook2ParserContext > parentContext, const boost::optional< std::string > &lang)
Definition FictionBook2BlockContext.cpp:299
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2BlockContext.cpp:313
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2BlockContext.cpp:359
FictionBook2BlockFormat makeBlockFormat() const
Definition FictionBook2BlockContext.cpp:372
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2BlockContext.cpp:388
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:414
FictionBook2StanzaContext(std::shared_ptr< FictionBook2ParserContext > parentContext, const FictionBook2BlockFormat &format)
Definition FictionBook2BlockContext.cpp:382
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2BlockContext.cpp:444
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2BlockContext.cpp:426
FictionBook2TitleContext(std::shared_ptr< FictionBook2ParserContext > parentContext, const FictionBook2BlockFormat &format)
Definition FictionBook2BlockContext.cpp:420
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2BlockContext.cpp:449
@ lang
Definition EBOOKHTMLToken.h:205
@ value
Definition EBOOKHTMLToken.h:261
@ name
Definition EBOOKHTMLToken.h:214
@ format
Definition EBOOKOPFToken.h:54
Definition BBeBCollector.cpp:20
Definition FictionBook2Style.h:36
Definition FictionBook2Token.h:134

Generated for libe-book by doxygen 1.16.1