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,106 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MSONPropertyMemberParser.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_MSONPROPERTYMEMBERPARSER_H
|
|
10
|
+
#define SNOWCRASH_MSONPROPERTYMEMBERPARSER_H
|
|
11
|
+
|
|
12
|
+
#include "MSONValueMemberParser.h"
|
|
13
|
+
|
|
14
|
+
using namespace scpl;
|
|
15
|
+
|
|
16
|
+
namespace snowcrash {
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* MSON Property Member Section Processor
|
|
20
|
+
*/
|
|
21
|
+
template<>
|
|
22
|
+
struct SectionProcessor<mson::PropertyMember> : public SignatureSectionProcessorBase<mson::PropertyMember> {
|
|
23
|
+
|
|
24
|
+
static Signature parseSignature(const MarkdownNodeIterator& node,
|
|
25
|
+
snowcrash::SectionParserData& pd,
|
|
26
|
+
const SignatureTraits& traits,
|
|
27
|
+
snowcrash::Report& report,
|
|
28
|
+
const mdp::ByteBuffer& subjectOrig = "") {
|
|
29
|
+
|
|
30
|
+
std::string subject = subjectOrig;
|
|
31
|
+
|
|
32
|
+
if (node->type == mdp::HeaderMarkdownNodeType) {
|
|
33
|
+
subject = ReconstructMarkdownHeader(*node);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return SignatureSectionProcessorBase<mson::PropertyMember>::parseSignature(node, pd, traits, report, subject);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
static SignatureTraits signatureTraits() {
|
|
40
|
+
|
|
41
|
+
SignatureTraits signatureTraits(SignatureTraits::IdentifierTrait |
|
|
42
|
+
SignatureTraits::ValuesTrait |
|
|
43
|
+
SignatureTraits::AttributesTrait |
|
|
44
|
+
SignatureTraits::ContentTrait);
|
|
45
|
+
|
|
46
|
+
return signatureTraits;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static MarkdownNodeIterator finalizeSignature(const MarkdownNodeIterator& node,
|
|
50
|
+
SectionParserData& pd,
|
|
51
|
+
const Signature& signature,
|
|
52
|
+
const ParseResultRef<mson::PropertyMember>& out) {
|
|
53
|
+
|
|
54
|
+
mson::parsePropertyName(node, pd, signature.identifier, out.report, out.node.name);
|
|
55
|
+
|
|
56
|
+
if (pd.exportSourceMap() && !out.node.name.empty()) {
|
|
57
|
+
out.sourceMap.name.sourceMap = node->sourceMap;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return SectionProcessor<mson::ValueMember>::useSignatureData(node, pd, signature, out.report, out.node, out.sourceMap);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
static MarkdownNodeIterator processDescription(const MarkdownNodeIterator& node,
|
|
64
|
+
const MarkdownNodes& siblings,
|
|
65
|
+
SectionParserData& pd,
|
|
66
|
+
const ParseResultRef<mson::PropertyMember>& out) {
|
|
67
|
+
|
|
68
|
+
return SectionProcessor<mson::ValueMember>::blockDescription(node, pd, out.node.sections, out.sourceMap.sections);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
static MarkdownNodeIterator processNestedSection(const MarkdownNodeIterator& node,
|
|
72
|
+
const MarkdownNodes& siblings,
|
|
73
|
+
SectionParserData& pd,
|
|
74
|
+
const ParseResultRef<mson::PropertyMember>& out) {
|
|
75
|
+
|
|
76
|
+
ParseResultRef<mson::TypeSections> typeSections(out.report, out.node.sections, out.sourceMap.sections);
|
|
77
|
+
|
|
78
|
+
return SectionProcessor<mson::ValueMember>
|
|
79
|
+
::processNestedMembers<MSONTypeSectionListParser>(node, siblings, pd, typeSections,
|
|
80
|
+
out.node.valueDefinition.typeDefinition.baseType);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
static bool isDescriptionNode(const MarkdownNodeIterator& node,
|
|
84
|
+
SectionType sectionType) {
|
|
85
|
+
|
|
86
|
+
return SectionProcessor<mson::ValueMember>::isDescriptionNode(node, sectionType);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static SectionType nestedSectionType(const MarkdownNodeIterator& node) {
|
|
90
|
+
|
|
91
|
+
return SectionProcessor<mson::ValueMember>::nestedSectionType(node);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
static void finalize(const MarkdownNodeIterator& node,
|
|
95
|
+
SectionParserData& pd,
|
|
96
|
+
const ParseResultRef<mson::PropertyMember>& out) {
|
|
97
|
+
|
|
98
|
+
SectionProcessor<mson::ValueMember>::finalizeImplicitBaseType(out.node.valueDefinition.typeDefinition.baseType);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/** MSON Property Member Section Parser */
|
|
103
|
+
typedef SectionParser<mson::PropertyMember, ListSectionAdapter> MSONPropertyMemberParser;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
#endif
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MSONSourcemap.cc
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 03/01/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#include "MSONSourcemap.h"
|
|
10
|
+
|
|
11
|
+
using namespace snowcrash;
|
|
12
|
+
|
|
13
|
+
bool SourceMap<mson::NamedType>::empty() const
|
|
14
|
+
{
|
|
15
|
+
return (name.sourceMap.empty() &&
|
|
16
|
+
typeDefinition.sourceMap.empty() &&
|
|
17
|
+
sections.collection.empty());
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
bool SourceMap<mson::ValueMember>::empty() const
|
|
21
|
+
{
|
|
22
|
+
return (description.sourceMap.empty() &&
|
|
23
|
+
valueDefinition.sourceMap.empty() &&
|
|
24
|
+
sections.collection.empty());
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
bool SourceMap<mson::PropertyMember>::empty() const
|
|
28
|
+
{
|
|
29
|
+
return (name.sourceMap.empty() &&
|
|
30
|
+
description.sourceMap.empty() &&
|
|
31
|
+
valueDefinition.sourceMap.empty() &&
|
|
32
|
+
sections.collection.empty());
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
SourceMap<mson::Elements>& SourceMap<mson::TypeSection>::elements()
|
|
36
|
+
{
|
|
37
|
+
if (!m_elements.get())
|
|
38
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
39
|
+
|
|
40
|
+
return *m_elements;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const SourceMap<mson::Elements>& SourceMap<mson::TypeSection>::elements() const
|
|
44
|
+
{
|
|
45
|
+
if (!m_elements.get())
|
|
46
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
47
|
+
|
|
48
|
+
return *m_elements;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
SourceMap<mson::TypeSection>::SourceMap(const SourceMap<mson::Markdown>& description_, const SourceMap<mson::Literal>& value_)
|
|
52
|
+
: description(description_), value(value_)
|
|
53
|
+
{
|
|
54
|
+
m_elements.reset(::new SourceMap<mson::Elements>);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
SourceMap<mson::TypeSection>::SourceMap(const SourceMap<mson::TypeSection>& rhs)
|
|
58
|
+
{
|
|
59
|
+
this->description = rhs.description;
|
|
60
|
+
this->value = rhs.value;
|
|
61
|
+
m_elements.reset(::new SourceMap<mson::Elements>(*rhs.m_elements.get()));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
SourceMap<mson::TypeSection>& SourceMap<mson::TypeSection>::operator=(const SourceMap<mson::TypeSection>& rhs)
|
|
65
|
+
{
|
|
66
|
+
this->description = rhs.description;
|
|
67
|
+
this->value = rhs.value;
|
|
68
|
+
m_elements.reset(::new SourceMap<mson::Elements>(*rhs.m_elements.get()));
|
|
69
|
+
|
|
70
|
+
return *this;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
SourceMap<mson::TypeSection>::~SourceMap()
|
|
74
|
+
{
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
SourceMap<mson::OneOf>& SourceMap<mson::Element>::oneOf()
|
|
78
|
+
{
|
|
79
|
+
if (!m_elements.get())
|
|
80
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
81
|
+
|
|
82
|
+
return *m_elements;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const SourceMap<mson::OneOf>& SourceMap<mson::Element>::oneOf() const
|
|
86
|
+
{
|
|
87
|
+
if (!m_elements.get())
|
|
88
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
89
|
+
|
|
90
|
+
return *m_elements;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
SourceMap<mson::Elements>& SourceMap<mson::Element>::elements()
|
|
94
|
+
{
|
|
95
|
+
if (!m_elements.get())
|
|
96
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
97
|
+
|
|
98
|
+
return *m_elements;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const SourceMap<mson::Elements>& SourceMap<mson::Element>::elements() const
|
|
102
|
+
{
|
|
103
|
+
if (!m_elements.get())
|
|
104
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
105
|
+
|
|
106
|
+
return *m_elements;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
SourceMap<mson::Element>& SourceMap<mson::Element>::operator=(const SourceMap<mson::Elements> &rhs)
|
|
110
|
+
{
|
|
111
|
+
m_elements.reset(::new SourceMap<mson::Elements>(rhs));
|
|
112
|
+
|
|
113
|
+
return *this;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
SourceMap<mson::Element>::SourceMap()
|
|
117
|
+
{
|
|
118
|
+
m_elements.reset(::new SourceMap<mson::Elements>);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
SourceMap<mson::Element>::SourceMap(const SourceMap<mson::Element>& rhs)
|
|
122
|
+
{
|
|
123
|
+
this->property = rhs.property;
|
|
124
|
+
this->value = rhs.value;
|
|
125
|
+
this->mixin = rhs.mixin;
|
|
126
|
+
m_elements.reset(::new SourceMap<mson::Elements>(*rhs.m_elements.get()));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
SourceMap<mson::Element>& SourceMap<mson::Element>::operator=(const SourceMap<mson::Element>& rhs)
|
|
130
|
+
{
|
|
131
|
+
this->property = rhs.property;
|
|
132
|
+
this->value = rhs.value;
|
|
133
|
+
this->mixin = rhs.mixin;
|
|
134
|
+
m_elements.reset(::new SourceMap<mson::Elements>(*rhs.m_elements.get()));
|
|
135
|
+
|
|
136
|
+
return *this;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
SourceMap<mson::Element>::~SourceMap()
|
|
140
|
+
{
|
|
141
|
+
}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MSONSourcemap.h
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 10/23/14.
|
|
6
|
+
// Copyright (c) 2014 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SNOWCRASH_MSONSOURCEMAP_H
|
|
10
|
+
#define SNOWCRASH_MSONSOURCEMAP_H
|
|
11
|
+
|
|
12
|
+
#include "Blueprint.h"
|
|
13
|
+
#include "MSON.h"
|
|
14
|
+
#include "MarkdownParser.h"
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* MSON Sourcemap Abstract Syntax Tree
|
|
18
|
+
* -----------------------------------
|
|
19
|
+
*
|
|
20
|
+
* Data types in this document define the MSON Sourcemap AST
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
namespace snowcrash {
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Default Container for collections.
|
|
27
|
+
*
|
|
28
|
+
* FIXME: Use C++11 template aliases when migrating to C++11.
|
|
29
|
+
*/
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
#define SOURCE_MAP_COLLECTION(T, TC) template<>\
|
|
33
|
+
struct SourceMap<TC> {\
|
|
34
|
+
Collection<SourceMap<T> >::type collection;\
|
|
35
|
+
};\
|
|
36
|
+
|
|
37
|
+
namespace snowcrash {
|
|
38
|
+
|
|
39
|
+
struct SourceMapBase {
|
|
40
|
+
mdp::BytesRangeSet sourceMap;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
template<typename T>
|
|
44
|
+
struct SourceMap : public SourceMapBase {
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/** Source Map of Collection of Type Names */
|
|
48
|
+
SOURCE_MAP_COLLECTION(mson::TypeName, mson::TypeNames)
|
|
49
|
+
|
|
50
|
+
/** Forward Declaration for Source Map of Element */
|
|
51
|
+
template<>
|
|
52
|
+
struct SourceMap<mson::Element>;
|
|
53
|
+
|
|
54
|
+
/** Source Map of Collection of Elements */
|
|
55
|
+
SOURCE_MAP_COLLECTION(mson::Element, mson::Elements)
|
|
56
|
+
|
|
57
|
+
/** Source Map structure for Type Section */
|
|
58
|
+
template<>
|
|
59
|
+
struct SourceMap<mson::TypeSection> : public SourceMapBase {
|
|
60
|
+
|
|
61
|
+
/** EITHER Source Map of Block Description */
|
|
62
|
+
SourceMap<mson::Markdown> description;
|
|
63
|
+
|
|
64
|
+
/** OR Source Map of Literal */
|
|
65
|
+
SourceMap<mson::Literal> value;
|
|
66
|
+
|
|
67
|
+
/** OR Source Map of Collection of elements */
|
|
68
|
+
SourceMap<mson::Elements>& elements();
|
|
69
|
+
const SourceMap<mson::Elements>& elements() const;
|
|
70
|
+
|
|
71
|
+
/** Constructor */
|
|
72
|
+
SourceMap(const SourceMap<mson::Markdown>& description_ = SourceMap<mson::Markdown>(),
|
|
73
|
+
const SourceMap<mson::Literal>& value_ = SourceMap<mson::Literal>());
|
|
74
|
+
|
|
75
|
+
/** Copy constructor */
|
|
76
|
+
SourceMap(const SourceMap<mson::TypeSection>& rhs);
|
|
77
|
+
|
|
78
|
+
/** Assignment operator */
|
|
79
|
+
SourceMap<mson::TypeSection>& operator=(const SourceMap<mson::TypeSection>& rhs);
|
|
80
|
+
|
|
81
|
+
/** Desctructor */
|
|
82
|
+
~SourceMap();
|
|
83
|
+
|
|
84
|
+
private:
|
|
85
|
+
std::unique_ptr<SourceMap<mson::Elements> > m_elements;
|
|
86
|
+
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/** Source Map of Collection of Type Sections */
|
|
90
|
+
SOURCE_MAP_COLLECTION(mson::TypeSection, mson::TypeSections)
|
|
91
|
+
|
|
92
|
+
/** Source Map structure for Named Type */
|
|
93
|
+
template<>
|
|
94
|
+
struct SourceMap<mson::NamedType> : public SourceMapBase {
|
|
95
|
+
|
|
96
|
+
/** Source Map of Type Name */
|
|
97
|
+
SourceMap<mson::TypeName> name;
|
|
98
|
+
|
|
99
|
+
/** Source Map of Type Definition */
|
|
100
|
+
SourceMap<mson::TypeDefinition> typeDefinition;
|
|
101
|
+
|
|
102
|
+
/** Source Map of Type Sections */
|
|
103
|
+
SourceMap<mson::TypeSections> sections;
|
|
104
|
+
|
|
105
|
+
/** Check if empty */
|
|
106
|
+
bool empty() const;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/** Source Map structure for Value Member */
|
|
110
|
+
template<>
|
|
111
|
+
struct SourceMap<mson::ValueMember> : public SourceMapBase {
|
|
112
|
+
|
|
113
|
+
/** Source Map of Description */
|
|
114
|
+
SourceMap<mson::Markdown> description;
|
|
115
|
+
|
|
116
|
+
/** Source Map of Value Definition */
|
|
117
|
+
SourceMap<mson::ValueDefinition> valueDefinition;
|
|
118
|
+
|
|
119
|
+
/** Source Map of Type Sections */
|
|
120
|
+
SourceMap<mson::TypeSections> sections;
|
|
121
|
+
|
|
122
|
+
/** Check if empty */
|
|
123
|
+
bool empty() const;
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
/** Source Map structure for Property Member */
|
|
127
|
+
template<>
|
|
128
|
+
struct SourceMap<mson::PropertyMember> : public SourceMap<mson::ValueMember> {
|
|
129
|
+
|
|
130
|
+
/** Source Map for Property Name */
|
|
131
|
+
SourceMap<mson::PropertyName> name;
|
|
132
|
+
|
|
133
|
+
/** Check if empty */
|
|
134
|
+
bool empty() const;
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
/** Source Map structure for One Of */
|
|
138
|
+
// `OneOf` is the same as `Elements`
|
|
139
|
+
|
|
140
|
+
/** Source Map structure for Element */
|
|
141
|
+
template<>
|
|
142
|
+
struct SourceMap<mson::Element> : public SourceMapBase {
|
|
143
|
+
|
|
144
|
+
/** EITHER Source Map of Property Member */
|
|
145
|
+
SourceMap<mson::PropertyMember> property;
|
|
146
|
+
|
|
147
|
+
/** OR Source Map of Value Member */
|
|
148
|
+
SourceMap<mson::ValueMember> value;
|
|
149
|
+
|
|
150
|
+
/** OR Source Map of Mixin */
|
|
151
|
+
SourceMap<mson::Mixin> mixin;
|
|
152
|
+
|
|
153
|
+
/** OR Source Map of One Of */
|
|
154
|
+
SourceMap<mson::OneOf>& oneOf();
|
|
155
|
+
const SourceMap<mson::OneOf>& oneOf() const;
|
|
156
|
+
|
|
157
|
+
/** OR Source Map of Collection of elements */
|
|
158
|
+
SourceMap<mson::Elements>& elements();
|
|
159
|
+
const SourceMap<mson::Elements>& elements() const;
|
|
160
|
+
|
|
161
|
+
/** Builds the structure from group of elements */
|
|
162
|
+
SourceMap<mson::Element>& operator=(const SourceMap<mson::Elements>& rhs);
|
|
163
|
+
|
|
164
|
+
/** Constructor */
|
|
165
|
+
SourceMap();
|
|
166
|
+
|
|
167
|
+
/** Copy constructor */
|
|
168
|
+
SourceMap(const SourceMap<mson::Element>& rhs);
|
|
169
|
+
|
|
170
|
+
/** Assignment operator */
|
|
171
|
+
SourceMap<mson::Element>& operator=(const SourceMap<mson::Element>& rhs);
|
|
172
|
+
|
|
173
|
+
/** Destructor */
|
|
174
|
+
~SourceMap();
|
|
175
|
+
|
|
176
|
+
private:
|
|
177
|
+
std::unique_ptr<SourceMap<mson::Elements> > m_elements;
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
#endif
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MSONTypeSectionParser.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 "MSONPropertyMemberParser.h"
|
|
11
|
+
|
|
12
|
+
namespace snowcrash {
|
|
13
|
+
|
|
14
|
+
/** Implementation of processNestedSection */
|
|
15
|
+
MarkdownNodeIterator SectionProcessor<mson::TypeSection>::processNestedSection(const MarkdownNodeIterator& node,
|
|
16
|
+
const MarkdownNodes& siblings,
|
|
17
|
+
SectionParserData& pd,
|
|
18
|
+
const ParseResultRef<mson::TypeSection>& out) {
|
|
19
|
+
|
|
20
|
+
MarkdownNodeIterator cur = node;
|
|
21
|
+
SectionType parentSectionType = pd.parentSectionContext();
|
|
22
|
+
|
|
23
|
+
mson::Element element;
|
|
24
|
+
SourceMap<mson::Element> elementSM;
|
|
25
|
+
|
|
26
|
+
if (node->type == mdp::HeaderMarkdownNodeType) {
|
|
27
|
+
return cur;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (parentSectionType == MSONPropertyMembersSectionType ||
|
|
31
|
+
parentSectionType == MSONValueMembersSectionType) {
|
|
32
|
+
|
|
33
|
+
switch (pd.sectionContext()) {
|
|
34
|
+
case MSONMixinSectionType:
|
|
35
|
+
{
|
|
36
|
+
IntermediateParseResult<mson::Mixin> mixin(out.report);
|
|
37
|
+
cur = MSONMixinParser::parse(node, siblings, pd, mixin);
|
|
38
|
+
|
|
39
|
+
element.build(mixin.node);
|
|
40
|
+
|
|
41
|
+
if (pd.exportSourceMap()) {
|
|
42
|
+
elementSM.mixin = mixin.sourceMap;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
case MSONOneOfSectionType:
|
|
49
|
+
{
|
|
50
|
+
if (parentSectionType != MSONPropertyMembersSectionType) {
|
|
51
|
+
|
|
52
|
+
// WARN: One of can not be a nested member for a non object structure type
|
|
53
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
54
|
+
out.report.warnings.push_back(Warning("one-of can not be a nested member for a type not sub typed from object",
|
|
55
|
+
LogicalErrorWarning,
|
|
56
|
+
sourceMap));
|
|
57
|
+
|
|
58
|
+
return cur;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
IntermediateParseResult<mson::OneOf> oneOf(out.report);
|
|
62
|
+
cur = MSONOneOfParser::parse(node, siblings, pd, oneOf);
|
|
63
|
+
|
|
64
|
+
element.build(oneOf.node);
|
|
65
|
+
|
|
66
|
+
if (pd.exportSourceMap()) {
|
|
67
|
+
elementSM = oneOf.sourceMap;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
case MSONSectionType:
|
|
74
|
+
{
|
|
75
|
+
if (parentSectionType == MSONPropertyMembersSectionType) {
|
|
76
|
+
|
|
77
|
+
IntermediateParseResult<mson::PropertyMember> propertyMember(out.report);
|
|
78
|
+
cur = MSONPropertyMemberParser::parse(node, siblings, pd, propertyMember);
|
|
79
|
+
|
|
80
|
+
element.build(propertyMember.node);
|
|
81
|
+
|
|
82
|
+
if (pd.exportSourceMap()) {
|
|
83
|
+
elementSM.property = propertyMember.sourceMap;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
|
|
88
|
+
IntermediateParseResult<mson::ValueMember> valueMember(out.report);
|
|
89
|
+
cur = MSONValueMemberParser::parse(node, siblings, pd, valueMember);
|
|
90
|
+
|
|
91
|
+
element.build(valueMember.node);
|
|
92
|
+
|
|
93
|
+
if (pd.exportSourceMap()) {
|
|
94
|
+
elementSM.value = valueMember.sourceMap;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
default:
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else if (parentSectionType == MSONSampleDefaultSectionType) {
|
|
106
|
+
|
|
107
|
+
switch (pd.sectionContext()) {
|
|
108
|
+
case MSONMixinSectionType:
|
|
109
|
+
case MSONOneOfSectionType:
|
|
110
|
+
{
|
|
111
|
+
// WARN: mixin and oneOf not supported in sample/default
|
|
112
|
+
std::stringstream ss;
|
|
113
|
+
|
|
114
|
+
ss << "sample and default type sections cannot have `" << SectionName(pd.sectionContext()) << "` type";
|
|
115
|
+
|
|
116
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
117
|
+
out.report.warnings.push_back(Warning(ss.str(),
|
|
118
|
+
LogicalErrorWarning,
|
|
119
|
+
sourceMap));
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
case MSONSectionType:
|
|
124
|
+
{
|
|
125
|
+
if ((out.node.baseType == mson::ValueBaseType ||
|
|
126
|
+
out.node.baseType == mson::ImplicitValueBaseType) &&
|
|
127
|
+
node->type == mdp::ListItemMarkdownNodeType) {
|
|
128
|
+
|
|
129
|
+
IntermediateParseResult<mson::ValueMember> valueMember(out.report);
|
|
130
|
+
cur = MSONValueMemberParser::parse(node, siblings, pd, valueMember);
|
|
131
|
+
|
|
132
|
+
element.build(valueMember.node);
|
|
133
|
+
|
|
134
|
+
if (pd.exportSourceMap()) {
|
|
135
|
+
elementSM.value = valueMember.sourceMap;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if ((out.node.baseType == mson::ObjectBaseType ||
|
|
139
|
+
out.node.baseType == mson::ImplicitObjectBaseType) &&
|
|
140
|
+
node->type == mdp::ListItemMarkdownNodeType) {
|
|
141
|
+
|
|
142
|
+
IntermediateParseResult<mson::PropertyMember> propertyMember(out.report);
|
|
143
|
+
cur = MSONPropertyMemberParser::parse(node, siblings, pd, propertyMember);
|
|
144
|
+
|
|
145
|
+
element.build(propertyMember.node);
|
|
146
|
+
|
|
147
|
+
if (pd.exportSourceMap()) {
|
|
148
|
+
elementSM.property = propertyMember.sourceMap;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (out.node.baseType == mson::PrimitiveBaseType ||
|
|
153
|
+
out.node.baseType == mson::ImplicitPrimitiveBaseType) {
|
|
154
|
+
|
|
155
|
+
if (!out.node.content.value.empty()) {
|
|
156
|
+
TwoNewLines(out.node.content.value);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
mdp::ByteBuffer content = mdp::MapBytesRangeSet(node->sourceMap, pd.sourceData);
|
|
160
|
+
out.node.content.value += content;
|
|
161
|
+
|
|
162
|
+
if (pd.exportSourceMap() && !content.empty()) {
|
|
163
|
+
out.sourceMap.value.sourceMap.append(node->sourceMap);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
cur = ++MarkdownNodeIterator(node);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
default:
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (element.klass != mson::Element::UndefinedClass) {
|
|
178
|
+
out.node.content.elements().push_back(element);
|
|
179
|
+
|
|
180
|
+
if (pd.exportSourceMap()) {
|
|
181
|
+
out.sourceMap.elements().collection.push_back(elementSM);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return cur;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/** Implementation of nestedSectionType */
|
|
189
|
+
SectionType SectionProcessor<mson::TypeSection>::nestedSectionType(const MarkdownNodeIterator& node) {
|
|
190
|
+
|
|
191
|
+
SectionType nestedType = UndefinedSectionType;
|
|
192
|
+
|
|
193
|
+
// Check if mson mixin section
|
|
194
|
+
nestedType = SectionProcessor<mson::Mixin>::sectionType(node);
|
|
195
|
+
|
|
196
|
+
if (nestedType != UndefinedSectionType) {
|
|
197
|
+
return nestedType;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Check if mson one of section
|
|
201
|
+
nestedType = SectionProcessor<mson::OneOf>::sectionType(node);
|
|
202
|
+
|
|
203
|
+
if (nestedType != UndefinedSectionType) {
|
|
204
|
+
return nestedType;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
return MSONSectionType;
|
|
208
|
+
}
|
|
209
|
+
}
|