lounge_lizard 0.1.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 (348) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +2 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +4 -0
  7. data/Guardfile +33 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +50 -0
  10. data/Rakefile +43 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/circle.yml +14 -0
  14. data/ext/drafter/CHANGELOG.md +278 -0
  15. data/ext/drafter/Dockerfile +17 -0
  16. data/ext/drafter/Makefile +62 -0
  17. data/ext/drafter/appveyor.yml +17 -0
  18. data/ext/drafter/bin/drafter +0 -0
  19. data/ext/drafter/build/Makefile +387 -0
  20. data/ext/drafter/build/drafter.Makefile +6 -0
  21. data/ext/drafter/build/drafter.target.mk +159 -0
  22. data/ext/drafter/build/ext/snowcrash/libmarkdownparser.target.mk +141 -0
  23. data/ext/drafter/build/ext/snowcrash/libsnowcrash.target.mk +154 -0
  24. data/ext/drafter/build/ext/snowcrash/libsundown.target.mk +149 -0
  25. data/ext/drafter/build/ext/snowcrash/perf-libsnowcrash.target.mk +147 -0
  26. data/ext/drafter/build/ext/snowcrash/snowcrash.Makefile +6 -0
  27. data/ext/drafter/build/gyp-mac-tool +606 -0
  28. data/ext/drafter/build/libdrafter.target.mk +186 -0
  29. data/ext/drafter/build/libsos.target.mk +137 -0
  30. data/ext/drafter/build/out/Release/drafter +0 -0
  31. data/ext/drafter/build/out/Release/libdrafter.dylib +0 -0
  32. data/ext/drafter/build/out/Release/libmarkdownparser.a +0 -0
  33. data/ext/drafter/build/out/Release/libsnowcrash.a +0 -0
  34. data/ext/drafter/build/out/Release/libsos.a +0 -0
  35. data/ext/drafter/build/out/Release/libsundown.a +0 -0
  36. data/ext/drafter/build/out/Release/obj.target/drafter/src/config.o +0 -0
  37. data/ext/drafter/build/out/Release/obj.target/drafter/src/main.o +0 -0
  38. data/ext/drafter/build/out/Release/obj.target/drafter/src/reporting.o +0 -0
  39. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/ConversionContext.o +0 -0
  40. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/NamedTypesRegistry.o +0 -0
  41. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractAPI.o +0 -0
  42. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractDataStructure.o +0 -0
  43. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractElementFactory.o +0 -0
  44. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractSourceMap.o +0 -0
  45. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/Render.o +0 -0
  46. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/Serialize.o +0 -0
  47. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeAST.o +0 -0
  48. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeResult.o +0 -0
  49. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeSourcemap.o +0 -0
  50. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/drafter.o +0 -0
  51. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/drafter_private.o +0 -0
  52. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/ComparableVisitor.o +0 -0
  53. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Element.o +0 -0
  54. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/ExpandVisitor.o +0 -0
  55. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/IsExpandableVisitor.o +0 -0
  56. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/JSONSchemaVisitor.o +0 -0
  57. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/PrintVisitor.o +0 -0
  58. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Query.o +0 -0
  59. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Registry.o +0 -0
  60. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/RenderJSONVisitor.o +0 -0
  61. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/SerializeCompactVisitor.o +0 -0
  62. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/SerializeVisitor.o +0 -0
  63. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/TypeQueryVisitor.o +0 -0
  64. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/VisitorUtils.o +0 -0
  65. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.o +0 -0
  66. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.o +0 -0
  67. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.o +0 -0
  68. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Blueprint.o +0 -0
  69. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/BlueprintSourcemap.o +0 -0
  70. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HTTP.o +0 -0
  71. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HeadersParser.o +0 -0
  72. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSON.o +0 -0
  73. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONOneOfParser.o +0 -0
  74. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONSourcemap.o +0 -0
  75. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONTypeSectionParser.o +0 -0
  76. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONValueMemberParser.o +0 -0
  77. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Section.o +0 -0
  78. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Signature.o +0 -0
  79. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/UriTemplateParser.o +0 -0
  80. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/posix/RegexMatch.o +0 -0
  81. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/snowcrash.o +0 -0
  82. data/ext/drafter/build/out/Release/obj.target/libsos/ext/sos/src/sos.o +0 -0
  83. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.o +0 -0
  84. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.o +0 -0
  85. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.o +0 -0
  86. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html_smartypants.o +0 -0
  87. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.o +0 -0
  88. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.o +0 -0
  89. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.o +0 -0
  90. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.o +0 -0
  91. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.o +0 -0
  92. data/ext/drafter/circle.yml +32 -0
  93. data/ext/drafter/config.gypi +10 -0
  94. data/ext/drafter/config.mk +5 -0
  95. data/ext/drafter/configure +224 -0
  96. data/ext/drafter/drafter.gyp +189 -0
  97. data/ext/drafter/drafter.xcworkspace/contents.xcworkspacedata +13 -0
  98. data/ext/drafter/ext/snowcrash/Makefile +58 -0
  99. data/ext/drafter/ext/snowcrash/appveyor.yml +7 -0
  100. data/ext/drafter/ext/snowcrash/common.gypi +165 -0
  101. data/ext/drafter/ext/snowcrash/configure +197 -0
  102. data/ext/drafter/ext/snowcrash/ext/markdown-parser/Makefile +90 -0
  103. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/CONTRIBUTING.md +10 -0
  104. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/Makefile +84 -0
  105. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/Makefile.win +33 -0
  106. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/examples/smartypants.c +72 -0
  107. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/examples/sundown.c +80 -0
  108. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini.h +37 -0
  109. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.c +108 -0
  110. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.c +84 -0
  111. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.c +647 -0
  112. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.h +77 -0
  113. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html_smartypants.c +389 -0
  114. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html_block_names.txt +25 -0
  115. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.c +297 -0
  116. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.h +51 -0
  117. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.c +225 -0
  118. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.h +96 -0
  119. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/html_blocks.h +206 -0
  120. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.c +2726 -0
  121. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.h +147 -0
  122. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.c +204 -0
  123. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.h +58 -0
  124. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.c +81 -0
  125. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.h +29 -0
  126. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/sundown.def +20 -0
  127. data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/markdown/markdown.vcproj +188 -0
  128. data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/msvc.sln +38 -0
  129. data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/sundown/sundown.vcproj +206 -0
  130. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.cc +160 -0
  131. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.h +90 -0
  132. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.cc +152 -0
  133. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.h +103 -0
  134. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.cc +388 -0
  135. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.h +106 -0
  136. data/ext/drafter/ext/snowcrash/snowcrash.gyp +196 -0
  137. data/ext/drafter/ext/snowcrash/src/ActionParser.h +560 -0
  138. data/ext/drafter/ext/snowcrash/src/AssetParser.h +123 -0
  139. data/ext/drafter/ext/snowcrash/src/AttributesParser.h +123 -0
  140. data/ext/drafter/ext/snowcrash/src/Blueprint.cc +90 -0
  141. data/ext/drafter/ext/snowcrash/src/Blueprint.h +489 -0
  142. data/ext/drafter/ext/snowcrash/src/BlueprintParser.h +845 -0
  143. data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.cc +81 -0
  144. data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.h +345 -0
  145. data/ext/drafter/ext/snowcrash/src/BlueprintUtility.h +111 -0
  146. data/ext/drafter/ext/snowcrash/src/CodeBlockUtility.h +276 -0
  147. data/ext/drafter/ext/snowcrash/src/DataStructureGroupParser.h +157 -0
  148. data/ext/drafter/ext/snowcrash/src/HTTP.cc +49 -0
  149. data/ext/drafter/ext/snowcrash/src/HTTP.h +108 -0
  150. data/ext/drafter/ext/snowcrash/src/HeadersParser.cc +117 -0
  151. data/ext/drafter/ext/snowcrash/src/HeadersParser.h +377 -0
  152. data/ext/drafter/ext/snowcrash/src/MSON.cc +272 -0
  153. data/ext/drafter/ext/snowcrash/src/MSON.h +405 -0
  154. data/ext/drafter/ext/snowcrash/src/MSONMixinParser.h +103 -0
  155. data/ext/drafter/ext/snowcrash/src/MSONNamedTypeParser.h +135 -0
  156. data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.cc +132 -0
  157. data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.h +80 -0
  158. data/ext/drafter/ext/snowcrash/src/MSONParameterParser.h +166 -0
  159. data/ext/drafter/ext/snowcrash/src/MSONPropertyMemberParser.h +106 -0
  160. data/ext/drafter/ext/snowcrash/src/MSONSourcemap.cc +141 -0
  161. data/ext/drafter/ext/snowcrash/src/MSONSourcemap.h +181 -0
  162. data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.cc +209 -0
  163. data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.h +213 -0
  164. data/ext/drafter/ext/snowcrash/src/MSONUtility.h +506 -0
  165. data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.cc +214 -0
  166. data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.h +390 -0
  167. data/ext/drafter/ext/snowcrash/src/ModelTable.h +87 -0
  168. data/ext/drafter/ext/snowcrash/src/ParameterParser.h +516 -0
  169. data/ext/drafter/ext/snowcrash/src/ParametersParser.h +222 -0
  170. data/ext/drafter/ext/snowcrash/src/PayloadParser.h +733 -0
  171. data/ext/drafter/ext/snowcrash/src/Platform.h +33 -0
  172. data/ext/drafter/ext/snowcrash/src/RegexMatch.h +32 -0
  173. data/ext/drafter/ext/snowcrash/src/RelationParser.h +87 -0
  174. data/ext/drafter/ext/snowcrash/src/ResourceGroupParser.h +297 -0
  175. data/ext/drafter/ext/snowcrash/src/ResourceParser.h +536 -0
  176. data/ext/drafter/ext/snowcrash/src/Section.cc +48 -0
  177. data/ext/drafter/ext/snowcrash/src/Section.h +60 -0
  178. data/ext/drafter/ext/snowcrash/src/SectionParser.h +246 -0
  179. data/ext/drafter/ext/snowcrash/src/SectionParserData.h +109 -0
  180. data/ext/drafter/ext/snowcrash/src/SectionProcessor.h +299 -0
  181. data/ext/drafter/ext/snowcrash/src/Signature.cc +75 -0
  182. data/ext/drafter/ext/snowcrash/src/Signature.h +103 -0
  183. data/ext/drafter/ext/snowcrash/src/SignatureSectionProcessor.h +442 -0
  184. data/ext/drafter/ext/snowcrash/src/SourceAnnotation.h +166 -0
  185. data/ext/drafter/ext/snowcrash/src/StringUtility.h +323 -0
  186. data/ext/drafter/ext/snowcrash/src/UriTemplateParser.cc +195 -0
  187. data/ext/drafter/ext/snowcrash/src/UriTemplateParser.h +240 -0
  188. data/ext/drafter/ext/snowcrash/src/ValuesParser.h +111 -0
  189. data/ext/drafter/ext/snowcrash/src/posix/RegexMatch.cc +99 -0
  190. data/ext/drafter/ext/snowcrash/src/snowcrash.cc +90 -0
  191. data/ext/drafter/ext/snowcrash/src/snowcrash.h +44 -0
  192. data/ext/drafter/ext/snowcrash/src/win/RegexMatch.cc +78 -0
  193. data/ext/drafter/ext/snowcrash/tools/gyp/AUTHORS +12 -0
  194. data/ext/drafter/ext/snowcrash/tools/gyp/DEPS +23 -0
  195. data/ext/drafter/ext/snowcrash/tools/gyp/OWNERS +1 -0
  196. data/ext/drafter/ext/snowcrash/tools/gyp/PRESUBMIT.py +137 -0
  197. data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/buildbot_run.py +136 -0
  198. data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/commit_queue/OWNERS +6 -0
  199. data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/commit_queue/cq_config.json +15 -0
  200. data/ext/drafter/ext/snowcrash/tools/gyp/codereview.settings +10 -0
  201. data/ext/drafter/ext/snowcrash/tools/gyp/data/win/large-pdb-shim.cc +12 -0
  202. data/ext/drafter/ext/snowcrash/tools/gyp/gyp +8 -0
  203. data/ext/drafter/ext/snowcrash/tools/gyp/gyp.bat +5 -0
  204. data/ext/drafter/ext/snowcrash/tools/gyp/gyp_main.py +16 -0
  205. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSNew.py +340 -0
  206. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSProject.py +208 -0
  207. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSSettings.py +1096 -0
  208. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSToolFile.py +58 -0
  209. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUserFile.py +147 -0
  210. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUtil.py +270 -0
  211. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUtil.pyc +0 -0
  212. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSVersion.py +445 -0
  213. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSVersion.pyc +0 -0
  214. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/__init__.py +548 -0
  215. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/__init__.pyc +0 -0
  216. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.py +608 -0
  217. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.pyc +0 -0
  218. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/easy_xml.py +157 -0
  219. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/flock_tool.py +54 -0
  220. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.py +0 -0
  221. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.pyc +0 -0
  222. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/analyzer.py +741 -0
  223. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/android.py +1069 -0
  224. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/cmake.py +1248 -0
  225. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/dump_dependency_json.py +99 -0
  226. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/eclipse.py +425 -0
  227. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/gypd.py +94 -0
  228. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/gypsh.py +56 -0
  229. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.py +2218 -0
  230. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.pyc +0 -0
  231. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/msvs.py +3467 -0
  232. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja.py +2427 -0
  233. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja.pyc +0 -0
  234. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.py +1300 -0
  235. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.pyc +0 -0
  236. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/input.py +2899 -0
  237. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/input.pyc +0 -0
  238. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/mac_tool.py +605 -0
  239. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/msvs_emulation.py +1093 -0
  240. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/msvs_emulation.pyc +0 -0
  241. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ninja_syntax.py +160 -0
  242. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ninja_syntax.pyc +0 -0
  243. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ordered_dict.py +289 -0
  244. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/simple_copy.py +46 -0
  245. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/simple_copy.pyc +0 -0
  246. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/win_tool.py +314 -0
  247. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.py +1664 -0
  248. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.pyc +0 -0
  249. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_ninja.py +276 -0
  250. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_ninja.pyc +0 -0
  251. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.py +2927 -0
  252. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.pyc +0 -0
  253. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xml_fix.py +69 -0
  254. data/ext/drafter/ext/snowcrash/tools/gyp/pylintrc +307 -0
  255. data/ext/drafter/ext/snowcrash/tools/gyp/samples/samples +81 -0
  256. data/ext/drafter/ext/snowcrash/tools/gyp/samples/samples.bat +5 -0
  257. data/ext/drafter/ext/snowcrash/tools/gyp/setup.py +19 -0
  258. data/ext/drafter/ext/snowcrash/tools/gyp/tools/Xcode/Specifications/gyp.pbfilespec +27 -0
  259. data/ext/drafter/ext/snowcrash/tools/gyp/tools/Xcode/Specifications/gyp.xclangspec +226 -0
  260. data/ext/drafter/ext/snowcrash/tools/gyp/tools/emacs/gyp.el +275 -0
  261. data/ext/drafter/ext/snowcrash/tools/gyp/tools/graphviz.py +100 -0
  262. data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_gyp.py +155 -0
  263. data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_sln.py +169 -0
  264. data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_vcproj.py +329 -0
  265. data/ext/drafter/ext/snowcrash/vcbuild.bat +139 -0
  266. data/ext/drafter/ext/sos/Makefile +62 -0
  267. data/ext/drafter/ext/sos/src/sos.cc +235 -0
  268. data/ext/drafter/ext/sos/src/sos.h +188 -0
  269. data/ext/drafter/ext/sos/src/sosJSON.h +121 -0
  270. data/ext/drafter/ext/sos/src/sosYAML.h +105 -0
  271. data/ext/drafter/src/ConversionContext.cc +39 -0
  272. data/ext/drafter/src/ConversionContext.h +34 -0
  273. data/ext/drafter/src/NamedTypesRegistry.cc +405 -0
  274. data/ext/drafter/src/NamedTypesRegistry.h +28 -0
  275. data/ext/drafter/src/NodeInfo.h +143 -0
  276. data/ext/drafter/src/RefractAPI.cc +579 -0
  277. data/ext/drafter/src/RefractAPI.h +28 -0
  278. data/ext/drafter/src/RefractDataStructure.cc +1199 -0
  279. data/ext/drafter/src/RefractDataStructure.h +26 -0
  280. data/ext/drafter/src/RefractElementFactory.cc +107 -0
  281. data/ext/drafter/src/RefractElementFactory.h +67 -0
  282. data/ext/drafter/src/RefractSourceMap.cc +29 -0
  283. data/ext/drafter/src/RefractSourceMap.h +57 -0
  284. data/ext/drafter/src/Render.cc +157 -0
  285. data/ext/drafter/src/Render.h +40 -0
  286. data/ext/drafter/src/Serialize.cc +160 -0
  287. data/ext/drafter/src/Serialize.h +289 -0
  288. data/ext/drafter/src/SerializeAST.cc +507 -0
  289. data/ext/drafter/src/SerializeAST.h +29 -0
  290. data/ext/drafter/src/SerializeResult.cc +170 -0
  291. data/ext/drafter/src/SerializeResult.h +34 -0
  292. data/ext/drafter/src/SerializeSourcemap.cc +331 -0
  293. data/ext/drafter/src/SerializeSourcemap.h +21 -0
  294. data/ext/drafter/src/Version.h +40 -0
  295. data/ext/drafter/src/config.cc +91 -0
  296. data/ext/drafter/src/config.h +38 -0
  297. data/ext/drafter/src/drafter.cc +137 -0
  298. data/ext/drafter/src/drafter.h +102 -0
  299. data/ext/drafter/src/drafter_private.cc +85 -0
  300. data/ext/drafter/src/drafter_private.h +34 -0
  301. data/ext/drafter/src/main.cc +137 -0
  302. data/ext/drafter/src/refract/AppendDecorator.h +58 -0
  303. data/ext/drafter/src/refract/Build.h +67 -0
  304. data/ext/drafter/src/refract/ComparableVisitor.cc +43 -0
  305. data/ext/drafter/src/refract/ComparableVisitor.h +62 -0
  306. data/ext/drafter/src/refract/Element.cc +409 -0
  307. data/ext/drafter/src/refract/Element.h +656 -0
  308. data/ext/drafter/src/refract/ElementFwd.h +37 -0
  309. data/ext/drafter/src/refract/ElementInserter.h +59 -0
  310. data/ext/drafter/src/refract/Exception.h +31 -0
  311. data/ext/drafter/src/refract/ExpandVisitor.cc +359 -0
  312. data/ext/drafter/src/refract/ExpandVisitor.h +58 -0
  313. data/ext/drafter/src/refract/FilterVisitor.h +52 -0
  314. data/ext/drafter/src/refract/IsExpandableVisitor.cc +140 -0
  315. data/ext/drafter/src/refract/IsExpandableVisitor.h +31 -0
  316. data/ext/drafter/src/refract/Iterate.h +160 -0
  317. data/ext/drafter/src/refract/JSONSchemaVisitor.cc +675 -0
  318. data/ext/drafter/src/refract/JSONSchemaVisitor.h +73 -0
  319. data/ext/drafter/src/refract/PrintVisitor.cc +164 -0
  320. data/ext/drafter/src/refract/PrintVisitor.h +50 -0
  321. data/ext/drafter/src/refract/Query.cc +13 -0
  322. data/ext/drafter/src/refract/Query.h +38 -0
  323. data/ext/drafter/src/refract/Registry.cc +114 -0
  324. data/ext/drafter/src/refract/Registry.h +43 -0
  325. data/ext/drafter/src/refract/RenderJSONVisitor.cc +255 -0
  326. data/ext/drafter/src/refract/RenderJSONVisitor.h +51 -0
  327. data/ext/drafter/src/refract/SerializeCompactVisitor.cc +167 -0
  328. data/ext/drafter/src/refract/SerializeCompactVisitor.h +56 -0
  329. data/ext/drafter/src/refract/SerializeVisitor.cc +214 -0
  330. data/ext/drafter/src/refract/SerializeVisitor.h +55 -0
  331. data/ext/drafter/src/refract/TypeQueryVisitor.cc +46 -0
  332. data/ext/drafter/src/refract/TypeQueryVisitor.h +110 -0
  333. data/ext/drafter/src/refract/Visitor.h +126 -0
  334. data/ext/drafter/src/refract/VisitorUtils.cc +63 -0
  335. data/ext/drafter/src/refract/VisitorUtils.h +231 -0
  336. data/ext/drafter/src/reporting.cc +263 -0
  337. data/ext/drafter/src/reporting.h +39 -0
  338. data/ext/drafter/src/stream.h +148 -0
  339. data/ext/drafter/tools/homebrew/drafter.rb +18 -0
  340. data/ext/drafter/tools/make-tarball.sh +39 -0
  341. data/ext/drafter/tools/refract-filter.py +96 -0
  342. data/ext/drafter/tools/release.sh +17 -0
  343. data/ext/drafter/vcbuild.bat +203 -0
  344. data/lib/lounge_lizard/binding.rb +29 -0
  345. data/lib/lounge_lizard/version.rb +3 -0
  346. data/lib/lounge_lizard.rb +18 -0
  347. data/lounge_lizard.gemspec +37 -0
  348. metadata +547 -0
