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,103 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MSONMixinParser.h
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 11/5/14.
|
|
6
|
+
// Copyright (c) 2014 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SNOWCRASH_MSONMIXINPARSER_H
|
|
10
|
+
#define SNOWCRASH_MSONMIXINPARSER_H
|
|
11
|
+
|
|
12
|
+
#include "SectionParser.h"
|
|
13
|
+
#include "MSONUtility.h"
|
|
14
|
+
|
|
15
|
+
using namespace scpl;
|
|
16
|
+
|
|
17
|
+
namespace snowcrash {
|
|
18
|
+
|
|
19
|
+
/** MSON Mixin matching regex */
|
|
20
|
+
const char* const MSONMixinRegex = "^[[:blank:]]*([Ii]nclude[[:blank:]]+)";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* MSON Mixin Section Processor
|
|
24
|
+
*/
|
|
25
|
+
template<>
|
|
26
|
+
struct SectionProcessor<mson::Mixin> : public SignatureSectionProcessorBase<mson::Mixin> {
|
|
27
|
+
|
|
28
|
+
static SignatureTraits signatureTraits() {
|
|
29
|
+
|
|
30
|
+
SignatureTraits signatureTraits(SignatureTraits::IdentifierTrait |
|
|
31
|
+
SignatureTraits::AttributesTrait);
|
|
32
|
+
|
|
33
|
+
return signatureTraits;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static MarkdownNodeIterator finalizeSignature(const MarkdownNodeIterator& node,
|
|
37
|
+
SectionParserData& pd,
|
|
38
|
+
const Signature& signature,
|
|
39
|
+
const ParseResultRef<mson::Mixin>& out) {
|
|
40
|
+
|
|
41
|
+
CaptureGroups captureGroups;
|
|
42
|
+
std::vector<mdp::ByteBuffer> attributes = signature.attributes;
|
|
43
|
+
|
|
44
|
+
if (RegexCapture(signature.identifier, MSONMixinRegex, captureGroups, 2) &&
|
|
45
|
+
!captureGroups[1].empty()) {
|
|
46
|
+
|
|
47
|
+
// Get the type name and insert it into attributes
|
|
48
|
+
std::string typeName = signature.identifier.substr(captureGroups[1].length());
|
|
49
|
+
attributes.insert(attributes.begin(), typeName);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
mson::parseTypeDefinition(node, pd, attributes, out.report, out.node);
|
|
53
|
+
|
|
54
|
+
if (pd.exportSourceMap()) {
|
|
55
|
+
out.sourceMap.sourceMap = node->sourceMap;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if ((out.node.baseType == mson::PrimitiveBaseType) ||
|
|
59
|
+
(out.node.baseType == mson::UndefinedBaseType)) {
|
|
60
|
+
|
|
61
|
+
// WARN: invalid mixin base type
|
|
62
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
63
|
+
out.report.warnings.push_back(Warning("mixin type may not include a type of a primitive sub-type",
|
|
64
|
+
FormattingWarning,
|
|
65
|
+
sourceMap));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Check circular references
|
|
69
|
+
if (out.node.typeSpecification.name.base == mson::UndefinedTypeName &&
|
|
70
|
+
!out.node.typeSpecification.name.symbol.literal.empty() &&
|
|
71
|
+
!out.node.typeSpecification.name.symbol.variable) {
|
|
72
|
+
|
|
73
|
+
mson::addDependency(node, pd, out.node.typeSpecification.name.symbol.literal, pd.namedTypeContext, out.report, true);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return ++MarkdownNodeIterator(node);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
NO_SECTION_DESCRIPTION(mson::Mixin)
|
|
80
|
+
|
|
81
|
+
static SectionType sectionType(const MarkdownNodeIterator& node) {
|
|
82
|
+
|
|
83
|
+
if (node->type == mdp::ListItemMarkdownNodeType
|
|
84
|
+
&& !node->children().empty()) {
|
|
85
|
+
|
|
86
|
+
mdp::ByteBuffer subject = node->children().front().text;
|
|
87
|
+
|
|
88
|
+
TrimString(subject);
|
|
89
|
+
|
|
90
|
+
if (RegexMatch(subject, MSONMixinRegex)) {
|
|
91
|
+
return MSONMixinSectionType;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return UndefinedSectionType;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/** MSON Mixin Section Parser */
|
|
100
|
+
typedef SectionParser<mson::Mixin, ListSectionAdapter> MSONMixinParser;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
#endif
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MSONNamedTypeParser.h
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 11/5/14.
|
|
6
|
+
// Copyright (c) 2014 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SNOWCRASH_MSONNAMEDTYPEPARSER_H
|
|
10
|
+
#define SNOWCRASH_MSONNAMEDTYPEPARSER_H
|
|
11
|
+
|
|
12
|
+
#include "MSONValueMemberParser.h"
|
|
13
|
+
|
|
14
|
+
using namespace scpl;
|
|
15
|
+
|
|
16
|
+
namespace snowcrash {
|
|
17
|
+
|
|
18
|
+
/** MSON reserved characters matching regex */
|
|
19
|
+
const char* const MSONReservedCharsRegex = "[]:\()<>\{}[_*+`-]+";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* MSON Named Type Section Processor
|
|
23
|
+
*/
|
|
24
|
+
template<>
|
|
25
|
+
struct SectionProcessor<mson::NamedType> : public SignatureSectionProcessorBase<mson::NamedType> {
|
|
26
|
+
|
|
27
|
+
static SignatureTraits signatureTraits() {
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
SignatureTraits signatureTraits(SignatureTraits::IdentifierTrait |
|
|
31
|
+
SignatureTraits::AttributesTrait);
|
|
32
|
+
|
|
33
|
+
return signatureTraits;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static MarkdownNodeIterator finalizeSignature(const MarkdownNodeIterator& node,
|
|
37
|
+
SectionParserData& pd,
|
|
38
|
+
const Signature& signature,
|
|
39
|
+
const ParseResultRef<mson::NamedType>& out) {
|
|
40
|
+
|
|
41
|
+
mson::parseTypeName(signature.identifier, out.node.name, false);
|
|
42
|
+
mson::parseTypeDefinition(node, pd, signature.attributes, out.report, out.node.typeDefinition);
|
|
43
|
+
|
|
44
|
+
mdp::ByteBuffer subject = node->text;
|
|
45
|
+
TrimString(subject);
|
|
46
|
+
|
|
47
|
+
if (subject[0] != '`' && RegexMatch(out.node.name.symbol.literal, MSONReservedCharsRegex)) {
|
|
48
|
+
|
|
49
|
+
// WARN: named type name should not contain reserved characters
|
|
50
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
51
|
+
out.report.warnings.push_back(Warning("please escape the name of the data structure using backticks since it contains MSON reserved characters",
|
|
52
|
+
FormattingWarning,
|
|
53
|
+
sourceMap));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (pd.exportSourceMap()) {
|
|
57
|
+
|
|
58
|
+
if (!out.node.name.empty()) {
|
|
59
|
+
out.sourceMap.name.sourceMap = node->sourceMap;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (!out.node.typeDefinition.empty()) {
|
|
63
|
+
out.sourceMap.typeDefinition.sourceMap = node->sourceMap;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Named types should have type specification when sub-typed from primitive types
|
|
68
|
+
if (out.node.typeDefinition.baseType == mson::UndefinedBaseType) {
|
|
69
|
+
out.node.typeDefinition.baseType = mson::ImplicitObjectBaseType;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Setup named type context
|
|
73
|
+
pd.namedTypeContext = out.node.name.symbol.literal;
|
|
74
|
+
|
|
75
|
+
return ++MarkdownNodeIterator(node);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
static MarkdownNodeIterator processDescription(const MarkdownNodeIterator& node,
|
|
79
|
+
const MarkdownNodes& siblings,
|
|
80
|
+
SectionParserData& pd,
|
|
81
|
+
const ParseResultRef<mson::NamedType>& out) {
|
|
82
|
+
|
|
83
|
+
return SectionProcessor<mson::ValueMember>::blockDescription(node, pd, out.node.sections, out.sourceMap.sections);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
static MarkdownNodeIterator processNestedSection(const MarkdownNodeIterator& node,
|
|
87
|
+
const MarkdownNodes& siblings,
|
|
88
|
+
SectionParserData& pd,
|
|
89
|
+
const ParseResultRef<mson::NamedType>& out) {
|
|
90
|
+
|
|
91
|
+
ParseResultRef<mson::TypeSections> typeSections(out.report, out.node.sections, out.sourceMap.sections);
|
|
92
|
+
|
|
93
|
+
return SectionProcessor<mson::ValueMember>
|
|
94
|
+
::processNestedMembers<MSONTypeSectionHeaderParser>(node, siblings, pd, typeSections,
|
|
95
|
+
out.node.typeDefinition.baseType);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
static bool isDescriptionNode(const MarkdownNodeIterator& node,
|
|
99
|
+
SectionType sectionType) {
|
|
100
|
+
|
|
101
|
+
return SectionProcessor<mson::ValueMember>::isDescriptionNode(node, sectionType);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
static SectionType sectionType(const MarkdownNodeIterator& node) {
|
|
105
|
+
|
|
106
|
+
SectionType sectionType = SectionKeywordSignature(node);
|
|
107
|
+
|
|
108
|
+
if (node->type == mdp::HeaderMarkdownNodeType &&
|
|
109
|
+
sectionType == UndefinedSectionType) {
|
|
110
|
+
|
|
111
|
+
return MSONNamedTypeSectionType;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return UndefinedSectionType;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
static SectionType nestedSectionType(const MarkdownNodeIterator& node) {
|
|
118
|
+
|
|
119
|
+
return SectionProcessor<mson::ValueMember>::nestedSectionType(node);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
static void finalize(const MarkdownNodeIterator& node,
|
|
123
|
+
SectionParserData& pd,
|
|
124
|
+
const ParseResultRef<mson::NamedType>& out) {
|
|
125
|
+
|
|
126
|
+
// Clear named type context
|
|
127
|
+
pd.namedTypeContext.clear();
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
/** MSON Named Type Section Parser */
|
|
132
|
+
typedef SectionParser<mson::NamedType, HeaderSectionAdapter> MSONNamedTypeParser;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
#endif
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MSONOneOfParser.cc
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 11/12/14.
|
|
6
|
+
// Copyright (c) 2014 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#include "MSONOneOfParser.h"
|
|
10
|
+
#include "MSONTypeSectionParser.h"
|
|
11
|
+
#include "MSONPropertyMemberParser.h"
|
|
12
|
+
|
|
13
|
+
namespace snowcrash {
|
|
14
|
+
|
|
15
|
+
/** Implementation of processNestedSection */
|
|
16
|
+
MarkdownNodeIterator SectionProcessor<mson::OneOf>::processNestedSection(const MarkdownNodeIterator& node,
|
|
17
|
+
const MarkdownNodes& siblings,
|
|
18
|
+
SectionParserData& pd,
|
|
19
|
+
const ParseResultRef<mson::OneOf>& out) {
|
|
20
|
+
|
|
21
|
+
MarkdownNodeIterator cur = node;
|
|
22
|
+
mson::Element element;
|
|
23
|
+
SourceMap<mson::Element> elementSM;
|
|
24
|
+
|
|
25
|
+
switch (pd.sectionContext()) {
|
|
26
|
+
case MSONMixinSectionType:
|
|
27
|
+
{
|
|
28
|
+
IntermediateParseResult<mson::Mixin> mixin(out.report);
|
|
29
|
+
cur = MSONMixinParser::parse(node, siblings, pd, mixin);
|
|
30
|
+
|
|
31
|
+
element.build(mixin.node);
|
|
32
|
+
|
|
33
|
+
if (pd.exportSourceMap()) {
|
|
34
|
+
elementSM.mixin = mixin.sourceMap;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
case MSONOneOfSectionType:
|
|
41
|
+
{
|
|
42
|
+
IntermediateParseResult<mson::OneOf> oneOf(out.report);
|
|
43
|
+
cur = MSONOneOfParser::parse(node, siblings, pd, oneOf);
|
|
44
|
+
|
|
45
|
+
element.build(oneOf.node);
|
|
46
|
+
|
|
47
|
+
if (pd.exportSourceMap()) {
|
|
48
|
+
elementSM = oneOf.sourceMap;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
case MSONPropertyMembersSectionType:
|
|
55
|
+
{
|
|
56
|
+
IntermediateParseResult<mson::TypeSection> typeSection(out.report);
|
|
57
|
+
typeSection.node.baseType = mson::ObjectBaseType;
|
|
58
|
+
|
|
59
|
+
cur = MSONTypeSectionListParser::parse(node, siblings, pd, typeSection);
|
|
60
|
+
|
|
61
|
+
element.buildFromElements(typeSection.node.content.elements());
|
|
62
|
+
|
|
63
|
+
if (pd.exportSourceMap()) {
|
|
64
|
+
elementSM = typeSection.sourceMap.elements();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
case MSONPropertyMemberSectionType:
|
|
71
|
+
{
|
|
72
|
+
IntermediateParseResult<mson::PropertyMember> propertyMember(out.report);
|
|
73
|
+
cur = MSONPropertyMemberParser::parse(node, siblings, pd, propertyMember);
|
|
74
|
+
|
|
75
|
+
element.build(propertyMember.node);
|
|
76
|
+
|
|
77
|
+
if (pd.exportSourceMap()) {
|
|
78
|
+
elementSM.property = propertyMember.sourceMap;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
default:
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (element.klass != mson::Element::UndefinedClass) {
|
|
89
|
+
out.node.push_back(element);
|
|
90
|
+
|
|
91
|
+
if (pd.exportSourceMap()) {
|
|
92
|
+
out.sourceMap.collection.push_back(elementSM);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return cur;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/** Implementation of nestedSectionType */
|
|
100
|
+
SectionType SectionProcessor<mson::OneOf>::nestedSectionType(const MarkdownNodeIterator& node) {
|
|
101
|
+
|
|
102
|
+
SectionType nestedType = UndefinedSectionType;
|
|
103
|
+
|
|
104
|
+
// Check if mson mixin section
|
|
105
|
+
nestedType = SectionProcessor<mson::Mixin>::sectionType(node);
|
|
106
|
+
|
|
107
|
+
if (nestedType != UndefinedSectionType) {
|
|
108
|
+
return nestedType;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Check if mson one of section
|
|
112
|
+
nestedType = SectionProcessor<mson::OneOf>::sectionType(node);
|
|
113
|
+
|
|
114
|
+
if (nestedType != UndefinedSectionType) {
|
|
115
|
+
return nestedType;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Check if mson member type section section
|
|
119
|
+
nestedType = SectionProcessor<mson::TypeSection>::sectionType(node);
|
|
120
|
+
|
|
121
|
+
if (nestedType != UndefinedSectionType) {
|
|
122
|
+
return nestedType;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Return property member type section if list item
|
|
126
|
+
if (node->type == mdp::ListItemMarkdownNodeType) {
|
|
127
|
+
return MSONPropertyMemberSectionType;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return UndefinedSectionType;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MSONOneOfParser.h
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 11/5/14.
|
|
6
|
+
// Copyright (c) 2014 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SNOWCRASH_MSONONEOFPARSER_H
|
|
10
|
+
#define SNOWCRASH_MSONONEOFPARSER_H
|
|
11
|
+
|
|
12
|
+
#include "MSONMixinParser.h"
|
|
13
|
+
|
|
14
|
+
using namespace scpl;
|
|
15
|
+
|
|
16
|
+
namespace snowcrash {
|
|
17
|
+
|
|
18
|
+
/** MSON One Of matching regex */
|
|
19
|
+
const char* const MSONOneOfRegex = "^[[:blank:]]*[Oo]ne[[:blank:]]+[Oo]f[[:blank:]]*$";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* MSON One Of Section Processor
|
|
23
|
+
*/
|
|
24
|
+
template<>
|
|
25
|
+
struct SectionProcessor<mson::OneOf> : public SignatureSectionProcessorBase<mson::OneOf> {
|
|
26
|
+
|
|
27
|
+
static SignatureTraits signatureTraits() {
|
|
28
|
+
|
|
29
|
+
SignatureTraits signatureTraits(SignatureTraits::IdentifierTrait);
|
|
30
|
+
|
|
31
|
+
return signatureTraits;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
NO_SECTION_DESCRIPTION(mson::OneOf)
|
|
35
|
+
|
|
36
|
+
static MarkdownNodeIterator processNestedSection(const MarkdownNodeIterator&,
|
|
37
|
+
const MarkdownNodes&,
|
|
38
|
+
SectionParserData&,
|
|
39
|
+
const ParseResultRef<mson::OneOf>&);
|
|
40
|
+
|
|
41
|
+
static void finalize(const MarkdownNodeIterator& node,
|
|
42
|
+
SectionParserData& pd,
|
|
43
|
+
const ParseResultRef<mson::OneOf>& out) {
|
|
44
|
+
|
|
45
|
+
if (out.node.empty()) {
|
|
46
|
+
|
|
47
|
+
// WARN: one of type do not have nested members
|
|
48
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
49
|
+
out.report.warnings.push_back(Warning("one of type must have nested members",
|
|
50
|
+
EmptyDefinitionWarning,
|
|
51
|
+
sourceMap));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static SectionType sectionType(const MarkdownNodeIterator& node) {
|
|
56
|
+
|
|
57
|
+
if (node->type == mdp::ListItemMarkdownNodeType
|
|
58
|
+
&& !node->children().empty()) {
|
|
59
|
+
|
|
60
|
+
mdp::ByteBuffer remaining, subject = node->children().front().text;
|
|
61
|
+
|
|
62
|
+
subject = GetFirstLine(subject, remaining);
|
|
63
|
+
TrimString(subject);
|
|
64
|
+
|
|
65
|
+
if (RegexMatch(subject, MSONOneOfRegex)) {
|
|
66
|
+
return MSONOneOfSectionType;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return UndefinedSectionType;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
static SectionType nestedSectionType(const MarkdownNodeIterator&);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/** MSON One Of Section Parser */
|
|
77
|
+
typedef SectionParser<mson::OneOf, ListSectionAdapter> MSONOneOfParser;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
#endif
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MSONParameterParser.h
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 12/03/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SNOWCRASH_MSONPARAMETERPARSER_H
|
|
10
|
+
#define SNOWCRASH_MSONPARAMETERPARSER_H
|
|
11
|
+
|
|
12
|
+
#include "ParameterParser.h"
|
|
13
|
+
#include "MSONValueMemberParser.h"
|
|
14
|
+
#include "MSONTypeSectionParser.h"
|
|
15
|
+
|
|
16
|
+
using namespace scpl;
|
|
17
|
+
|
|
18
|
+
namespace snowcrash {
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* MSON Parameter Section Processor
|
|
22
|
+
*/
|
|
23
|
+
template<>
|
|
24
|
+
struct SectionProcessor<MSONParameter> : public SignatureSectionProcessorBase<MSONParameter> {
|
|
25
|
+
|
|
26
|
+
static SignatureTraits signatureTraits() {
|
|
27
|
+
|
|
28
|
+
SignatureTraits signatureTraits(SignatureTraits::IdentifierTrait |
|
|
29
|
+
SignatureTraits::ValuesTrait |
|
|
30
|
+
SignatureTraits::AttributesTrait |
|
|
31
|
+
SignatureTraits::ContentTrait);
|
|
32
|
+
|
|
33
|
+
return signatureTraits;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static MarkdownNodeIterator finalizeSignature(const MarkdownNodeIterator& node,
|
|
37
|
+
SectionParserData& pd,
|
|
38
|
+
const Signature& signature,
|
|
39
|
+
const ParseResultRef<MSONParameter>& out) {
|
|
40
|
+
|
|
41
|
+
out.node.name = signature.identifier;
|
|
42
|
+
out.node.description = signature.content;
|
|
43
|
+
out.node.exampleValue = signature.value;
|
|
44
|
+
|
|
45
|
+
if (!signature.remainingContent.empty()) {
|
|
46
|
+
out.node.description += "\n" + signature.remainingContent + "\n";
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
SectionProcessor<Parameter>::parseAttributes(node, pd, signature.attributes, out, false);
|
|
50
|
+
|
|
51
|
+
if (pd.exportSourceMap()) {
|
|
52
|
+
if (!out.node.name.empty()) {
|
|
53
|
+
out.sourceMap.name.sourceMap = node->sourceMap;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (!out.node.description.empty()) {
|
|
57
|
+
out.sourceMap.description.sourceMap = node->sourceMap;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (!out.node.exampleValue.empty()) {
|
|
61
|
+
out.sourceMap.exampleValue.sourceMap = node->sourceMap;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return ++MarkdownNodeIterator(node);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
static MarkdownNodeIterator processNestedSection(const MarkdownNodeIterator& node,
|
|
69
|
+
const MarkdownNodes& siblings,
|
|
70
|
+
SectionParserData& pd,
|
|
71
|
+
const ParseResultRef<MSONParameter>& out) {
|
|
72
|
+
|
|
73
|
+
SectionType sectionType = pd.sectionContext();
|
|
74
|
+
MarkdownNodeIterator cur = node;
|
|
75
|
+
IntermediateParseResult<mson::TypeSection> typeSection(out.report);
|
|
76
|
+
|
|
77
|
+
switch (sectionType) {
|
|
78
|
+
case MSONSampleDefaultSectionType:
|
|
79
|
+
{
|
|
80
|
+
typeSection.node.baseType = mson::ImplicitPrimitiveBaseType;
|
|
81
|
+
cur = MSONTypeSectionListParser::parse(node, siblings, pd, typeSection);
|
|
82
|
+
|
|
83
|
+
if (typeSection.node.content.value.empty()) {
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (typeSection.node.klass == mson::TypeSection::DefaultClass) {
|
|
88
|
+
out.node.defaultValue = typeSection.node.content.value;
|
|
89
|
+
|
|
90
|
+
if (pd.exportSourceMap()) {
|
|
91
|
+
out.sourceMap.defaultValue.sourceMap = typeSection.sourceMap.value.sourceMap;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else if (typeSection.node.klass == mson::TypeSection::SampleClass) {
|
|
95
|
+
out.node.exampleValue = typeSection.node.content.value;
|
|
96
|
+
out.sourceMap.exampleValue.sourceMap = typeSection.sourceMap.value.sourceMap;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
case MSONValueMembersSectionType:
|
|
103
|
+
{
|
|
104
|
+
typeSection.node.baseType = mson::ImplicitValueBaseType;
|
|
105
|
+
cur = MSONTypeSectionListParser::parse(node, siblings, pd, typeSection);
|
|
106
|
+
|
|
107
|
+
out.node.values.clear();
|
|
108
|
+
|
|
109
|
+
if (pd.exportSourceMap()) {
|
|
110
|
+
out.sourceMap.values.collection.clear();
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
for (size_t i = 0; i < typeSection.node.content.elements().size(); i++) {
|
|
114
|
+
mson::ValueMember valueMember = typeSection.node.content.elements().at(i).content.value;
|
|
115
|
+
SourceMap<mson::ValueMember> valueMemberSM;
|
|
116
|
+
|
|
117
|
+
if (pd.exportSourceMap()) {
|
|
118
|
+
valueMemberSM = typeSection.sourceMap.elements().collection.at(i).value;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (valueMember.valueDefinition.values.size() == 1) {
|
|
122
|
+
out.node.values.push_back(valueMember.valueDefinition.values[0].literal);
|
|
123
|
+
|
|
124
|
+
if (pd.exportSourceMap()) {
|
|
125
|
+
SourceMap<Value> valueSM;
|
|
126
|
+
valueSM.sourceMap = valueMemberSM.valueDefinition.sourceMap;
|
|
127
|
+
|
|
128
|
+
out.sourceMap.values.collection.push_back(valueSM);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
default:
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return cur;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
static void finalize(const MarkdownNodeIterator& node,
|
|
144
|
+
SectionParserData& pd,
|
|
145
|
+
const ParseResultRef<MSONParameter>& out) {
|
|
146
|
+
|
|
147
|
+
SectionProcessor<Parameter>::checkDefaultAndRequiredClash<MSONParameter>(node, pd, out);
|
|
148
|
+
SectionProcessor<Parameter>::checkExampleAndDefaultValue<MSONParameter>(node, pd, out);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
static SectionType nestedSectionType(const MarkdownNodeIterator& node) {
|
|
152
|
+
|
|
153
|
+
SectionType nestedType = UndefinedSectionType;
|
|
154
|
+
|
|
155
|
+
// Recognize `Default` and `Members` sections
|
|
156
|
+
nestedType = SectionProcessor<mson::TypeSection>::sectionType(node);
|
|
157
|
+
|
|
158
|
+
return nestedType;
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
/** MSON Parameter Section Parser */
|
|
163
|
+
typedef SectionParser<MSONParameter, ListSectionAdapter> MSONParameterParser;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
#endif
|