FictionBook2TextContext.h Source File documentation

FictionBook2TextContext.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 FICTIONBOOK2TEXTCONTEXT_H_INCLUDED
11#define FICTIONBOOK2TEXTCONTEXT_H_INCLUDED
12
13#include <string>
14
15#include "FictionBook2ParserContext.h"
16
17namespace libebook
18{
19
20 class FictionBook2ParaContextBase : public FictionBook2StyleContextBase
21{
22public:
23 FictionBook2ParaContextBase(FictionBook2ParserContext *parentContext, const FictionBook2BlockFormat &format);
24
25private:
26 void startOfElement() override;
27 void endOfElement() override;
28 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
29};
30
31 class FictionBook2AContext : public FictionBook2StyleContextBase
32{
33public:
34 FictionBook2AContext(FictionBook2ParserContext *parentContext, const FictionBook2Style &style);
35
36private:
37 FictionBook2XMLParserContext *element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
38 void startOfElement() override;
39 void endOfElement() override;
40 void endOfAttributes() override;
41 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
42 void text(const char *text) override;
43
44private:
45 std::string m_href;
46 bool m_valid;
47 bool m_note;
48};
49
50 class FictionBook2CodeContext : public FictionBook2StyleContextBase
51{
52public:
53 FictionBook2CodeContext(FictionBook2ParserContext *parentContext, FictionBook2Style &style);
54
55private:
56 void startOfElement() override;
57};
58
59 class FictionBook2EmphasisContext : public FictionBook2StyleContextBase
60{
61public:
62 FictionBook2EmphasisContext(FictionBook2ParserContext *parentContext, FictionBook2Style &style);
63
64private:
65 void startOfElement() override;
66};
67
68 class FictionBook2InlineImageContext : public FictionBook2DataContextBase
69{
70public:
71 FictionBook2InlineImageContext(FictionBook2ParserContext *parentContext, const FictionBook2Style &style);
72
73private:
74 void startOfElement() override;
75 void endOfElement() override;
76 void endOfAttributes() override;
77 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
78
79private:
80 const FictionBook2Style &m_style;
81 std::string m_href;
82 std::string m_altText;
83 bool m_valid;
84};
85
86 class FictionBook2PContext : public FictionBook2ParaContextBase
87{
88public:
89 FictionBook2PContext(FictionBook2ParserContext *parentContext, const FictionBook2BlockFormat &format);
90
91private:
92 static FictionBook2BlockFormat makeBlockFormat(const FictionBook2BlockFormat &format);
93};
94
95 class FictionBook2StrikethroughContext : public FictionBook2StyleContextBase
96{
97public:
98 FictionBook2StrikethroughContext(FictionBook2ParserContext *parentContext, FictionBook2Style &style);
99
100private:
101 void startOfElement() override;
102};
103
104 class FictionBook2StrongContext : public FictionBook2StyleContextBase
105{
106public:
107 FictionBook2StrongContext(FictionBook2ParserContext *parentContext, FictionBook2Style &style);
108
109private:
110 void startOfElement() override;
111};
112
113 class FictionBook2StyleContext : public FictionBook2StyleContextBase
114{
115public:
116 FictionBook2StyleContext(FictionBook2ParserContext *parentContext, FictionBook2Style &style);
117
118private:
119 void startOfElement() override;
120};
121
122 class FictionBook2SubContext : public FictionBook2StyleContextBase
123{
124public:
125 FictionBook2SubContext(FictionBook2ParserContext *parentContext, FictionBook2Style &style);
126
127private:
128 void startOfElement() override;
129};
130
131 class FictionBook2SubtitleContext : public FictionBook2ParaContextBase
132{
133public:
134 explicit FictionBook2SubtitleContext(FictionBook2ParserContext *parentContext, const FictionBook2BlockFormat &format);
135
136private:
137 static FictionBook2BlockFormat makeBlockFormat(const FictionBook2BlockFormat &format);
138};
139
140 class FictionBook2SupContext : public FictionBook2StyleContextBase
141{
142public:
143 FictionBook2SupContext(FictionBook2ParserContext *parentContext, FictionBook2Style &style);
144
145private:
146 void startOfElement() override;
147};
148
149 class FictionBook2TextAuthorContext : public FictionBook2PContext
150{
151public:
152 explicit FictionBook2TextAuthorContext(FictionBook2ParserContext *parentContext, const FictionBook2BlockFormat &format);
153
154private:
155 static FictionBook2BlockFormat makeBlockFormat(const FictionBook2BlockFormat &format);
156};
157
158 class FictionBook2VContext : public FictionBook2ParaContextBase
159{
160public:
161 explicit FictionBook2VContext(FictionBook2ParserContext *parentContext, const FictionBook2BlockFormat &format);
162
163private:
164 static FictionBook2BlockFormat makeBlockFormat(const FictionBook2BlockFormat &format);
165};
166
167}
168
169#endif // FICTIONBOOK2TEXTCONTEXT_H_INCLUDED
170
171/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
FictionBook2ParserContext.h
name
string name
Definition: HTMLHelpStream.cpp:80
style
optional< Style > style
Definition: TealDocParser.cpp:105
value
qi::rule< Iterator, AttrValue_t, qi::space_type > value
Definition: TealDocParser.cpp:231
text
qi::rule< Iterator, AttrValue_t, qi::space_type > text
Definition: TealDocParser.cpp:232
libebook::FictionBook2AContext
Definition: FictionBook2TextContext.h:32
libebook::FictionBook2AContext::attribute
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2TextContext.cpp:92
libebook::FictionBook2AContext::endOfAttributes
void endOfAttributes() override
Signalize the end of attributes.
Definition: FictionBook2TextContext.cpp:78
libebook::FictionBook2AContext::m_href
std::string m_href
Definition: FictionBook2TextContext.h:45
libebook::FictionBook2AContext::m_note
bool m_note
Definition: FictionBook2TextContext.h:47
libebook::FictionBook2AContext::m_valid
bool m_valid
Definition: FictionBook2TextContext.h:46
libebook::FictionBook2AContext::element
FictionBook2XMLParserContext * element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition: FictionBook2TextContext.cpp:60
libebook::FictionBook2AContext::startOfElement
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TextContext.cpp:68
libebook::FictionBook2AContext::endOfElement
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2TextContext.cpp:72
libebook::FictionBook2CodeContext
Definition: FictionBook2TextContext.h:51
libebook::FictionBook2CodeContext::startOfElement
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TextContext.cpp:127
libebook::FictionBook2DataContextBase
Base class for leaf data element contexts.
Definition: FictionBook2ParserContext.h:82
libebook::FictionBook2EmphasisContext
Definition: FictionBook2TextContext.h:60
libebook::FictionBook2EmphasisContext::startOfElement
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TextContext.cpp:137
libebook::FictionBook2InlineImageContext
Definition: FictionBook2TextContext.h:69
libebook::FictionBook2InlineImageContext::m_style
const FictionBook2Style & m_style
Definition: FictionBook2TextContext.h:80
libebook::FictionBook2InlineImageContext::startOfElement
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TextContext.cpp:151
libebook::FictionBook2InlineImageContext::endOfElement
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2TextContext.cpp:155
libebook::FictionBook2InlineImageContext::endOfAttributes
void endOfAttributes() override
Signalize the end of attributes.
Definition: FictionBook2TextContext.cpp:171
libebook::FictionBook2InlineImageContext::attribute
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2TextContext.cpp:175
libebook::FictionBook2InlineImageContext::m_valid
bool m_valid
Definition: FictionBook2TextContext.h:83
libebook::FictionBook2InlineImageContext::m_href
std::string m_href
Definition: FictionBook2TextContext.h:81
libebook::FictionBook2InlineImageContext::m_altText
std::string m_altText
Definition: FictionBook2TextContext.h:82
libebook::FictionBook2PContext
Definition: FictionBook2TextContext.h:87
libebook::FictionBook2PContext::makeBlockFormat
static FictionBook2BlockFormat makeBlockFormat(const FictionBook2BlockFormat &format)
Definition: FictionBook2TextContext.cpp:200
libebook::FictionBook2ParaContextBase
Definition: FictionBook2TextContext.h:21
libebook::FictionBook2ParaContextBase::endOfElement
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2TextContext.cpp:27
libebook::FictionBook2ParaContextBase::startOfElement
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TextContext.cpp:22
libebook::FictionBook2ParaContextBase::attribute
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2TextContext.cpp:32
libebook::FictionBook2ParserContext
Base class for all contexts.
Definition: FictionBook2ParserContext.h:24
libebook::FictionBook2StrikethroughContext
Definition: FictionBook2TextContext.h:96
libebook::FictionBook2StrikethroughContext::startOfElement
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TextContext.cpp:212
libebook::FictionBook2StrongContext
Definition: FictionBook2TextContext.h:105
libebook::FictionBook2StrongContext::startOfElement
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TextContext.cpp:222
libebook::FictionBook2StyleContextBase
Definition: FictionBook2ParserContext.h:133
libebook::FictionBook2StyleContext
Definition: FictionBook2TextContext.h:114
libebook::FictionBook2StyleContext::startOfElement
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TextContext.cpp:232
libebook::FictionBook2Style
Definition: FictionBook2Style.h:56
libebook::FictionBook2SubContext
Definition: FictionBook2TextContext.h:123
libebook::FictionBook2SubContext::startOfElement
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TextContext.cpp:242
libebook::FictionBook2SubtitleContext
Definition: FictionBook2TextContext.h:132
libebook::FictionBook2SubtitleContext::makeBlockFormat
static FictionBook2BlockFormat makeBlockFormat(const FictionBook2BlockFormat &format)
Definition: FictionBook2TextContext.cpp:252
libebook::FictionBook2SupContext
Definition: FictionBook2TextContext.h:141
libebook::FictionBook2SupContext::startOfElement
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TextContext.cpp:264
libebook::FictionBook2TextAuthorContext
Definition: FictionBook2TextContext.h:150
libebook::FictionBook2TextAuthorContext::makeBlockFormat
static FictionBook2BlockFormat makeBlockFormat(const FictionBook2BlockFormat &format)
Definition: FictionBook2TextContext.cpp:274
libebook::FictionBook2VContext
Definition: FictionBook2TextContext.h:159
libebook::FictionBook2VContext::makeBlockFormat
static FictionBook2BlockFormat makeBlockFormat(const FictionBook2BlockFormat &format)
Definition: FictionBook2TextContext.cpp:286
libebook::FictionBook2XMLParserContext
Definition: FictionBook2XMLParserContext.h:19
libebook
Definition: BBeBCollector.cpp:19
libebook::FictionBook2BlockFormat
Definition: FictionBook2Style.h:36
libebook::FictionBook2TokenData
Definition: FictionBook2Token.h:134