@@ -0,0 +1,103 @@
1
+ //
2
+ // MSONMixinParser.h
3
+ // snowcrash
4
+ //
5
+ // Created by Pavan Kumar Sunkara on 11/5/14.
6
+ // Copyright (c) 2014 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #ifndef SNOWCRASH_MSONMIXINPARSER_H
10
+ #define SNOWCRASH_MSONMIXINPARSER_H
11
+
12
+ #include "SectionParser.h"
13
+ #include "MSONUtility.h"
14
+
15
+ using namespace scpl;
16
+
17
+ namespace snowcrash {
18
+
19
+ /** MSON Mixin matching regex */
20
+ const char* const MSONMixinRegex = "^[[:blank:]]*([Ii]nclude[[:blank:]]+)";
21
+
22
+ /**
23
+ * MSON Mixin Section Processor
24
+ */
25
+ template<>
26
+ struct SectionProcessor<mson::Mixin> : public SignatureSectionProcessorBase<mson::Mixin> {
27
+
28
+ static SignatureTraits signatureTraits() {
29
+
30
+ SignatureTraits signatureTraits(SignatureTraits::IdentifierTrait |
31
+ SignatureTraits::AttributesTrait);
32
+
33
+ return signatureTraits;
34
+ }
35
+
36
+ static MarkdownNodeIterator finalizeSignature(const MarkdownNodeIterator& node,
37
+ SectionParserData& pd,
38
+ const Signature& signature,
39
+ const ParseResultRef<mson::Mixin>& out) {
40
+
41
+ CaptureGroups captureGroups;
42
+ std::vector<mdp::ByteBuffer> attributes = signature.attributes;
43
+
44
+ if (RegexCapture(signature.identifier, MSONMixinRegex, captureGroups, 2) &&
45
+ !captureGroups[1].empty()) {
46
+
47
+ // Get the type name and insert it into attributes
48
+ std::string typeName = signature.identifier.substr(captureGroups[1].length());
49
+ attributes.insert(attributes.begin(), typeName);
50
+ }
51
+
52
+ mson::parseTypeDefinition(node, pd, attributes, out.report, out.node);
53
+
54
+ if (pd.exportSourceMap()) {
55
+ out.sourceMap.sourceMap = node->sourceMap;
56
+ }
57
+
58
+ if ((out.node.baseType == mson::PrimitiveBaseType) ||
59
+ (out.node.baseType == mson::UndefinedBaseType)) {
60
+
61
+ // WARN: invalid mixin base type
62
+ mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
63
+ out.report.warnings.push_back(Warning("mixin type may not include a type of a primitive sub-type",
64
+ FormattingWarning,
65
+ sourceMap));
66
+ }
67
+
68
+ // Check circular references
69
+ if (out.node.typeSpecification.name.base == mson::UndefinedTypeName &&
70
+ !out.node.typeSpecification.name.symbol.literal.empty() &&
71
+ !out.node.typeSpecification.name.symbol.variable) {
72
+
73
+ mson::addDependency(node, pd, out.node.typeSpecification.name.symbol.literal, pd.namedTypeContext, out.report, true);
74
+ }
75
+
76
+ return ++MarkdownNodeIterator(node);
77
+ }
78
+
79
+ NO_SECTION_DESCRIPTION(mson::Mixin)
80
+
81
+ static SectionType sectionType(const MarkdownNodeIterator& node) {
82
+
83
+ if (node->type == mdp::ListItemMarkdownNodeType
84
+ && !node->children().empty()) {
85
+
86
+ mdp::ByteBuffer subject = node->children().front().text;
87
+
88
+ TrimString(subject);
89
+
90
+ if (RegexMatch(subject, MSONMixinRegex)) {
91
+ return MSONMixinSectionType;
92
+ }
93
+ }
94
+
95
+ return UndefinedSectionType;
96
+ }
97
+ };
98
+
99
+ /** MSON Mixin Section Parser */
100
+ typedef SectionParser<mson::Mixin, ListSectionAdapter> MSONMixinParser;
101
+ }
102
+
103
+ #endif
@@ -0,0 +1,135 @@
1
+ //
2
+ // MSONNamedTypeParser.h
3
+ // snowcrash
4
+ //
5
+ // Created by Pavan Kumar Sunkara on 11/5/14.
6
+ // Copyright (c) 2014 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #ifndef SNOWCRASH_MSONNAMEDTYPEPARSER_H
10
+ #define SNOWCRASH_MSONNAMEDTYPEPARSER_H
11
+
12
+ #include "MSONValueMemberParser.h"
13
+
14
+ using namespace scpl;
15
+
16
+ namespace snowcrash {
17
+
18
+ /** MSON reserved characters matching regex */
19
+ const char* const MSONReservedCharsRegex = "[]:\()<>\{}[_*+`-]+";
20
+
21
+ /**
22
+ * MSON Named Type Section Processor
23
+ */
24
+ template<>
25
+ struct SectionProcessor<mson::NamedType> : public SignatureSectionProcessorBase<mson::NamedType> {
26
+
27
+ static SignatureTraits signatureTraits() {
28
+
29
+
30
+ SignatureTraits signatureTraits(SignatureTraits::IdentifierTrait |
31
+ SignatureTraits::AttributesTrait);
32
+
33
+ return signatureTraits;
34
+ }
35
+
36
+ static MarkdownNodeIterator finalizeSignature(const MarkdownNodeIterator& node,
37
+ SectionParserData& pd,
38
+ const Signature& signature,
39
+ const ParseResultRef<mson::NamedType>& out) {
40
+
41
+ mson::parseTypeName(signature.identifier, out.node.name, false);
42
+ mson::parseTypeDefinition(node, pd, signature.attributes, out.report, out.node.typeDefinition);
43
+
44
+ mdp::ByteBuffer subject = node->text;
45
+ TrimString(subject);
46
+
47
+ if (subject[0] != '`' && RegexMatch(out.node.name.symbol.literal, MSONReservedCharsRegex)) {
48
+
49
+ // WARN: named type name should not contain reserved characters
50
+ mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
51
+ out.report.warnings.push_back(Warning("please escape the name of the data structure using backticks since it contains MSON reserved characters",
52
+ FormattingWarning,
53
+ sourceMap));
54
+ }
55
+
56
+ if (pd.exportSourceMap()) {
57
+
58
+ if (!out.node.name.empty()) {
59
+ out.sourceMap.name.sourceMap = node->sourceMap;
60
+ }
61
+
62
+ if (!out.node.typeDefinition.empty()) {
63
+ out.sourceMap.typeDefinition.sourceMap = node->sourceMap;
64
+ }
65
+ }
66
+
67
+ // Named types should have type specification when sub-typed from primitive types
68
+ if (out.node.typeDefinition.baseType == mson::UndefinedBaseType) {
69
+ out.node.typeDefinition.baseType = mson::ImplicitObjectBaseType;
70
+ }
71
+
72
+ // Setup named type context
73
+ pd.namedTypeContext = out.node.name.symbol.literal;
74
+
75
+ return ++MarkdownNodeIterator(node);
76
+ }
77
+
78
+ static MarkdownNodeIterator processDescription(const MarkdownNodeIterator& node,
79
+ const MarkdownNodes& siblings,
80
+ SectionParserData& pd,
81
+ const ParseResultRef<mson::NamedType>& out) {
82
+
83
+ return SectionProcessor<mson::ValueMember>::blockDescription(node, pd, out.node.sections, out.sourceMap.sections);
84
+ }
85
+
86
+ static MarkdownNodeIterator processNestedSection(const MarkdownNodeIterator& node,
87
+ const MarkdownNodes& siblings,
88
+ SectionParserData& pd,
89
+ const ParseResultRef<mson::NamedType>& out) {
90
+
91
+ ParseResultRef<mson::TypeSections> typeSections(out.report, out.node.sections, out.sourceMap.sections);
92
+
93
+ return SectionProcessor<mson::ValueMember>
94
+ ::processNestedMembers<MSONTypeSectionHeaderParser>(node, siblings, pd, typeSections,
95
+ out.node.typeDefinition.baseType);
96
+ }
97
+
98
+ static bool isDescriptionNode(const MarkdownNodeIterator& node,
99
+ SectionType sectionType) {
100
+
101
+ return SectionProcessor<mson::ValueMember>::isDescriptionNode(node, sectionType);
102
+ }
103
+
104
+ static SectionType sectionType(const MarkdownNodeIterator& node) {
105
+
106
+ SectionType sectionType = SectionKeywordSignature(node);
107
+
108
+ if (node->type == mdp::HeaderMarkdownNodeType &&
109
+ sectionType == UndefinedSectionType) {
110
+
111
+ return MSONNamedTypeSectionType;
112
+ }
113
+
114
+ return UndefinedSectionType;
115
+ }
116
+
117
+ static SectionType nestedSectionType(const MarkdownNodeIterator& node) {
118
+
119
+ return SectionProcessor<mson::ValueMember>::nestedSectionType(node);
120
+ }
121
+
122
+ static void finalize(const MarkdownNodeIterator& node,
123
+ SectionParserData& pd,
124
+ const ParseResultRef<mson::NamedType>& out) {
125
+
126
+ // Clear named type context
127
+ pd.namedTypeContext.clear();
128
+ }
129
+ };
130
+
131
+ /** MSON Named Type Section Parser */
132
+ typedef SectionParser<mson::NamedType, HeaderSectionAdapter> MSONNamedTypeParser;
133
+ }
134
+
135
+ #endif
@@ -0,0 +1,132 @@
1
+ //
2
+ // MSONOneOfParser.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Pavan Kumar Sunkara on 11/12/14.
6
+ // Copyright (c) 2014 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "MSONOneOfParser.h"
10
+ #include "MSONTypeSectionParser.h"
11
+ #include "MSONPropertyMemberParser.h"
12
+
13
+ namespace snowcrash {
14
+
15
+ /** Implementation of processNestedSection */
16
+ MarkdownNodeIterator SectionProcessor<mson::OneOf>::processNestedSection(const MarkdownNodeIterator& node,
17
+ const MarkdownNodes& siblings,
18
+ SectionParserData& pd,
19
+ const ParseResultRef<mson::OneOf>& out) {
20
+
21
+ MarkdownNodeIterator cur = node;
22
+ mson::Element element;
23
+ SourceMap<mson::Element> elementSM;
24
+
25
+ switch (pd.sectionContext()) {
26
+ case MSONMixinSectionType:
27
+ {
28
+ IntermediateParseResult<mson::Mixin> mixin(out.report);
29
+ cur = MSONMixinParser::parse(node, siblings, pd, mixin);
30
+
31
+ element.build(mixin.node);
32
+
33
+ if (pd.exportSourceMap()) {
34
+ elementSM.mixin = mixin.sourceMap;
35
+ }
36
+
37
+ break;
38
+ }
39
+
40
+ case MSONOneOfSectionType:
41
+ {
42
+ IntermediateParseResult<mson::OneOf> oneOf(out.report);
43
+ cur = MSONOneOfParser::parse(node, siblings, pd, oneOf);
44
+
45
+ element.build(oneOf.node);
46
+
47
+ if (pd.exportSourceMap()) {
48
+ elementSM = oneOf.sourceMap;
49
+ }
50
+
51
+ break;
52
+ }
53
+
54
+ case MSONPropertyMembersSectionType:
55
+ {
56
+ IntermediateParseResult<mson::TypeSection> typeSection(out.report);
57
+ typeSection.node.baseType = mson::ObjectBaseType;
58
+
59
+ cur = MSONTypeSectionListParser::parse(node, siblings, pd, typeSection);
60
+
61
+ element.buildFromElements(typeSection.node.content.elements());
62
+
63
+ if (pd.exportSourceMap()) {
64
+ elementSM = typeSection.sourceMap.elements();
65
+ }
66
+
67
+ break;
68
+ }
69
+
70
+ case MSONPropertyMemberSectionType:
71
+ {
72
+ IntermediateParseResult<mson::PropertyMember> propertyMember(out.report);
73
+ cur = MSONPropertyMemberParser::parse(node, siblings, pd, propertyMember);
74
+
75
+ element.build(propertyMember.node);
76
+
77
+ if (pd.exportSourceMap()) {
78
+ elementSM.property = propertyMember.sourceMap;
79
+ }
80
+
81
+ break;
82
+ }
83
+
84
+ default:
85
+ break;
86
+ }
87
+
88
+ if (element.klass != mson::Element::UndefinedClass) {
89
+ out.node.push_back(element);
90
+
91
+ if (pd.exportSourceMap()) {
92
+ out.sourceMap.collection.push_back(elementSM);
93
+ }
94
+ }
95
+
96
+ return cur;
97
+ }
98
+
99
+ /** Implementation of nestedSectionType */
100
+ SectionType SectionProcessor<mson::OneOf>::nestedSectionType(const MarkdownNodeIterator& node) {
101
+
102
+ SectionType nestedType = UndefinedSectionType;
103
+
104
+ // Check if mson mixin section
105
+ nestedType = SectionProcessor<mson::Mixin>::sectionType(node);
106
+
107
+ if (nestedType != UndefinedSectionType) {
108
+ return nestedType;
109
+ }
110
+
111
+ // Check if mson one of section
112
+ nestedType = SectionProcessor<mson::OneOf>::sectionType(node);
113
+
114
+ if (nestedType != UndefinedSectionType) {
115
+ return nestedType;
116
+ }
117
+
118
+ // Check if mson member type section section
119
+ nestedType = SectionProcessor<mson::TypeSection>::sectionType(node);
120
+
121
+ if (nestedType != UndefinedSectionType) {
122
+ return nestedType;
123
+ }
124
+
125
+ // Return property member type section if list item
126
+ if (node->type == mdp::ListItemMarkdownNodeType) {
127
+ return MSONPropertyMemberSectionType;
128
+ }
129
+
130
+ return UndefinedSectionType;
131
+ }
132
+ }
@@ -0,0 +1,80 @@
1
+ //
2
+ // MSONOneOfParser.h
3
+ // snowcrash
4
+ //
5
+ // Created by Pavan Kumar Sunkara on 11/5/14.
6
+ // Copyright (c) 2014 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #ifndef SNOWCRASH_MSONONEOFPARSER_H
10
+ #define SNOWCRASH_MSONONEOFPARSER_H
11
+
12
+ #include "MSONMixinParser.h"
13
+
14
+ using namespace scpl;
15
+
16
+ namespace snowcrash {
17
+
18
+ /** MSON One Of matching regex */
19
+ const char* const MSONOneOfRegex = "^[[:blank:]]*[Oo]ne[[:blank:]]+[Oo]f[[:blank:]]*$";
20
+
21
+ /**
22
+ * MSON One Of Section Processor
23
+ */
24
+ template<>
25
+ struct SectionProcessor<mson::OneOf> : public SignatureSectionProcessorBase<mson::OneOf> {
26
+
27
+ static SignatureTraits signatureTraits() {
28
+
29
+ SignatureTraits signatureTraits(SignatureTraits::IdentifierTrait);
30
+
31
+ return signatureTraits;
32
+ }
33
+
34
+ NO_SECTION_DESCRIPTION(mson::OneOf)
35
+
36
+ static MarkdownNodeIterator processNestedSection(const MarkdownNodeIterator&,
37
+ const MarkdownNodes&,
38
+ SectionParserData&,
39
+ const ParseResultRef<mson::OneOf>&);
40
+
41
+ static void finalize(const MarkdownNodeIterator& node,
42
+ SectionParserData& pd,
43
+ const ParseResultRef<mson::OneOf>& out) {
44
+
45
+ if (out.node.empty()) {
46
+
47
+ // WARN: one of type do not have nested members
48
+ mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
49
+ out.report.warnings.push_back(Warning("one of type must have nested members",
50
+ EmptyDefinitionWarning,
51
+ sourceMap));
52
+ }
53
+ }
54
+
55
+ static SectionType sectionType(const MarkdownNodeIterator& node) {
56
+
57
+ if (node->type == mdp::ListItemMarkdownNodeType
58
+ && !node->children().empty()) {
59
+
60
+ mdp::ByteBuffer remaining, subject = node->children().front().text;
61
+
62
+ subject = GetFirstLine(subject, remaining);
63
+ TrimString(subject);
64
+
65
+ if (RegexMatch(subject, MSONOneOfRegex)) {
66
+ return MSONOneOfSectionType;
67
+ }
68
+ }
69
+
70
+ return UndefinedSectionType;
71
+ }
72
+
73
+ static SectionType nestedSectionType(const MarkdownNodeIterator&);
74
+ };
75
+
76
+ /** MSON One Of Section Parser */
77
+ typedef SectionParser<mson::OneOf, ListSectionAdapter> MSONOneOfParser;
78
+ }
79
+
80
+ #endif
@@ -0,0 +1,166 @@
1
+ //
2
+ // MSONParameterParser.h
3
+ // snowcrash
4
+ //
5
+ // Created by Pavan Kumar Sunkara on 12/03/15.
6
+ // Copyright (c) 2015 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #ifndef SNOWCRASH_MSONPARAMETERPARSER_H
10
+ #define SNOWCRASH_MSONPARAMETERPARSER_H
11
+
12
+ #include "ParameterParser.h"
13
+ #include "MSONValueMemberParser.h"
14
+ #include "MSONTypeSectionParser.h"
15
+
16
+ using namespace scpl;
17
+
18
+ namespace snowcrash {
19
+
20
+ /**
21
+ * MSON Parameter Section Processor
22
+ */
23
+ template<>
24
+ struct SectionProcessor<MSONParameter> : public SignatureSectionProcessorBase<MSONParameter> {
25
+
26
+ static SignatureTraits signatureTraits() {
27
+
28
+ SignatureTraits signatureTraits(SignatureTraits::IdentifierTrait |
29
+ SignatureTraits::ValuesTrait |
30
+ SignatureTraits::AttributesTrait |
31
+ SignatureTraits::ContentTrait);
32
+
33
+ return signatureTraits;
34
+ }
35
+
36
+ static MarkdownNodeIterator finalizeSignature(const MarkdownNodeIterator& node,
37
+ SectionParserData& pd,
38
+ const Signature& signature,
39
+ const ParseResultRef<MSONParameter>& out) {
40
+
41
+ out.node.name = signature.identifier;
42
+ out.node.description = signature.content;
43
+ out.node.exampleValue = signature.value;
44
+
45
+ if (!signature.remainingContent.empty()) {
46
+ out.node.description += "\n" + signature.remainingContent + "\n";
47
+ }
48
+
49
+ SectionProcessor<Parameter>::parseAttributes(node, pd, signature.attributes, out, false);
50
+
51
+ if (pd.exportSourceMap()) {
52
+ if (!out.node.name.empty()) {
53
+ out.sourceMap.name.sourceMap = node->sourceMap;
54
+ }
55
+
56
+ if (!out.node.description.empty()) {
57
+ out.sourceMap.description.sourceMap = node->sourceMap;
58
+ }
59
+
60
+ if (!out.node.exampleValue.empty()) {
61
+ out.sourceMap.exampleValue.sourceMap = node->sourceMap;
62
+ }
63
+ }
64
+
65
+ return ++MarkdownNodeIterator(node);
66
+ }
67
+
68
+ static MarkdownNodeIterator processNestedSection(const MarkdownNodeIterator& node,
69
+ const MarkdownNodes& siblings,
70
+ SectionParserData& pd,
71
+ const ParseResultRef<MSONParameter>& out) {
72
+
73
+ SectionType sectionType = pd.sectionContext();
74
+ MarkdownNodeIterator cur = node;
75
+ IntermediateParseResult<mson::TypeSection> typeSection(out.report);
76
+
77
+ switch (sectionType) {
78
+ case MSONSampleDefaultSectionType:
79
+ {
80
+ typeSection.node.baseType = mson::ImplicitPrimitiveBaseType;
81
+ cur = MSONTypeSectionListParser::parse(node, siblings, pd, typeSection);
82
+
83
+ if (typeSection.node.content.value.empty()) {
84
+ break;
85
+ }
86
+
87
+ if (typeSection.node.klass == mson::TypeSection::DefaultClass) {
88
+ out.node.defaultValue = typeSection.node.content.value;
89
+
90
+ if (pd.exportSourceMap()) {
91
+ out.sourceMap.defaultValue.sourceMap = typeSection.sourceMap.value.sourceMap;
92
+ }
93
+ }
94
+ else if (typeSection.node.klass == mson::TypeSection::SampleClass) {
95
+ out.node.exampleValue = typeSection.node.content.value;
96
+ out.sourceMap.exampleValue.sourceMap = typeSection.sourceMap.value.sourceMap;
97
+ }
98
+
99
+ break;
100
+ }
101
+
102
+ case MSONValueMembersSectionType:
103
+ {
104
+ typeSection.node.baseType = mson::ImplicitValueBaseType;
105
+ cur = MSONTypeSectionListParser::parse(node, siblings, pd, typeSection);
106
+
107
+ out.node.values.clear();
108
+
109
+ if (pd.exportSourceMap()) {
110
+ out.sourceMap.values.collection.clear();
111
+ }
112
+
113
+ for (size_t i = 0; i < typeSection.node.content.elements().size(); i++) {
114
+ mson::ValueMember valueMember = typeSection.node.content.elements().at(i).content.value;
115
+ SourceMap<mson::ValueMember> valueMemberSM;
116
+
117
+ if (pd.exportSourceMap()) {
118
+ valueMemberSM = typeSection.sourceMap.elements().collection.at(i).value;
119
+ }
120
+
121
+ if (valueMember.valueDefinition.values.size() == 1) {
122
+ out.node.values.push_back(valueMember.valueDefinition.values[0].literal);
123
+
124
+ if (pd.exportSourceMap()) {
125
+ SourceMap<Value> valueSM;
126
+ valueSM.sourceMap = valueMemberSM.valueDefinition.sourceMap;
127
+
128
+ out.sourceMap.values.collection.push_back(valueSM);
129
+ }
130
+ }
131
+ }
132
+
133
+ break;
134
+ }
135
+
136
+ default:
137
+ break;
138
+ }
139
+
140
+ return cur;
141
+ }
142
+
143
+ static void finalize(const MarkdownNodeIterator& node,
144
+ SectionParserData& pd,
145
+ const ParseResultRef<MSONParameter>& out) {
146
+
147
+ SectionProcessor<Parameter>::checkDefaultAndRequiredClash<MSONParameter>(node, pd, out);
148
+ SectionProcessor<Parameter>::checkExampleAndDefaultValue<MSONParameter>(node, pd, out);
149
+ }
150
+
151
+ static SectionType nestedSectionType(const MarkdownNodeIterator& node) {
152
+
153
+ SectionType nestedType = UndefinedSectionType;
154
+
155
+ // Recognize `Default` and `Members` sections
156
+ nestedType = SectionProcessor<mson::TypeSection>::sectionType(node);
157
+
158
+ return nestedType;
159
+ }
160
+ };
161
+
162
+ /** MSON Parameter Section Parser */
163
+ typedef SectionParser<MSONParameter, ListSectionAdapter> MSONParameterParser;
164
+ }
165
+
166
+ #endif