redsnow 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -0
  3. data/ext/snowcrash/Makefile +1 -1
  4. data/ext/snowcrash/bin/snowcrash +0 -0
  5. data/ext/snowcrash/configure +9 -9
  6. data/ext/snowcrash/ext/markdown-parser/Makefile +87 -0
  7. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/CONTRIBUTING.md +0 -0
  8. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/Makefile +2 -1
  9. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/Makefile.win +0 -0
  10. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/examples/smartypants.c +0 -0
  11. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/examples/sundown.c +0 -0
  12. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/html/houdini.h +0 -0
  13. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/html/houdini_href_e.c +0 -0
  14. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/html/houdini_html_e.c +0 -0
  15. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/html/html.c +0 -0
  16. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/html/html.h +0 -0
  17. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/html/html_smartypants.c +0 -0
  18. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/html_block_names.txt +0 -0
  19. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/src/autolink.c +0 -0
  20. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/src/autolink.h +0 -0
  21. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/src/buffer.c +0 -0
  22. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/src/buffer.h +1 -1
  23. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/src/html_blocks.h +0 -0
  24. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/src/markdown.c +9 -3
  25. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/src/markdown.h +0 -0
  26. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/src/src_map.c +11 -7
  27. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/src/src_map.h +1 -1
  28. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/src/stack.c +0 -0
  29. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/src/stack.h +0 -0
  30. data/ext/snowcrash/{sundown → ext/markdown-parser/ext/sundown}/sundown.def +0 -0
  31. data/ext/snowcrash/ext/markdown-parser/msvc/markdown/markdown.vcproj +188 -0
  32. data/ext/snowcrash/ext/markdown-parser/msvc/msvc.sln +38 -0
  33. data/ext/snowcrash/ext/markdown-parser/msvc/sundown/sundown.vcproj +206 -0
  34. data/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.cc +92 -0
  35. data/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.h +82 -0
  36. data/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.cc +152 -0
  37. data/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.h +103 -0
  38. data/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.cc +388 -0
  39. data/ext/snowcrash/{src → ext/markdown-parser/src}/MarkdownParser.h +43 -33
  40. data/ext/snowcrash/snowcrash.gyp +114 -63
  41. data/ext/snowcrash/src/ActionParser.h +334 -398
  42. data/ext/snowcrash/src/AssetParser.h +82 -171
  43. data/ext/snowcrash/src/Blueprint.h +7 -2
  44. data/ext/snowcrash/src/BlueprintParser.h +212 -286
  45. data/ext/snowcrash/src/BlueprintUtility.h +2 -2
  46. data/ext/snowcrash/src/CBlueprint.h +1 -1
  47. data/ext/snowcrash/src/CSourceAnnotation.cc +11 -11
  48. data/ext/snowcrash/src/CSourceAnnotation.h +9 -9
  49. data/ext/snowcrash/src/CodeBlockUtility.h +199 -149
  50. data/ext/snowcrash/src/HeadersParser.h +197 -0
  51. data/ext/snowcrash/src/ParameterParser.h +429 -0
  52. data/ext/snowcrash/src/ParametersParser.h +136 -211
  53. data/ext/snowcrash/src/PayloadParser.h +458 -562
  54. data/ext/snowcrash/src/Platform.h +0 -3
  55. data/ext/snowcrash/src/ResourceGroupParser.h +183 -164
  56. data/ext/snowcrash/src/ResourceParser.h +325 -493
  57. data/ext/snowcrash/src/Section.cc +42 -0
  58. data/ext/snowcrash/src/Section.h +47 -0
  59. data/ext/snowcrash/src/SectionParser.h +229 -0
  60. data/ext/snowcrash/src/SectionParserData.h +81 -0
  61. data/ext/snowcrash/src/SectionProcessor.h +211 -0
  62. data/ext/snowcrash/src/Signature.cc +74 -0
  63. data/ext/snowcrash/src/Signature.h +32 -0
  64. data/ext/snowcrash/src/SourceAnnotation.h +7 -20
  65. data/ext/snowcrash/src/StringUtility.h +30 -10
  66. data/ext/snowcrash/src/SymbolTable.h +7 -7
  67. data/ext/snowcrash/src/UriTemplateParser.cc +10 -10
  68. data/ext/snowcrash/src/UriTemplateParser.h +11 -14
  69. data/ext/snowcrash/src/ValuesParser.h +122 -0
  70. data/ext/snowcrash/src/Version.h +2 -2
  71. data/ext/snowcrash/src/csnowcrash.cc +5 -5
  72. data/ext/snowcrash/src/csnowcrash.h +3 -3
  73. data/ext/snowcrash/src/snowcrash.cc +74 -4
  74. data/ext/snowcrash/src/snowcrash.h +9 -4
  75. data/ext/snowcrash/src/snowcrash/snowcrash.cc +16 -16
  76. data/ext/snowcrash/tools/homebrew/snowcrash.rb +3 -2
  77. data/ext/snowcrash/vcbuild.bat +13 -4
  78. data/lib/redsnow.rb +5 -5
  79. data/lib/redsnow/binding.rb +1 -1
  80. data/lib/redsnow/blueprint.rb +33 -2
  81. data/lib/redsnow/parseresult.rb +7 -4
  82. data/lib/redsnow/version.rb +1 -1
  83. data/test/redsnow_binding_test.rb +6 -6
  84. data/test/redsnow_parseresult_test.rb +1 -1
  85. metadata +62 -42
  86. data/ext/snowcrash/src/BlockUtility.h +0 -186
  87. data/ext/snowcrash/src/BlueprintParserCore.h +0 -190
  88. data/ext/snowcrash/src/BlueprintSection.h +0 -140
  89. data/ext/snowcrash/src/DescriptionSectionUtility.h +0 -156
  90. data/ext/snowcrash/src/HeaderParser.h +0 -289
  91. data/ext/snowcrash/src/ListBlockUtility.h +0 -273
  92. data/ext/snowcrash/src/ListUtility.h +0 -95
  93. data/ext/snowcrash/src/MarkdownBlock.cc +0 -176
  94. data/ext/snowcrash/src/MarkdownBlock.h +0 -93
  95. data/ext/snowcrash/src/MarkdownParser.cc +0 -266
  96. data/ext/snowcrash/src/ParameterDefinitonParser.h +0 -645
  97. data/ext/snowcrash/src/Parser.cc +0 -71
  98. data/ext/snowcrash/src/Parser.h +0 -29
  99. data/ext/snowcrash/src/ParserCore.cc +0 -120
  100. data/ext/snowcrash/src/ParserCore.h +0 -82
  101. data/ext/snowcrash/src/SectionUtility.h +0 -142
