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.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.gitmodules +3 -0
- data/.rspec +2 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +4 -0
- data/Guardfile +33 -0
- data/LICENSE.txt +21 -0
- data/README.md +50 -0
- data/Rakefile +43 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/circle.yml +14 -0
- data/ext/drafter/CHANGELOG.md +278 -0
- data/ext/drafter/Dockerfile +17 -0
- data/ext/drafter/Makefile +62 -0
- data/ext/drafter/appveyor.yml +17 -0
- data/ext/drafter/bin/drafter +0 -0
- data/ext/drafter/build/Makefile +387 -0
- data/ext/drafter/build/drafter.Makefile +6 -0
- data/ext/drafter/build/drafter.target.mk +159 -0
- data/ext/drafter/build/ext/snowcrash/libmarkdownparser.target.mk +141 -0
- data/ext/drafter/build/ext/snowcrash/libsnowcrash.target.mk +154 -0
- data/ext/drafter/build/ext/snowcrash/libsundown.target.mk +149 -0
- data/ext/drafter/build/ext/snowcrash/perf-libsnowcrash.target.mk +147 -0
- data/ext/drafter/build/ext/snowcrash/snowcrash.Makefile +6 -0
- data/ext/drafter/build/gyp-mac-tool +606 -0
- data/ext/drafter/build/libdrafter.target.mk +186 -0
- data/ext/drafter/build/libsos.target.mk +137 -0
- data/ext/drafter/build/out/Release/drafter +0 -0
- data/ext/drafter/build/out/Release/libdrafter.dylib +0 -0
- data/ext/drafter/build/out/Release/libmarkdownparser.a +0 -0
- data/ext/drafter/build/out/Release/libsnowcrash.a +0 -0
- data/ext/drafter/build/out/Release/libsos.a +0 -0
- data/ext/drafter/build/out/Release/libsundown.a +0 -0
- data/ext/drafter/build/out/Release/obj.target/drafter/src/config.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/drafter/src/main.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/drafter/src/reporting.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/ConversionContext.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/NamedTypesRegistry.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractAPI.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractDataStructure.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractElementFactory.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractSourceMap.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/Render.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/Serialize.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeAST.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeResult.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeSourcemap.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/drafter.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/drafter_private.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/ComparableVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Element.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/ExpandVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/IsExpandableVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/JSONSchemaVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/PrintVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Query.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Registry.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/RenderJSONVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/SerializeCompactVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/SerializeVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/TypeQueryVisitor.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/VisitorUtils.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Blueprint.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/BlueprintSourcemap.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HTTP.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HeadersParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSON.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONOneOfParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONSourcemap.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONTypeSectionParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONValueMemberParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Section.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Signature.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/UriTemplateParser.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/posix/RegexMatch.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/snowcrash.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsos/ext/sos/src/sos.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html_smartypants.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.o +0 -0
- data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.o +0 -0
- data/ext/drafter/circle.yml +32 -0
- data/ext/drafter/config.gypi +10 -0
- data/ext/drafter/config.mk +5 -0
- data/ext/drafter/configure +224 -0
- data/ext/drafter/drafter.gyp +189 -0
- data/ext/drafter/drafter.xcworkspace/contents.xcworkspacedata +13 -0
- data/ext/drafter/ext/snowcrash/Makefile +58 -0
- data/ext/drafter/ext/snowcrash/appveyor.yml +7 -0
- data/ext/drafter/ext/snowcrash/common.gypi +165 -0
- data/ext/drafter/ext/snowcrash/configure +197 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/Makefile +90 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/CONTRIBUTING.md +10 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/Makefile +84 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/Makefile.win +33 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/examples/smartypants.c +72 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/examples/sundown.c +80 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini.h +37 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.c +108 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.c +84 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.c +647 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.h +77 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html_smartypants.c +389 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html_block_names.txt +25 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.c +297 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.h +51 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.c +225 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.h +96 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/html_blocks.h +206 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.c +2726 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.h +147 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.c +204 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.h +58 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.c +81 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.h +29 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/sundown.def +20 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/markdown/markdown.vcproj +188 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/msvc.sln +38 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/sundown/sundown.vcproj +206 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.cc +160 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.h +90 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.cc +152 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.h +103 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.cc +388 -0
- data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.h +106 -0
- data/ext/drafter/ext/snowcrash/snowcrash.gyp +196 -0
- data/ext/drafter/ext/snowcrash/src/ActionParser.h +560 -0
- data/ext/drafter/ext/snowcrash/src/AssetParser.h +123 -0
- data/ext/drafter/ext/snowcrash/src/AttributesParser.h +123 -0
- data/ext/drafter/ext/snowcrash/src/Blueprint.cc +90 -0
- data/ext/drafter/ext/snowcrash/src/Blueprint.h +489 -0
- data/ext/drafter/ext/snowcrash/src/BlueprintParser.h +845 -0
- data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.cc +81 -0
- data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.h +345 -0
- data/ext/drafter/ext/snowcrash/src/BlueprintUtility.h +111 -0
- data/ext/drafter/ext/snowcrash/src/CodeBlockUtility.h +276 -0
- data/ext/drafter/ext/snowcrash/src/DataStructureGroupParser.h +157 -0
- data/ext/drafter/ext/snowcrash/src/HTTP.cc +49 -0
- data/ext/drafter/ext/snowcrash/src/HTTP.h +108 -0
- data/ext/drafter/ext/snowcrash/src/HeadersParser.cc +117 -0
- data/ext/drafter/ext/snowcrash/src/HeadersParser.h +377 -0
- data/ext/drafter/ext/snowcrash/src/MSON.cc +272 -0
- data/ext/drafter/ext/snowcrash/src/MSON.h +405 -0
- data/ext/drafter/ext/snowcrash/src/MSONMixinParser.h +103 -0
- data/ext/drafter/ext/snowcrash/src/MSONNamedTypeParser.h +135 -0
- data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.cc +132 -0
- data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.h +80 -0
- data/ext/drafter/ext/snowcrash/src/MSONParameterParser.h +166 -0
- data/ext/drafter/ext/snowcrash/src/MSONPropertyMemberParser.h +106 -0
- data/ext/drafter/ext/snowcrash/src/MSONSourcemap.cc +141 -0
- data/ext/drafter/ext/snowcrash/src/MSONSourcemap.h +181 -0
- data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.cc +209 -0
- data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.h +213 -0
- data/ext/drafter/ext/snowcrash/src/MSONUtility.h +506 -0
- data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.cc +214 -0
- data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.h +390 -0
- data/ext/drafter/ext/snowcrash/src/ModelTable.h +87 -0
- data/ext/drafter/ext/snowcrash/src/ParameterParser.h +516 -0
- data/ext/drafter/ext/snowcrash/src/ParametersParser.h +222 -0
- data/ext/drafter/ext/snowcrash/src/PayloadParser.h +733 -0
- data/ext/drafter/ext/snowcrash/src/Platform.h +33 -0
- data/ext/drafter/ext/snowcrash/src/RegexMatch.h +32 -0
- data/ext/drafter/ext/snowcrash/src/RelationParser.h +87 -0
- data/ext/drafter/ext/snowcrash/src/ResourceGroupParser.h +297 -0
- data/ext/drafter/ext/snowcrash/src/ResourceParser.h +536 -0
- data/ext/drafter/ext/snowcrash/src/Section.cc +48 -0
- data/ext/drafter/ext/snowcrash/src/Section.h +60 -0
- data/ext/drafter/ext/snowcrash/src/SectionParser.h +246 -0
- data/ext/drafter/ext/snowcrash/src/SectionParserData.h +109 -0
- data/ext/drafter/ext/snowcrash/src/SectionProcessor.h +299 -0
- data/ext/drafter/ext/snowcrash/src/Signature.cc +75 -0
- data/ext/drafter/ext/snowcrash/src/Signature.h +103 -0
- data/ext/drafter/ext/snowcrash/src/SignatureSectionProcessor.h +442 -0
- data/ext/drafter/ext/snowcrash/src/SourceAnnotation.h +166 -0
- data/ext/drafter/ext/snowcrash/src/StringUtility.h +323 -0
- data/ext/drafter/ext/snowcrash/src/UriTemplateParser.cc +195 -0
- data/ext/drafter/ext/snowcrash/src/UriTemplateParser.h +240 -0
- data/ext/drafter/ext/snowcrash/src/ValuesParser.h +111 -0
- data/ext/drafter/ext/snowcrash/src/posix/RegexMatch.cc +99 -0
- data/ext/drafter/ext/snowcrash/src/snowcrash.cc +90 -0
- data/ext/drafter/ext/snowcrash/src/snowcrash.h +44 -0
- data/ext/drafter/ext/snowcrash/src/win/RegexMatch.cc +78 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/AUTHORS +12 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/DEPS +23 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/OWNERS +1 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/PRESUBMIT.py +137 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/buildbot_run.py +136 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/commit_queue/OWNERS +6 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/commit_queue/cq_config.json +15 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/codereview.settings +10 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/data/win/large-pdb-shim.cc +12 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/gyp +8 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/gyp.bat +5 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/gyp_main.py +16 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSNew.py +340 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSProject.py +208 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSSettings.py +1096 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSToolFile.py +58 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUserFile.py +147 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUtil.py +270 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUtil.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSVersion.py +445 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSVersion.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/__init__.py +548 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/__init__.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.py +608 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/easy_xml.py +157 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/flock_tool.py +54 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.py +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/analyzer.py +741 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/android.py +1069 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/cmake.py +1248 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/dump_dependency_json.py +99 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/eclipse.py +425 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/gypd.py +94 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/gypsh.py +56 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.py +2218 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/msvs.py +3467 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja.py +2427 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.py +1300 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/input.py +2899 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/input.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/mac_tool.py +605 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/msvs_emulation.py +1093 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/msvs_emulation.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ninja_syntax.py +160 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ninja_syntax.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ordered_dict.py +289 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/simple_copy.py +46 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/simple_copy.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/win_tool.py +314 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.py +1664 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_ninja.py +276 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_ninja.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.py +2927 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.pyc +0 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xml_fix.py +69 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/pylintrc +307 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/samples/samples +81 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/samples/samples.bat +5 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/setup.py +19 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/Xcode/Specifications/gyp.pbfilespec +27 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/Xcode/Specifications/gyp.xclangspec +226 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/emacs/gyp.el +275 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/graphviz.py +100 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_gyp.py +155 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_sln.py +169 -0
- data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_vcproj.py +329 -0
- data/ext/drafter/ext/snowcrash/vcbuild.bat +139 -0
- data/ext/drafter/ext/sos/Makefile +62 -0
- data/ext/drafter/ext/sos/src/sos.cc +235 -0
- data/ext/drafter/ext/sos/src/sos.h +188 -0
- data/ext/drafter/ext/sos/src/sosJSON.h +121 -0
- data/ext/drafter/ext/sos/src/sosYAML.h +105 -0
- data/ext/drafter/src/ConversionContext.cc +39 -0
- data/ext/drafter/src/ConversionContext.h +34 -0
- data/ext/drafter/src/NamedTypesRegistry.cc +405 -0
- data/ext/drafter/src/NamedTypesRegistry.h +28 -0
- data/ext/drafter/src/NodeInfo.h +143 -0
- data/ext/drafter/src/RefractAPI.cc +579 -0
- data/ext/drafter/src/RefractAPI.h +28 -0
- data/ext/drafter/src/RefractDataStructure.cc +1199 -0
- data/ext/drafter/src/RefractDataStructure.h +26 -0
- data/ext/drafter/src/RefractElementFactory.cc +107 -0
- data/ext/drafter/src/RefractElementFactory.h +67 -0
- data/ext/drafter/src/RefractSourceMap.cc +29 -0
- data/ext/drafter/src/RefractSourceMap.h +57 -0
- data/ext/drafter/src/Render.cc +157 -0
- data/ext/drafter/src/Render.h +40 -0
- data/ext/drafter/src/Serialize.cc +160 -0
- data/ext/drafter/src/Serialize.h +289 -0
- data/ext/drafter/src/SerializeAST.cc +507 -0
- data/ext/drafter/src/SerializeAST.h +29 -0
- data/ext/drafter/src/SerializeResult.cc +170 -0
- data/ext/drafter/src/SerializeResult.h +34 -0
- data/ext/drafter/src/SerializeSourcemap.cc +331 -0
- data/ext/drafter/src/SerializeSourcemap.h +21 -0
- data/ext/drafter/src/Version.h +40 -0
- data/ext/drafter/src/config.cc +91 -0
- data/ext/drafter/src/config.h +38 -0
- data/ext/drafter/src/drafter.cc +137 -0
- data/ext/drafter/src/drafter.h +102 -0
- data/ext/drafter/src/drafter_private.cc +85 -0
- data/ext/drafter/src/drafter_private.h +34 -0
- data/ext/drafter/src/main.cc +137 -0
- data/ext/drafter/src/refract/AppendDecorator.h +58 -0
- data/ext/drafter/src/refract/Build.h +67 -0
- data/ext/drafter/src/refract/ComparableVisitor.cc +43 -0
- data/ext/drafter/src/refract/ComparableVisitor.h +62 -0
- data/ext/drafter/src/refract/Element.cc +409 -0
- data/ext/drafter/src/refract/Element.h +656 -0
- data/ext/drafter/src/refract/ElementFwd.h +37 -0
- data/ext/drafter/src/refract/ElementInserter.h +59 -0
- data/ext/drafter/src/refract/Exception.h +31 -0
- data/ext/drafter/src/refract/ExpandVisitor.cc +359 -0
- data/ext/drafter/src/refract/ExpandVisitor.h +58 -0
- data/ext/drafter/src/refract/FilterVisitor.h +52 -0
- data/ext/drafter/src/refract/IsExpandableVisitor.cc +140 -0
- data/ext/drafter/src/refract/IsExpandableVisitor.h +31 -0
- data/ext/drafter/src/refract/Iterate.h +160 -0
- data/ext/drafter/src/refract/JSONSchemaVisitor.cc +675 -0
- data/ext/drafter/src/refract/JSONSchemaVisitor.h +73 -0
- data/ext/drafter/src/refract/PrintVisitor.cc +164 -0
- data/ext/drafter/src/refract/PrintVisitor.h +50 -0
- data/ext/drafter/src/refract/Query.cc +13 -0
- data/ext/drafter/src/refract/Query.h +38 -0
- data/ext/drafter/src/refract/Registry.cc +114 -0
- data/ext/drafter/src/refract/Registry.h +43 -0
- data/ext/drafter/src/refract/RenderJSONVisitor.cc +255 -0
- data/ext/drafter/src/refract/RenderJSONVisitor.h +51 -0
- data/ext/drafter/src/refract/SerializeCompactVisitor.cc +167 -0
- data/ext/drafter/src/refract/SerializeCompactVisitor.h +56 -0
- data/ext/drafter/src/refract/SerializeVisitor.cc +214 -0
- data/ext/drafter/src/refract/SerializeVisitor.h +55 -0
- data/ext/drafter/src/refract/TypeQueryVisitor.cc +46 -0
- data/ext/drafter/src/refract/TypeQueryVisitor.h +110 -0
- data/ext/drafter/src/refract/Visitor.h +126 -0
- data/ext/drafter/src/refract/VisitorUtils.cc +63 -0
- data/ext/drafter/src/refract/VisitorUtils.h +231 -0
- data/ext/drafter/src/reporting.cc +263 -0
- data/ext/drafter/src/reporting.h +39 -0
- data/ext/drafter/src/stream.h +148 -0
- data/ext/drafter/tools/homebrew/drafter.rb +18 -0
- data/ext/drafter/tools/make-tarball.sh +39 -0
- data/ext/drafter/tools/refract-filter.py +96 -0
- data/ext/drafter/tools/release.sh +17 -0
- data/ext/drafter/vcbuild.bat +203 -0
- data/lib/lounge_lizard/binding.rb +29 -0
- data/lib/lounge_lizard/version.rb +3 -0
- data/lib/lounge_lizard.rb +18 -0
- data/lounge_lizard.gemspec +37 -0
- 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(®ex, 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(®ex, target.c_str(), 0, NULL, 0);
|
|
29
|
+
if (!reti) {
|
|
30
|
+
::regfree(®ex);
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
else if (reti == REG_NOMATCH) {
|
|
34
|
+
::regfree(®ex);
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
char msgbuf[1024];
|
|
39
|
+
regerror(reti, ®ex, msgbuf, sizeof(msgbuf));
|
|
40
|
+
::regfree(®ex);
|
|
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(®ex, 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(®ex, target.c_str(), groupSize, pmatch, 0);
|
|
74
|
+
if (!reti) {
|
|
75
|
+
::regfree(®ex);
|
|
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(®ex);
|
|
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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*
|