lounge_lizard 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,240 @@
1
+ //
2
+ // UriTemplateTeParser.h
3
+ // snowcrash
4
+ //
5
+ // Created by Carl Griffiths 24/02/2014.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #ifndef SNOWCRASH_URITEMPLATEPARSER_H
10
+ #define SNOWCRASH_URITEMPLATEPARSER_H
11
+
12
+ #include "Blueprint.h"
13
+ #include "SourceAnnotation.h"
14
+ #include "RegexMatch.h"
15
+
16
+ #define URI_REGEX "^(http|https|ftp|file)?(://)?([^/]*)?(.*)$"
17
+ #define URI_TEMPLATE_OPERATOR_REGEX "([+|#|.|/|;|?|&])"
18
+ #define URI_TEMPLATE_EXPRESSION_REGEX "^([?|#|+|&]?(([A-Z|a-z|0-9|_|,])*|(%[A-F|a-f|0-9]{2})*)*\\*?)$"
19
+
20
+ namespace snowcrash {
21
+
22
+ /**
23
+ * \brief URI template parse result.
24
+ */
25
+ struct ParsedURITemplate {
26
+ std::string scheme;
27
+ std::string host;
28
+ std::string path;
29
+
30
+ Report report;
31
+ };
32
+
33
+ /**
34
+ * \brief URI template expression.
35
+ */
36
+ typedef std::string Expression;
37
+
38
+ /**
39
+ * \brief collection for expressions for a single URI template.
40
+ */
41
+ typedef std::vector<Expression> Expressions;
42
+
43
+ /**
44
+ * \brief iterator for collection of expressions.
45
+ */
46
+ typedef std::vector<Expression>::const_iterator ExpressionIterator;
47
+
48
+ /**
49
+ * \brief base class for URI template expression once classified.
50
+ */
51
+ class ClassifiedExpression {
52
+ protected :
53
+ bool isSupported;
54
+ public :
55
+ ClassifiedExpression(const std::string& expression) {
56
+ isSupported = false;
57
+ unsupportedWarningText = "";
58
+ innerExpression = expression;
59
+ }
60
+
61
+ std::string unsupportedWarningText;
62
+
63
+ snowcrash::Expression innerExpression;
64
+
65
+ virtual bool IsExpressionType() const {
66
+ return false;
67
+ }
68
+
69
+ bool ContainsSpaces() {
70
+ return innerExpression.find(" ") != std::string::npos;
71
+ }
72
+
73
+ bool ContainsAssignment() {
74
+ return innerExpression.find("=") != std::string::npos;
75
+ }
76
+
77
+ bool ContainsHyphens() {
78
+ return innerExpression.find("-") != std::string::npos;
79
+ }
80
+
81
+ bool IsInvalidExpressionName() {
82
+ std::string tmpExpression = innerExpression;
83
+ if (tmpExpression.find("..") != std::string::npos) return true;
84
+
85
+ size_t start_pos = 0;
86
+ while ((start_pos = tmpExpression.find(".", start_pos)) != std::string::npos) {
87
+ tmpExpression.replace(start_pos, 1, "_");
88
+ start_pos++;
89
+ }
90
+
91
+ return !RegexMatch(tmpExpression, URI_TEMPLATE_EXPRESSION_REGEX);
92
+ }
93
+
94
+ bool IsSupportedExpressionType() {
95
+ return isSupported;
96
+ }
97
+ };
98
+
99
+ /**
100
+ * \brief level one basic variable expansion URI template expression.
101
+ */
102
+ class VariableExpression : public ClassifiedExpression {
103
+ public :
104
+ VariableExpression(const std::string& expression):ClassifiedExpression(expression) {
105
+ isSupported = true;
106
+ }
107
+
108
+ bool IsExpressionType() const {
109
+ return !RegexMatch(innerExpression.substr(0, 1), URI_TEMPLATE_OPERATOR_REGEX);
110
+ }
111
+ };
112
+
113
+ /**
114
+ * \brief level three query string expansion URI template expression.
115
+ */
116
+ class QueryStringExpression : public ClassifiedExpression {
117
+ public :
118
+ QueryStringExpression(const std::string& expression):ClassifiedExpression(expression) {
119
+ isSupported = true;
120
+ }
121
+
122
+ bool IsExpressionType() const {
123
+ return innerExpression.substr(0, 1) == "?";
124
+ }
125
+ };
126
+
127
+ /**
128
+ * \brief level two fragment expansion URI template expression.
129
+ */
130
+ class FragmentExpression : public ClassifiedExpression {
131
+ public :
132
+ FragmentExpression(const std::string& expression):ClassifiedExpression(expression) {
133
+ isSupported = true;
134
+ }
135
+
136
+ bool IsExpressionType() const {
137
+ return innerExpression.substr(0, 1) == "#";
138
+ }
139
+ };
140
+
141
+ /**
142
+ * \brief level two reserved expansion URI template expression.
143
+ */
144
+ class ReservedExpansionExpression : public ClassifiedExpression {
145
+ public :
146
+ ReservedExpansionExpression(const std::string& expression):ClassifiedExpression(expression) {
147
+ isSupported = true;
148
+ }
149
+
150
+ bool IsExpressionType() const {
151
+ return innerExpression.substr(0, 1) == "+";
152
+ }
153
+ };
154
+
155
+ /**
156
+ * \brief level three label expansion URI template expression.
157
+ */
158
+ class LabelExpansionExpression : public ClassifiedExpression {
159
+ public :
160
+ LabelExpansionExpression(const std::string& expression):ClassifiedExpression(expression) {
161
+ unsupportedWarningText = "URI template label expansion is not supported";
162
+ }
163
+
164
+ bool IsExpressionType() const {
165
+ return innerExpression.substr(0, 1) == ".";
166
+ }
167
+ };
168
+
169
+ /**
170
+ * \brief level three path segment expansion URI template expression.
171
+ */
172
+ class PathSegmentExpansionExpression : public ClassifiedExpression {
173
+ public :
174
+ PathSegmentExpansionExpression(const std::string& expression):ClassifiedExpression(expression) {
175
+ unsupportedWarningText = "URI template path segment expansion is not supported";
176
+ }
177
+
178
+ bool IsExpressionType() const {
179
+ return innerExpression.substr(0, 1) == "/";
180
+ }
181
+ };
182
+
183
+ /**
184
+ * \brief level three path style parameter expansion URI template expression.
185
+ */
186
+ class PathStyleParameterExpansionExpression : public ClassifiedExpression {
187
+ public :
188
+ PathStyleParameterExpansionExpression(const std::string& expression):ClassifiedExpression(expression) {
189
+ unsupportedWarningText = "URI template path style parameter expansion is not supported";
190
+ }
191
+
192
+ bool IsExpressionType() const {
193
+ return innerExpression.substr(0, 1) == ";";
194
+ }
195
+ };
196
+
197
+ /**
198
+ * \brief level three form style query continuation expansion URI template expression.
199
+ */
200
+ class FormStyleQueryContinuationExpression : public ClassifiedExpression {
201
+ public :
202
+ FormStyleQueryContinuationExpression(const std::string& expression):ClassifiedExpression(expression) {
203
+ isSupported = true;
204
+ }
205
+
206
+ bool IsExpressionType() const {
207
+ return innerExpression.substr(0, 1) == "&";
208
+ }
209
+ };
210
+
211
+ /**
212
+ * \brief undefined URI template expression.
213
+ */
214
+ class UndefinedExpression : public ClassifiedExpression{
215
+ public :
216
+ UndefinedExpression(const std::string& expression) :ClassifiedExpression(expression) {
217
+ unsupportedWarningText = "Unidentified expression";
218
+ }
219
+
220
+ bool IsExpressionType() const {
221
+ return false;
222
+ }
223
+ };
224
+
225
+ /**
226
+ * URI Template Parser Interface
227
+ * ------------------------------
228
+ */
229
+ class URITemplateParser{
230
+ public :
231
+ /**
232
+ * \brief Parse the URI template into scheme, host and path and then parse for supported URI template expressions
233
+ *
234
+ * \param uri A uri to be parsed.
235
+ */
236
+ static void parse(const URITemplate& uri, const mdp::CharactersRangeSet& sourceBlock, ParsedURITemplate& result);
237
+ };
238
+ }
239
+
240
+ #endif
@@ -0,0 +1,111 @@
1
+ //
2
+ // ValuesParser.h
3
+ // snowcrash
4
+ //
5
+ // Created by Pavan Kumar Sunkara on 6/12/14
6
+ // Copyright (c) 2014 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #ifndef SNOWCRASH_VALUESPARSER_H
10
+ #define SNOWCRASH_VALUESPARSER_H
11
+
12
+ #include "SectionParser.h"
13
+ #include "RegexMatch.h"
14
+ #include "StringUtility.h"
15
+
16
+ /** Parameter Value regex */
17
+ #define PARAMETER_VALUE "`([^`]+)`"
18
+
19
+ namespace snowcrash {
20
+
21
+ /** Parameter Values matching regex */
22
+ const char* const ValuesRegex = "^[[:blank:]]*[Vv]alues[[:blank:]]*$";
23
+
24
+ /**
25
+ * Values section processor
26
+ */
27
+ template<>
28
+ struct SectionProcessor<Values> : public SectionProcessorBase<Values> {
29
+
30
+ static MarkdownNodeIterator processNestedSection(const MarkdownNodeIterator& node,
31
+ const MarkdownNodes& siblings,
32
+ SectionParserData& pd,
33
+ const ParseResultRef<Values>& out) {
34
+
35
+ if (pd.sectionContext() == ValueSectionType) {
36
+
37
+ mdp::ByteBuffer content = node->children().front().text;
38
+ CaptureGroups captureGroups;
39
+
40
+ RegexCapture(content, PARAMETER_VALUE, captureGroups);
41
+
42
+ if (captureGroups.size() > 1) {
43
+ out.node.push_back(captureGroups[1]);
44
+
45
+ if (pd.exportSourceMap()) {
46
+ SourceMap<Value> valueSM;
47
+ valueSM.sourceMap = node->sourceMap;
48
+ out.sourceMap.collection.push_back(valueSM);
49
+ }
50
+ } else {
51
+ TrimString(content);
52
+
53
+ // WARN: Ignoring the unexpected param value
54
+ std::stringstream ss;
55
+ ss << "ignoring the '" << content << "' element";
56
+ ss << ", expected '`" << content << "`'";
57
+
58
+ mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
59
+ out.report.warnings.push_back(Warning(ss.str(),
60
+ IgnoringWarning,
61
+ sourceMap));
62
+ }
63
+
64
+ return ++MarkdownNodeIterator(node);
65
+ }
66
+
67
+ return node;
68
+ }
69
+
70
+ NO_SECTION_DESCRIPTION(Values)
71
+
72
+ static SectionType sectionType(const MarkdownNodeIterator& node) {
73
+
74
+ if (node->type == mdp::ListItemMarkdownNodeType
75
+ && !node->children().empty()) {
76
+
77
+ mdp::ByteBuffer subject = node->children().front().text;
78
+ TrimString(subject);
79
+
80
+ if (RegexMatch(subject, ValuesRegex)) {
81
+ return ValuesSectionType;
82
+ }
83
+ }
84
+
85
+ return UndefinedSectionType;
86
+ }
87
+
88
+ static SectionType nestedSectionType(const MarkdownNodeIterator& node) {
89
+
90
+ if (node->type == mdp::ListItemMarkdownNodeType
91
+ && !node->children().empty()) {
92
+
93
+ mdp::ByteBuffer subject = node->children().front().text;
94
+ TrimString(subject);
95
+
96
+ if (node->children().size() == 1 &&
97
+ !subject.empty()) {
98
+
99
+ return ValueSectionType;
100
+ }
101
+ }
102
+
103
+ return UndefinedSectionType;
104
+ }
105
+ };
106
+
107
+ /** Parameter Section Parser */
108
+ typedef SectionParser<Values, ListSectionAdapter> ValuesParser;
109
+ }
110
+
111
+ #endif
@@ -0,0 +1,99 @@
1
+ //
2
+ // RegexMatch.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 5/2/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include <regex.h>
10
+ #include <cstring>
11
+ #include "../RegexMatch.h"
12
+
13
+ // FIXME: Migrate to C++11.
14
+ // Naive implementation of regex matching using POSIX regex
15
+ bool snowcrash::RegexMatch(const std::string& target, const std::string& expression)
16
+ {
17
+ if (target.empty() || expression.empty())
18
+ return false;
19
+
20
+ regex_t regex;
21
+ int reti = ::regcomp(&regex, expression.c_str(), REG_EXTENDED | REG_NOSUB);
22
+ if (reti) {
23
+ // Unable to compile regex
24
+ return false;
25
+ }
26
+
27
+ // Execute regular expression
28
+ reti = ::regexec(&regex, target.c_str(), 0, NULL, 0);
29
+ if (!reti) {
30
+ ::regfree(&regex);
31
+ return true;
32
+ }
33
+ else if (reti == REG_NOMATCH) {
34
+ ::regfree(&regex);
35
+ return false;
36
+ }
37
+ else {
38
+ char msgbuf[1024];
39
+ regerror(reti, &regex, msgbuf, sizeof(msgbuf));
40
+ ::regfree(&regex);
41
+ return false;
42
+ }
43
+
44
+ return false;
45
+ }
46
+
47
+ std::string snowcrash::RegexCaptureFirst(const std::string& target, const std::string& expression)
48
+ {
49
+ CaptureGroups groups;
50
+ if (!RegexCapture(target, expression, groups) ||
51
+ groups.size() < 2)
52
+ return std::string();
53
+
54
+ return groups[1];
55
+ }
56
+
57
+ bool snowcrash::RegexCapture(const std::string& target, const std::string& expression, CaptureGroups& captureGroups, size_t groupSize)
58
+ {
59
+ if (target.empty() || expression.empty())
60
+ return false;
61
+
62
+ captureGroups.clear();
63
+
64
+ try {
65
+ regex_t regex;
66
+ int reti = ::regcomp(&regex, expression.c_str(), REG_EXTENDED);
67
+ if (reti)
68
+ return false;
69
+
70
+ regmatch_t *pmatch = ::new regmatch_t[groupSize];
71
+ ::memset(pmatch, 0, sizeof(regmatch_t) * groupSize);
72
+
73
+ reti = ::regexec(&regex, target.c_str(), groupSize, pmatch, 0);
74
+ if (!reti) {
75
+ ::regfree(&regex);
76
+
77
+ for (size_t i = 0; i < groupSize; ++i) {
78
+ if (pmatch[i].rm_so == -1 || pmatch[i].rm_eo == -1)
79
+ captureGroups.push_back(std::string());
80
+ else
81
+ captureGroups.push_back(std::string(target, pmatch[i].rm_so, pmatch[i].rm_eo - pmatch[i].rm_so));
82
+ }
83
+
84
+ delete [] pmatch;
85
+ return true;
86
+ }
87
+ else {
88
+ ::regfree(&regex);
89
+ delete [] pmatch;
90
+ return false;
91
+ }
92
+ }
93
+ catch (...) {
94
+ }
95
+
96
+ return false;
97
+ }
98
+
99
+
@@ -0,0 +1,90 @@
1
+ //
2
+ // snowcrash.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 4/2/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "snowcrash.h"
10
+ #include "BlueprintParser.h"
11
+
12
+ const int snowcrash::SourceAnnotation::OK = 0;
13
+
14
+ using namespace snowcrash;
15
+
16
+ /**
17
+ * \brief Check source for unsupported character \t & \r
18
+ * \return True if passed (not found), false otherwise
19
+ */
20
+ static bool CheckSource(const mdp::ByteBuffer& source, Report& report)
21
+ {
22
+
23
+ std::string::size_type pos = source.find("\t");
24
+
25
+ if (pos != std::string::npos) {
26
+
27
+ mdp::BytesRangeSet rangeSet;
28
+ rangeSet.push_back(mdp::BytesRange(pos, 1));
29
+ report.error = Error("the use of tab(s) '\\t' in source data isn't currently supported, please contact makers",
30
+ BusinessError,
31
+ mdp::BytesRangeSetToCharactersRangeSet(rangeSet, source));
32
+ return false;
33
+ }
34
+
35
+ pos = source.find("\r");
36
+
37
+ if (pos != std::string::npos) {
38
+
39
+ mdp::BytesRangeSet rangeSet;
40
+ rangeSet.push_back(mdp::BytesRange(pos, 1));
41
+ report.error = Error("the use of carriage return(s) '\\r' in source data isn't currently supported, please contact makers",
42
+ BusinessError,
43
+ mdp::BytesRangeSetToCharactersRangeSet(rangeSet, source));
44
+ return false;
45
+ }
46
+
47
+ return true;
48
+ }
49
+
50
+ int snowcrash::parse(const mdp::ByteBuffer& source,
51
+ BlueprintParserOptions options,
52
+ const ParseResultRef<Blueprint>& out)
53
+ {
54
+ try {
55
+
56
+ // Sanity Check
57
+ if (!CheckSource(source, out.report))
58
+ return out.report.error.code;
59
+
60
+ // Do nothing if blueprint is empty
61
+ if (source.empty())
62
+ return out.report.error.code;
63
+
64
+ // Parse Markdown
65
+ mdp::MarkdownParser markdownParser;
66
+ mdp::MarkdownNode markdownAST;
67
+ markdownParser.parse(source, markdownAST);
68
+
69
+ // Build SectionParserData
70
+ SectionParserData pd(options, source, out.node);
71
+ mdp::BuildCharacterIndex(pd.sourceCharacterIndex, source);
72
+
73
+ // Parse Blueprint
74
+ BlueprintParser::parse(markdownAST.children().begin(), markdownAST.children(), pd, out);
75
+ }
76
+ catch (const Error& e) {
77
+ out.report.error = e;
78
+ }
79
+ catch (const std::exception& e) {
80
+
81
+ std::stringstream ss;
82
+ ss << "parser exception: '" << e.what() << "'";
83
+ out.report.error = Error(ss.str(), ApplicationError);
84
+ }
85
+ catch (...) {
86
+ out.report.error = Error("parser exception has occured", ApplicationError);
87
+ }
88
+
89
+ return out.report.error.code;
90
+ }
@@ -0,0 +1,44 @@
1
+ //
2
+ // snowcrash.h
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 4/2/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #ifndef SNOWCRASH_H
10
+ #define SNOWCRASH_H
11
+
12
+ #include "BlueprintSourcemap.h"
13
+ #include "SourceAnnotation.h"
14
+ #include "SectionParser.h"
15
+
16
+ /**
17
+ * API Blueprint Parser Interface
18
+ * ------------------------------
19
+ *
20
+ * This is the parser's entry point.
21
+ *
22
+ * For Snow Crash users, this is the only interface to use.
23
+ *
24
+ * For binding writers, this is the point to start wrapping.
25
+ * Refer to https://github.com/apiaryio/snowcrash/wiki/Writing-a-binding
26
+ * for details on how to write a Snow Crash binding.
27
+ */
28
+
29
+ namespace snowcrash {
30
+
31
+ /**
32
+ * \brief Parse the source data into a blueprint abstract source tree (AST).
33
+ *
34
+ * \param source A textual source data to be parsed.
35
+ * \param options Parser options. Use 0 for no additional options.
36
+ * \param out Output buffer to store parsing result into.
37
+ * \return Error status code. Zero represents success, non-zero a failure.
38
+ */
39
+ int parse(const mdp::ByteBuffer& source,
40
+ BlueprintParserOptions options,
41
+ const ParseResultRef<Blueprint>& out);
42
+ }
43
+
44
+ #endif
@@ -0,0 +1,78 @@
1
+ //
2
+ // RegexMatch.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 7/1/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include <regex>
10
+ #include <cstring>
11
+ #include "../RegexMatch.h"
12
+
13
+ using namespace std;
14
+
15
+ #if _MSC_VER == 1500
16
+ using namespace std::tr1;
17
+ #endif
18
+ //
19
+ // A C++09 implementation
20
+ //
21
+
22
+ bool snowcrash::RegexMatch(const string& target, const string& expression)
23
+ {
24
+ if (target.empty() || expression.empty())
25
+ return false;
26
+
27
+ try {
28
+ regex pattern(expression, regex_constants::extended);
29
+ return regex_search(target, pattern);
30
+ }
31
+ catch (const regex_error&) {
32
+ }
33
+ catch (...) {
34
+ }
35
+
36
+ return false;
37
+ }
38
+
39
+ string snowcrash::RegexCaptureFirst(const string& target, const string& expression)
40
+ {
41
+ CaptureGroups groups;
42
+ if (!RegexCapture(target, expression, groups) ||
43
+ groups.size() < 2)
44
+ return string();
45
+
46
+ return groups[1];
47
+ }
48
+
49
+ bool snowcrash::RegexCapture(const string& target, const string& expression, CaptureGroups& captureGroups, size_t groupSize)
50
+ {
51
+ if (target.empty() || expression.empty())
52
+ return false;
53
+
54
+ captureGroups.clear();
55
+
56
+ try {
57
+
58
+ regex pattern(expression, regex_constants::extended);
59
+ match_results<string::const_iterator> result;
60
+ if (!regex_search(target, result, pattern))
61
+ return false;
62
+
63
+ for (match_results<string::const_iterator>::const_iterator it = result.begin();
64
+ it != result.end();
65
+ ++it) {
66
+
67
+ captureGroups.push_back(*it);
68
+ }
69
+
70
+ return true;
71
+ }
72
+ catch (const regex_error&) {
73
+ }
74
+ catch (...) {
75
+ }
76
+
77
+ return false;
78
+ }
@@ -0,0 +1,12 @@
1
+ # Names should be added to this file like so:
2
+ # Name or Organization <email address>
3
+
4
+ Google Inc.
5
+ Bloomberg Finance L.P.
6
+ Yandex LLC
7
+
8
+ Steven Knight <knight@baldmt.com>
9
+ Ryan Norton <rnorton10@gmail.com>
10
+ David J. Sankel <david@sankelsoftware.com>
11
+ Eric N. Vander Weele <ericvw@gmail.com>
12
+ Tom Freudenberg <th.freudenberg@gmail.com>
@@ -0,0 +1,23 @@
1
+ # DEPS file for gclient use in buildbot execution of gyp tests.
2
+ #
3
+ # (You don't need to use gclient for normal GYP development work.)
4
+
5
+ vars = {
6
+ "chromium_git": "https://chromium.googlesource.com/",
7
+ }
8
+
9
+ deps = {
10
+ }
11
+
12
+ deps_os = {
13
+ "win": {
14
+ "third_party/cygwin":
15
+ Var("chromium_git") + "chromium/deps/cygwin@4fbd5b9",
16
+
17
+ "third_party/python_26":
18
+ Var("chromium_git") + "chromium/deps/python_26@5bb4080",
19
+
20
+ "src/third_party/pefile":
21
+ Var("chromium_git") + "external/pefile@72c6ae4",
22
+ },
23
+ }