@@ -1,190 +0,0 @@
1
- //
2
- // BlueprintParserCore.h
3
- // snowcrash
4
- //
5
- // Created by Zdenek Nemec on 5/4/13.
6
- // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
- //
8
-
9
- #ifndef SNOWCRASH_BLUEPRINTPARSERCORE_H
10
- #define SNOWCRASH_BLUEPRINTPARSERCORE_H
11
-
12
- #include <algorithm>
13
- #include <sstream>
14
- #include "ParserCore.h"
15
- #include "SourceAnnotation.h"
16
- #include "MarkdownBlock.h"
17
- #include "BlueprintSection.h"
18
- #include "HTTP.h"
19
- #include "Blueprint.h"
20
- #include "BlueprintUtility.h"
21
- #include "StringUtility.h"
22
- #include "SymbolTable.h"
23
-
24
- namespace snowcrash {
25
-
26
- /**
27
- * \brief Blueprint Parser Options.
28
- *
29
- * Controls blueprint parser behavior.
30
- */
31
- enum BlueprintParserOption {
32
- RenderDescriptionsOption = (1 << 0), /// < Render Markdown in description.
33
- RequireBlueprintNameOption = (1 << 1) /// < Treat missing blueprint name as error
34
- };
35
-
36
- typedef unsigned int BlueprintParserOptions;
37
-
38
- /**
39
- * \brief Parsing subroutine result
40
- *
41
- * Consists of a parsing result report (first) and
42
- * %BlockIterator (second) pointing to the last parsed
43
- * markdown block.
44
- */
45
- typedef std::pair<Result, BlockIterator> ParseSectionResult;
46
-
47
-
48
- /**
49
- * Parser Core Data
50
- */
51
- struct BlueprintParserCore {
52
- BlueprintParserCore(BlueprintParserOptions opts,
53
- const SourceData& src,
54
- const Blueprint& bp)
55
- : options(opts), sourceData(src), blueprint(bp) {}
56
-
57
- /** Parser Options */
58
- BlueprintParserOptions options;
59
-
60
- /** Symbol Table */
61
- SymbolTable symbolTable;
62
-
63
- /** Source Data */
64
- const SourceData& sourceData;
65
-
66
- /** AST being parsed **/
67
- const Blueprint& blueprint;
68
-
69
- private:
70
- BlueprintParserCore();
71
- BlueprintParserCore(const BlueprintParserCore&);
72
- BlueprintParserCore& operator=(const BlueprintParserCore&);
73
- };
74
-
75
- /**
76
- * SectionType Parser prototype.
77
- */
78
- template<class T>
79
- struct SectionParser {
80
-
81
- /**
82
- * \brief Parse section's blocks.
83
- * \param section Actual section being parsed.
84
- * \param cur Cursor within the section boundaries.
85
- * \param parser Parser instance.
86
- * \param output AST node parsed.
87
- * \return %ParseSectionResult pointing to the last block parsed & including
88
- * any possible source annotations in the form of results or warnings.
89
- */
90
- static ParseSectionResult ParseSection(const BlueprintSection& section,
91
- const BlockIterator& cur,
92
- BlueprintParserCore& parser,
93
- T& output);
94
-
95
- /**
96
- * \brief Optional post-parse processing.
97
- */
98
- static void Finalize(const SectionBounds& bounds,
99
- BlueprintParserCore& parser,
100
- T& output,
101
- Result& result);
102
- };
103
-
104
- /**
105
- * \brief Internal list items classifier prototype.
106
- *
107
- * The classifier might look ahead.
108
- * DO NOT provide generic implementation.
109
- */
110
- template <class T>
111
- FORCEINLINE SectionType ClassifyInternaListBlock(const BlockIterator& begin,
112
- const BlockIterator& end);
113
- /**
114
- * \brief Classify a block with children list items.
115
- *
116
- * Classifies internal list block & descend to children list block classifiers.
117
- * DO NOT provide generic implementation.
118
- */
119
- template <class T>
120
- FORCEINLINE SectionType ClassifyChildrenListBlock(const BlockIterator& begin,
121
- const BlockIterator& end);
122
-
123
- /**
124
- * \brief Block Classifier prototype.
125
- *
126
- * The classifier might look ahead.
127
- */
128
- template <class T>
129
- FORCEINLINE SectionType ClassifyBlock(const BlockIterator& begin,
130
- const BlockIterator& end,
131
- const SectionType& context);
132
-
133
- // Forward declaration of classifier helpers
134
- extern bool HasResourceGroupSignature(const MarkdownBlock& block);
135
- extern bool HasActionSignature(const MarkdownBlock& block);
136
- extern bool HasResourceSignature(const MarkdownBlock& block);
137
- extern bool HasPayloadSignature(const BlockIterator& begin, const BlockIterator& end);
138
- extern bool HasPayloadAssetSignature(const BlockIterator& begin, const BlockIterator& end);
139
- extern bool HasAssetSignature(const BlockIterator& begin, const BlockIterator& end);
140
- extern bool HasHeaderSignature(const BlockIterator& begin, const BlockIterator& end);
141
- extern bool HasParametersSignature(const BlockIterator& begin, const BlockIterator& end);
142
-
143
- /**
144
- * \brief A Markdown block parser.
145
- *
146
- * Iterates over blocks classifying sections and calling relevant %SectionParser P<T>.
147
- */
148
- template <class T, class P>
149
- struct BlockParser : public P {
150
-
151
- // Iterate blocks, classify & parse
152
- static ParseSectionResult Parse(const BlockIterator& begin,
153
- const BlockIterator& end,
154
- const BlueprintSection& parentSection,
155
- BlueprintParserCore& parser,
156
- T& output) {
157
- Result result;
158
- SectionType currentSectionType = UndefinedSectionType;
159
- BlockIterator currentBlock = begin;
160
- while (currentBlock != end) {
161
-
162
- currentSectionType = ClassifyBlock<T>(currentBlock, end, currentSectionType);
163
- BlueprintSection currentSection(currentSectionType, std::make_pair(begin, end), parentSection);
164
-
165
- ParseSectionResult sectionResult = P::ParseSection(currentSection,
166
- currentBlock,
167
- parser,
168
- output);
169
-
170
- result += sectionResult.first;
171
- if (result.error.code != Error::OK)
172
- break;
173
-
174
- if (sectionResult.second == currentBlock)
175
- break;
176
-
177
- currentBlock = sectionResult.second;
178
-
179
- if (currentSectionType == UndefinedSectionType)
180
- break;
181
- }
182
-
183
- P::Finalize(std::make_pair(begin, currentBlock), parser, output, result);
184
-
185
- return std::make_pair(result, currentBlock);
186
- }
187
- };
188
- }
189
-
190
- #endif
@@ -1,140 +0,0 @@
1
- //
2
- // BlueprintSection.h
3
- // snowcrash
4
- //
5
- // Created by Zdenek Nemec on 11/1/13.
6
- // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
- //
8
-
9
- #ifndef SNOWCRASH_BLUEPRINTSECTION_H
10
- #define SNOWCRASH_BLUEPRINTSECTION_H
11
-
12
- #include "MarkdownBlock.h"
13
- #include "Blueprint.h"
14
-
15
- namespace snowcrash {
16
-
17
- /**
18
- * API Blueprint Sections Types. Block range classification.
19
- */
20
- enum SectionType {
21
- UndefinedSectionType, /// < Undefined section
22
- BlueprintSectionType, /// < Blueprint overview
23
- ResourceGroupSectionType, /// < Resource group
24
- ResourceSectionType, /// < Resource
25
- ResourceMethodSectionType, /// < Resource & Action combined (abbrev)
26
- ActionSectionType, /// < Action
27
- RequestSectionType, /// < Request
28
- RequestBodySectionType, /// < Request & Payload body combined (abbrev)
29
- ResponseSectionType, /// < Response
30
- ResponseBodySectionType, /// < Response & Body combined (abbrev)
31
- ObjectSectionType, /// < Object (deprecated)
32
- ObjectBodySectionType, /// < Object & Body combined (abbrev, deprecated)
33
- ModelSectionType, /// < Model
34
- ModelBodySectionType, /// < Model & Body combined (abbrev)
35
- BodySectionType, /// < Payload Body
36
- DanglingBodySectionType, /// < Dangling Body (unrecognised section considered to be Body)
37
- SchemaSectionType, /// < Payload Schema
38
- DanglingSchemaSectionType, /// < Dangling Schema (unrecognised section considered to be Schema)
39
- HeadersSectionType, /// < Headers
40
- ForeignSectionType, /// < Foreign, unexpected section
41
- ParametersSectionType, /// < Parameters
42
- ParameterDefinitionSectionType, /// < One Parameter definition
43
- ParameterValuesSectionType /// < Parameter value enumeration
44
- };
45
-
46
- /** \returns human readable name for given %SectionType */
47
- FORCEINLINE std::string SectionName(const SectionType& section) {
48
- switch (section) {
49
-
50
- case ModelSectionType:
51
- case ModelBodySectionType:
52
- return "model";
53
-
54
- case ObjectSectionType:
55
- case ObjectBodySectionType:
56
- return "object";
57
-
58
- case RequestSectionType:
59
- case RequestBodySectionType:
60
- return "request";
61
-
62
- case ResponseSectionType:
63
- case ResponseBodySectionType:
64
- return "response";
65
-
66
- case BodySectionType:
67
- case DanglingBodySectionType:
68
- return "message-body";
69
-
70
- case SchemaSectionType:
71
- case DanglingSchemaSectionType:
72
- return "message-schema";
73
-
74
- case HeadersSectionType:
75
- return "headers";
76
-
77
- default:
78
- return "section";
79
- }
80
- }
81
-
82
- /** Markdown block iterator */
83
- typedef MarkdownBlock::Stack::const_iterator BlockIterator;
84
-
85
- /**
86
- * \brief SectionType boundaries.
87
- *
88
- * A continuous range of markdown blocks <first, second).
89
- */
90
- typedef std::pair<BlockIterator, BlockIterator> SectionBounds;
91
-
92
-
93
- /**
94
- * \brief API Blueprint Section Descriptor.
95
- */
96
- class BlueprintSection {
97
-
98
- public:
99
- BlueprintSection(const SectionBounds& _bounds)
100
- : type(UndefinedSectionType), bounds(_bounds), m_parent(NULL) {}
101
-
102
- BlueprintSection(const SectionType _type,
103
- const SectionBounds& _bounds,
104
- const BlueprintSection& _parent)
105
- : type(_type), bounds(_bounds), m_parent(&_parent) {}
106
-
107
- /** Type of section */
108
- const SectionType type;
109
-
110
- /**
111
- * Maximum boundaries of the section including any subsection.
112
- */
113
- const SectionBounds bounds;
114
-
115
- /**
116
- * \return True if section's parent is specified, false otherwise.
117
- */
118
- bool hasParent() const {
119
- return (m_parent != NULL);
120
- }
121
-
122
- /**
123
- * \return Parent section, throws exception if no parent is defined.
124
- */
125
- const BlueprintSection& parent() const {
126
- if (!hasParent())
127
- throw "accessing parent of a root blueprint section";
128
- return *m_parent;
129
- }
130
-
131
- private:
132
- BlueprintSection();
133
- BlueprintSection(const BlueprintSection&);
134
- BlueprintSection& operator=(const BlueprintSection&);
135
-
136
- const BlueprintSection* m_parent;
137
- };
138
- }
139
-
140
- #endif
@@ -1,156 +0,0 @@
1
- //
2
- // DescriptionSectionUtility.h
3
- // snowcrash
4
- //
5
- // Created by Zdenek Nemec on 11/10/13.
6
- // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
- //
8
-
9
- #ifndef SNOWCRASH_DESCRIPTIONSECTIONUTILITY_H
10
- #define SNOWCRASH_DESCRIPTIONSECTIONUTILITY_H
11
-
12
- #include <sstream>
13
- #include "MarkdownBlock.h"
14
- #include "BlueprintParserCore.h"
15
- #include "CodeBlockUtility.h"
16
-
17
- namespace snowcrash {
18
-
19
-
20
- /**
21
- * \brief Skips to the end of the description list.
22
- * \param begin Begin of the description list.
23
- * \param end End of the block buffer.
24
- * \param descriptionMap Output buffer containing skipped source map.
25
- * \return An iterator pointing to the last block of a description list.
26
- * Or, if one of description list items is recognized as a section, iterator
27
- * pointing to this section.
28
- *
29
- * This functions checks any skipped list items for a section signature.
30
- * If a section signature is found this function returns the first block
31
- * of the recognized section. If no signature is found this function returns
32
- * the last (closing) block of the description list.
33
- */
34
- template <class T>
35
- static BlockIterator SkipToDescriptionListEnd(const BlockIterator& begin,
36
- const BlockIterator& end,
37
- SourceDataBlock& descriptionMap) {
38
- BlockIterator cur(begin);
39
- if (++cur == end) // Skip leading ListBlockBeginType
40
- return cur;
41
-
42
- std::vector<SourceDataBlock> listItemMaps;
43
- SectionType listItemSection = UndefinedSectionType;
44
- BlockIterator recognizedCur = end;
45
-
46
- while (cur != end &&
47
- cur->type == ListItemBlockBeginType) {
48
-
49
- // Classify list item
50
- listItemSection = ClassifyInternaListBlock<T>(cur, end);
51
- if (listItemSection != UndefinedSectionType) {
52
- // Found a recognized section, record & skip to the end of the list.
53
- recognizedCur = cur;
54
- cur = SkipToClosingBlock(begin, end, ListBlockBeginType, ListBlockEndType);
55
- }
56
- else {
57
- // Skip one list item & take note of its source map
58
- cur = SkipToClosingBlock(cur, end, ListItemBlockBeginType, ListItemBlockEndType);
59
- listItemMaps.push_back(cur->sourceMap);
60
-
61
- if (cur != end)
62
- ++cur;
63
- }
64
- }
65
-
66
- // Resolve
67
- if (listItemSection == UndefinedSectionType) {
68
- descriptionMap = cur->sourceMap;
69
- return cur;
70
- }
71
- else {
72
- // Resolve correct description source map
73
- descriptionMap.clear();
74
- if (!cur->sourceMap.empty() &&
75
- !listItemMaps.empty() &&
76
- !listItemMaps.front().empty()) {
77
-
78
- SourceDataRange r;
79
- r.location = cur->sourceMap.front().location;
80
- r.length = listItemMaps.front().front().location - r.location;
81
- descriptionMap.push_back(r);
82
-
83
- for (std::vector<SourceDataBlock>::iterator it = listItemMaps.begin();
84
- it != listItemMaps.end();
85
- ++it) {
86
-
87
- SourceDataRange gap;
88
- gap.location = descriptionMap.back().location + descriptionMap.back().length;
89
- gap.length = it->front().location - gap.location;
90
- if (gap.length) {
91
- SourceDataBlock gapBlock(1, gap);
92
- AppendSourceDataBlock(descriptionMap, gapBlock);
93
- }
94
-
95
- AppendSourceDataBlock(descriptionMap, *it);
96
- }
97
- }
98
-
99
- return recognizedCur;
100
- }
101
- }
102
-
103
- /**
104
- * \brief Process a description block retrieving its content.
105
- * \param section A section its block is being processed.
106
- * \param cur Cursor to the block to process.
107
- * \param sourceData Source data stream.
108
- * \param output Output object to APPEND retrieved description into.
109
- * \return Standard parser section result poinitng at the last block parsed.
110
- */
111
- template <class T>
112
- FORCEINLINE ParseSectionResult ParseDescriptionBlock(const BlueprintSection& section,
113
- const BlockIterator& cur,
114
- const SourceData& sourceData,
115
- T& output) {
116
-
117
- ParseSectionResult result = std::make_pair(Result(), cur);
118
- BlockIterator sectionCur(cur);
119
-
120
- if (sectionCur->type == QuoteBlockBeginType) {
121
- sectionCur = SkipToClosingBlock(sectionCur, section.bounds.second, QuoteBlockBeginType, QuoteBlockEndType);
122
- }
123
- else if (sectionCur->type == ListBlockBeginType) {
124
-
125
- SourceDataBlock descriptionMap;
126
- sectionCur = SkipToDescriptionListEnd<T>(sectionCur, section.bounds.second, descriptionMap);
127
-
128
- if (sectionCur->type != ListBlockEndType) {
129
- // Found recognized lists in the list block
130
- if (!descriptionMap.empty())
131
- output.description += MapSourceData(sourceData, descriptionMap);
132
-
133
- result.second = sectionCur;
134
- return result;
135
- }
136
- }
137
- else if (sectionCur->type == CodeBlockType) {
138
- // Check code block for potential excessive indentation of a list item
139
- CheckCodeBlockListItem<T>(section, sectionCur, sourceData, result.first);
140
- }
141
- else if (sectionCur->type == HeaderBlockType) {
142
- // Check headers for potential keywords
143
- CheckHeaderBlock<T>(section, sectionCur, sourceData, result.first);
144
- }
145
-
146
- if (!CheckCursor(section, sectionCur, sourceData, result.first))
147
- return result;
148
-
149
- output.description += MapSourceData(sourceData, sectionCur->sourceMap);
150
- result.second = ++sectionCur;
151
-
152
- return result;
153
- }
154
- }
155
-
156
- #endif