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,272 @@
1
+ //
2
+ // MSON.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Pavan Kumar Sunkara on 11/4/14.
6
+ // Copyright (c) 2014 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "MSON.h"
10
+
11
+ using namespace mson;
12
+
13
+ bool Value::empty() const
14
+ {
15
+ return (this->literal.empty() && this->variable == false);
16
+ }
17
+
18
+ bool Symbol::empty() const
19
+ {
20
+ return (this->literal.empty() && this->variable == false);
21
+ }
22
+
23
+ bool TypeName::empty() const
24
+ {
25
+ return (this->base == UndefinedTypeName && this->symbol.empty());
26
+ }
27
+
28
+ bool TypeSpecification::empty() const
29
+ {
30
+ return (this->nestedTypes.empty() && this->name.empty());
31
+ }
32
+
33
+ bool TypeDefinition::empty() const
34
+ {
35
+ return (this->attributes == 0 && this->typeSpecification.empty());
36
+ }
37
+
38
+ bool ValueDefinition::empty() const
39
+ {
40
+ return (this->values.empty() && this->typeDefinition.empty());
41
+ }
42
+
43
+ Elements& TypeSection::Content::elements()
44
+ {
45
+ if (!m_elements.get())
46
+ throw ELEMENTS_NOT_SET_ERR;
47
+
48
+ return *m_elements;
49
+ }
50
+
51
+ const Elements& TypeSection::Content::elements() const
52
+ {
53
+ if (!m_elements.get())
54
+ throw ELEMENTS_NOT_SET_ERR;
55
+
56
+ return *m_elements;
57
+ }
58
+
59
+ TypeSection::Content::Content(const Markdown& description_, const Literal& value_)
60
+ : description(description_), value(value_)
61
+ {
62
+ m_elements.reset(::new Elements);
63
+ }
64
+
65
+ TypeSection::Content::Content(const TypeSection::Content& rhs)
66
+ {
67
+ this->description = rhs.description;
68
+ this->value = rhs.value;
69
+ m_elements.reset(::new Elements(*rhs.m_elements.get()));
70
+ }
71
+
72
+ TypeSection::Content& TypeSection::Content::operator=(const TypeSection::Content& rhs)
73
+ {
74
+ this->description = rhs.description;
75
+ this->value = rhs.value;
76
+ m_elements.reset(::new Elements(*rhs.m_elements.get()));
77
+
78
+ return *this;
79
+ }
80
+
81
+ TypeSection::Content::~Content()
82
+ {
83
+ }
84
+
85
+ bool TypeSection::empty() const
86
+ {
87
+ return (this->klass == TypeSection::UndefinedClass &&
88
+ this->content.value.empty() &&
89
+ this->content.description.empty() &&
90
+ this->content.elements().empty());
91
+ }
92
+
93
+ bool NamedType::empty() const
94
+ {
95
+ return (this->typeDefinition.empty() &&
96
+ this->name.empty() &&
97
+ this->sections.empty());
98
+ }
99
+
100
+ bool ValueMember::empty() const
101
+ {
102
+ return (this->valueDefinition.empty() && this->sections.empty() &&
103
+ this->description.empty());
104
+ }
105
+
106
+ bool PropertyName::empty() const
107
+ {
108
+ return (this->literal.empty() && this->variable.empty());
109
+ }
110
+
111
+ bool PropertyMember::empty() const
112
+ {
113
+ return (this->name.empty() && this->description.empty() &&
114
+ this->sections.empty() && this->valueDefinition.empty());
115
+ }
116
+
117
+ OneOf& Element::Content::oneOf()
118
+ {
119
+ if (!m_elements.get())
120
+ throw ELEMENTS_NOT_SET_ERR;
121
+
122
+ return *m_elements;
123
+ }
124
+
125
+ const OneOf& Element::Content::oneOf() const
126
+ {
127
+ if (!m_elements.get())
128
+ throw ELEMENTS_NOT_SET_ERR;
129
+
130
+ return *m_elements;
131
+ }
132
+
133
+ Elements& Element::Content::elements()
134
+ {
135
+ if (!m_elements.get())
136
+ throw ELEMENTS_NOT_SET_ERR;
137
+
138
+ return *m_elements;
139
+ }
140
+
141
+ const Elements& Element::Content::elements() const
142
+ {
143
+ if (!m_elements.get())
144
+ throw ELEMENTS_NOT_SET_ERR;
145
+
146
+ return *m_elements;
147
+ }
148
+
149
+ Element::Content& Element::Content::operator=(const Elements& rhs)
150
+ {
151
+ m_elements.reset(::new Elements(rhs));
152
+
153
+ return *this;
154
+ }
155
+
156
+ Element::Content::Content()
157
+ {
158
+ m_elements.reset(::new Elements);
159
+ }
160
+
161
+ Element::Content::Content(const Element::Content& rhs)
162
+ {
163
+ this->property = rhs.property;
164
+ this->value = rhs.value;
165
+ this->mixin = rhs.mixin;
166
+ m_elements.reset(::new Elements(*rhs.m_elements.get()));
167
+ }
168
+
169
+ Element::Content& Element::Content::operator=(const Element::Content& rhs)
170
+ {
171
+ this->property = rhs.property;
172
+ this->value = rhs.value;
173
+ this->mixin = rhs.mixin;
174
+ m_elements.reset(::new Elements(*rhs.m_elements.get()));
175
+
176
+ return *this;
177
+ }
178
+
179
+ Element::Content::~Content()
180
+ {
181
+ }
182
+
183
+ Element::Element(const Element::Class& klass_)
184
+ : klass(klass_)
185
+ {
186
+ }
187
+
188
+ Element::Element(const Element& rhs)
189
+ {
190
+ this->klass = rhs.klass;
191
+ this->content = rhs.content;
192
+ }
193
+
194
+ Element& Element::operator=(const Element& rhs)
195
+ {
196
+ this->klass = rhs.klass;
197
+ this->content = rhs.content;
198
+
199
+ return *this;
200
+ }
201
+
202
+ Element::~Element()
203
+ {
204
+ }
205
+
206
+ /**
207
+ * \brief Build Element from property member
208
+ *
209
+ * \param propertyMember Property member which was given
210
+ */
211
+ void Element::build(const PropertyMember& propertyMember)
212
+ {
213
+ this->klass = Element::PropertyClass;
214
+ this->content.property = propertyMember;
215
+ }
216
+
217
+ /**
218
+ * \brief Build Element from value member
219
+ *
220
+ * \param valueMember Value member which was given
221
+ */
222
+ void Element::build(const ValueMember& valueMember)
223
+ {
224
+ this->klass = Element::ValueClass;
225
+ this->content.value = valueMember;
226
+ }
227
+
228
+ /**
229
+ * \brief Build Element from mixin type
230
+ *
231
+ * \param mixin Mixin which was given
232
+ */
233
+ void Element::build(const Mixin& mixin)
234
+ {
235
+ this->klass = Element::MixinClass;
236
+ this->content.mixin = mixin;
237
+ }
238
+
239
+ /**
240
+ * \brief Build Element from one of type
241
+ *
242
+ * \param oneOf One Of which was given
243
+ */
244
+ void Element::build(const OneOf& oneOf)
245
+ {
246
+ this->buildFromElements(oneOf);
247
+ this->klass = Element::OneOfClass;
248
+ }
249
+
250
+ /**
251
+ * \brief Build Element from a value
252
+ *
253
+ * \param value Value of the value member
254
+ */
255
+ void Element::build(const Value& value)
256
+ {
257
+ ValueMember valueMember;
258
+
259
+ valueMember.valueDefinition.values.push_back(value);
260
+ this->build(valueMember);
261
+ }
262
+
263
+ /**
264
+ * \brief Buile Element from group of elements
265
+ *
266
+ * \param elements Group of elements
267
+ */
268
+ void Element::buildFromElements(const Elements &elements)
269
+ {
270
+ this->klass = Element::GroupClass;
271
+ this->content = elements;
272
+ }
@@ -0,0 +1,405 @@
1
+ //
2
+ // MSON.h
3
+ // snowcrash
4
+ //
5
+ // Created by Pavan Kumar Sunkara on 10/9/14.
6
+ // Copyright (c) 2014 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #ifndef SNOWCRASH_MSON_H
10
+ #define SNOWCRASH_MSON_H
11
+
12
+ #include <vector>
13
+ #include <string>
14
+ #include <set>
15
+ #include <map>
16
+ #include <stdexcept>
17
+
18
+ #include "Platform.h"
19
+ #include "MarkdownParser.h"
20
+
21
+ #define ELEMENTS_NOT_SET_ERR std::logic_error("no elements set")
22
+
23
+ /**
24
+ * MSON Abstract Syntax Tree
25
+ * -------------------------
26
+ *
27
+ * Data types in this document define the MSON AST
28
+ */
29
+
30
+ namespace mson {
31
+
32
+ /** Markdown */
33
+ typedef mdp::ByteBuffer Markdown;
34
+
35
+ /** Literal */
36
+ typedef std::string Literal;
37
+
38
+ /**
39
+ * Kind of Base Type
40
+ *
41
+ * This is an internal thing to keep track of what kind of type,
42
+ * that particular named type or member is sub-typed from
43
+ */
44
+ enum BaseType {
45
+ UndefinedBaseType = 0, // Undefined
46
+ PrimitiveBaseType, // Primitive Types
47
+ ImplicitPrimitiveBaseType, // Primitive Types (implicit)
48
+ ObjectBaseType, // Object Structure Type
49
+ ImplicitObjectBaseType, // Object Structure Type (implicit)
50
+ ValueBaseType, // Array & Enum Structure Type
51
+ ImplicitValueBaseType // Array & Enum Structure Type (implicit)
52
+ };
53
+
54
+ /** Named Types base type table */
55
+ typedef std::map<Literal, BaseType> NamedTypeBaseTable;
56
+
57
+ /** Named Types inheritance table */
58
+ typedef std::map<Literal, std::pair<Literal, mdp::BytesRangeSet> > NamedTypeInheritanceTable;
59
+
60
+ /** Named Types dependency table */
61
+ typedef std::map<Literal, std::set<Literal> > NamedTypeDependencyTable;
62
+
63
+ /** A simple or actual value */
64
+ struct Value {
65
+
66
+ /** Constructor */
67
+ Value()
68
+ : variable(false) {}
69
+
70
+ /** Literal value */
71
+ Literal literal;
72
+
73
+ /** Flag to denote variable value */
74
+ bool variable;
75
+
76
+ /** Check if empty */
77
+ bool empty() const;
78
+ };
79
+
80
+ /** Collection of values */
81
+ typedef std::vector<Value> Values;
82
+
83
+ /** Type symbol (identifier) */
84
+ struct Symbol {
85
+
86
+ /** Constructor */
87
+ Symbol()
88
+ : variable(false) {}
89
+
90
+ /** Name of the symbol */
91
+ Literal literal;
92
+
93
+ /** Flag to denote variable type name */
94
+ bool variable;
95
+
96
+ /** Check if empty */
97
+ bool empty() const;
98
+ };
99
+
100
+ /** Value of type name if based type */
101
+ enum BaseTypeName {
102
+ UndefinedTypeName = 0, // Not a base type name
103
+ BooleanTypeName, // `boolean` type name
104
+ StringTypeName, // `string` type name
105
+ NumberTypeName, // `number` type name
106
+ ArrayTypeName, // `array` type name
107
+ EnumTypeName, // `enum` type name
108
+ ObjectTypeName // `object` type name
109
+ };
110
+
111
+ /** Base or named type's name */
112
+ struct TypeName {
113
+
114
+ /** Constructor */
115
+ TypeName(const BaseTypeName& base_ = UndefinedTypeName)
116
+ : base(base_) {}
117
+
118
+ /** EITHER Base type's value */
119
+ BaseTypeName base;
120
+
121
+ /** OR Named type's identifier */
122
+ Symbol symbol;
123
+
124
+ /** Check if empty */
125
+ bool empty() const;
126
+ };
127
+
128
+ /** Collection of type names */
129
+ typedef std::vector<TypeName> TypeNames;
130
+
131
+ /** Attribute of a type */
132
+ enum TypeAttribute {
133
+ RequiredTypeAttribute = (1 << 0), // The type is required
134
+ OptionalTypeAttribute = (1 << 1), // The type is optional
135
+ FixedTypeAttribute = (1 << 2), // The type is fixed
136
+ SampleTypeAttribute = (1 << 3), // The type is a sample
137
+ DefaultTypeAttribute = (1 << 4), // The type is default
138
+ NullableTypeAttribute = (1 << 5), // The type is nullable
139
+ FixedTypeTypeAttribute = (1 << 6) // This type works like fixed, but it is unheritable
140
+ };
141
+
142
+ /** List of type attributes */
143
+ typedef unsigned int TypeAttributes;
144
+
145
+ /** Defines sub-typed types for a type */
146
+ struct TypeSpecification {
147
+
148
+ /** Name of the type */
149
+ TypeName name;
150
+
151
+ /** Array of nested types */
152
+ TypeNames nestedTypes;
153
+
154
+ /** Check if empty */
155
+ bool empty() const;
156
+ };
157
+
158
+ /** Definition of an instance of a type */
159
+ struct TypeDefinition {
160
+
161
+ /** Constructor */
162
+ TypeDefinition()
163
+ : baseType(UndefinedBaseType), attributes(0) {}
164
+
165
+ /**
166
+ * Base Type (for the type definition)
167
+ *
168
+ * Representing the base type from which this member or
169
+ * named type is sub-typed from. Not present in the AST
170
+ */
171
+ BaseType baseType;
172
+
173
+ /** Type specification */
174
+ TypeSpecification typeSpecification;
175
+
176
+ /** List of type attributes (byte-wise OR) */
177
+ TypeAttributes attributes;
178
+
179
+ /** Check if empty */
180
+ bool empty() const;
181
+ };
182
+
183
+ /** Value definition of a type instance */
184
+ struct ValueDefinition {
185
+
186
+ /** List of values */
187
+ Values values;
188
+
189
+ /** Type of the values */
190
+ TypeDefinition typeDefinition;
191
+
192
+ /** Check if empty */
193
+ bool empty() const;
194
+ };
195
+
196
+ /** Forward Declaration for element */
197
+ struct Element;
198
+
199
+ /** Collection of elements */
200
+ typedef std::vector<Element> Elements;
201
+
202
+ /** Section of a type */
203
+ struct TypeSection {
204
+
205
+ /** Class of a type section */
206
+ enum Class {
207
+ UndefinedClass = 0, // Unknown
208
+ BlockDescriptionClass, // Markdown block description
209
+ MemberTypeClass, // Contains member types
210
+ SampleClass, // Sample value(s) for member types
211
+ DefaultClass // Default value(s) for member types
212
+ };
213
+
214
+ /** Content of the type section */
215
+ struct Content {
216
+
217
+ /** EITHER Block description */
218
+ Markdown description;
219
+
220
+ /** OR Literal value */
221
+ Literal value;
222
+
223
+ /** OR Collection of elements */
224
+ Elements& elements();
225
+ const Elements& elements() const;
226
+
227
+ /** Constructor */
228
+ Content(const Markdown& description_ = Markdown(), const Literal& value_ = Literal());
229
+
230
+ /** Copy constructor */
231
+ Content(const TypeSection::Content& rhs);
232
+
233
+ /** Assignment operator */
234
+ TypeSection::Content& operator=(const TypeSection::Content& rhs);
235
+
236
+ /** Desctructor */
237
+ ~Content();
238
+
239
+ private:
240
+ std::unique_ptr<Elements> m_elements;
241
+ };
242
+
243
+ /** Constructor */
244
+ TypeSection(const TypeSection::Class& klass_ = TypeSection::UndefinedClass)
245
+ : baseType(UndefinedBaseType), klass(klass_) {}
246
+
247
+ /** Base Type (for the parent of the type section) */
248
+ BaseType baseType;
249
+
250
+ /** Denotes the class of the type section */
251
+ TypeSection::Class klass;
252
+
253
+ /** Content of the type section */
254
+ TypeSection::Content content;
255
+
256
+ /** Check if empty */
257
+ bool empty() const;
258
+ };
259
+
260
+ /** Collection of type sections */
261
+ typedef std::vector<TypeSection> TypeSections;
262
+
263
+ /** User-define named type */
264
+ struct NamedType {
265
+
266
+ /** Name of the type */
267
+ TypeName name;
268
+
269
+ /** The ancestor type definition */
270
+ TypeDefinition typeDefinition;
271
+
272
+ /** List of named type's sections */
273
+ TypeSections sections;
274
+
275
+ /** Check if empty */
276
+ bool empty() const;
277
+ };
278
+
279
+ /** Individual member of an array or enum structure */
280
+ struct ValueMember {
281
+
282
+ /** Inline description */
283
+ Markdown description;
284
+
285
+ /** Definition of member's value */
286
+ ValueDefinition valueDefinition;
287
+
288
+ /** List of member type's sections */
289
+ TypeSections sections;
290
+
291
+ /** Check if empty */
292
+ bool empty() const;
293
+ };
294
+
295
+ /** Name of a property member */
296
+ struct PropertyName {
297
+
298
+ /** EITHER Literal name of the property */
299
+ Literal literal;
300
+
301
+ /** OR Variable name of the property */
302
+ ValueDefinition variable;
303
+
304
+ /** Check if empty */
305
+ bool empty() const;
306
+ };
307
+
308
+ /** Individual member of an object structure */
309
+ struct PropertyMember : public ValueMember {
310
+
311
+ /** Name of the property */
312
+ PropertyName name;
313
+
314
+ /** Check if empty */
315
+ bool empty() const;
316
+ };
317
+
318
+ /** Mixin type */
319
+ typedef TypeDefinition Mixin;
320
+
321
+ /** One Of type */
322
+ typedef Elements OneOf;
323
+
324
+ /** Element of a type section */
325
+ struct Element {
326
+
327
+ /** Class of an element */
328
+ enum Class {
329
+ UndefinedClass = 0, // Unknown
330
+ PropertyClass, // Property member
331
+ ValueClass, // Value member
332
+ MixinClass, // Mixin
333
+ OneOfClass, // One of
334
+ GroupClass // Group of elements
335
+ };
336
+
337
+ /** Content of the element */
338
+ struct Content {
339
+
340
+ /** EITHER Property member */
341
+ PropertyMember property;
342
+
343
+ /** OR Value member */
344
+ ValueMember value;
345
+
346
+ /** OR Mixin member */
347
+ Mixin mixin;
348
+
349
+ /** OR One of member */
350
+ OneOf& oneOf();
351
+ const OneOf& oneOf() const;
352
+
353
+ /** OR Collection of elements */
354
+ Elements& elements();
355
+ const Elements& elements() const;
356
+
357
+ /** Builds the structure from group of elements */
358
+ Element::Content& operator=(const Elements& rhs);
359
+
360
+ /** Constructor */
361
+ Content();
362
+
363
+ /** Copy constructor */
364
+ Content(const Element::Content& rhs);
365
+
366
+ /** Assignment operator */
367
+ Content& operator=(const Element::Content& rhs);
368
+
369
+ /** Destructor */
370
+ ~Content();
371
+
372
+ private:
373
+ std::unique_ptr<Elements> m_elements;
374
+ };
375
+
376
+ /** Class of the element */
377
+ Element::Class klass;
378
+
379
+ /** Content of the element */
380
+ Element::Content content;
381
+
382
+ /** Constructor */
383
+ Element(const Element::Class& klass_ = Element::UndefinedClass);
384
+
385
+ /** Copy constructor */
386
+ Element(const Element& rhs);
387
+
388
+ /** Assignment operator */
389
+ Element& operator=(const Element& rhs);
390
+
391
+ /** Functions which allow the building of member type */
392
+ void build(const PropertyMember& propertyMember);
393
+ void build(const ValueMember& valueMember);
394
+ void build(const Mixin& mixin);
395
+ void build(const OneOf& oneOf);
396
+ void build(const Value& value);
397
+
398
+ void buildFromElements(const Elements& elements);
399
+
400
+ /** Desctructor */
401
+ ~Element();
402
+ };
403
+ }
404
+
405
+ #endif