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,102 @@
|
|
|
1
|
+
//
|
|
2
|
+
// drafter.h
|
|
3
|
+
// drafter
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 2016-06-27
|
|
6
|
+
// Copyright (c) 2016 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef DRAFTER_H
|
|
10
|
+
#define DRAFTER_H
|
|
11
|
+
|
|
12
|
+
#ifdef __cplusplus
|
|
13
|
+
extern "C" {
|
|
14
|
+
#endif
|
|
15
|
+
|
|
16
|
+
//#if defined(BUILDING_DRAFTER)
|
|
17
|
+
#if defined(BUILDING_SNOWCRASH)
|
|
18
|
+
# define DEPRECATED
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#if defined(_MSC_VER)
|
|
22
|
+
# if !defined(DEPRECATED)
|
|
23
|
+
# define DEPRECATED __declspec(deprecated)
|
|
24
|
+
# endif
|
|
25
|
+
#elif defined(__clang__) || defined(__GNUC__)
|
|
26
|
+
# if !defined(DEPRECATED)
|
|
27
|
+
# define DEPRECATED __attribute__((deprecated))
|
|
28
|
+
# endif
|
|
29
|
+
#else
|
|
30
|
+
# if !defined(DEPRECATED)
|
|
31
|
+
# define DEPRECATED
|
|
32
|
+
# endif
|
|
33
|
+
#endif
|
|
34
|
+
|
|
35
|
+
#ifndef DRAFTER_API
|
|
36
|
+
# if defined _WIN32 || defined __CYGWIN__
|
|
37
|
+
# if defined(DRAFTER_BUILD_SHARED) /* build dll */
|
|
38
|
+
# define DRAFTER_API __declspec(dllexport)
|
|
39
|
+
# elif !defined(DRAFTER_BUILD_STATIC) /* use dll */
|
|
40
|
+
# define DRAFTER_API __declspec(dllimport)
|
|
41
|
+
# else /* static library */
|
|
42
|
+
# define DRAFTER_API /* nothing */
|
|
43
|
+
# endif
|
|
44
|
+
# else
|
|
45
|
+
# if __GNUC__ >= 4
|
|
46
|
+
# define DRAFTER_API __attribute__((visibility("default")))
|
|
47
|
+
# else
|
|
48
|
+
# define DRAFTER_API
|
|
49
|
+
# endif
|
|
50
|
+
# endif
|
|
51
|
+
#endif
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
#ifndef __cplusplus
|
|
55
|
+
#include <stdbool.h>
|
|
56
|
+
typedef struct drafter_result drafter_result;
|
|
57
|
+
#else
|
|
58
|
+
namespace refract {
|
|
59
|
+
struct IElement;
|
|
60
|
+
}
|
|
61
|
+
typedef refract::IElement drafter_result;
|
|
62
|
+
#endif
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
typedef enum {
|
|
66
|
+
DRAFTER_SERIALIZE_YAML = 0,
|
|
67
|
+
DRAFTER_SERIALIZE_JSON
|
|
68
|
+
} drafter_format;
|
|
69
|
+
|
|
70
|
+
typedef struct {
|
|
71
|
+
bool sourcemap;
|
|
72
|
+
drafter_format format;
|
|
73
|
+
} drafter_options;
|
|
74
|
+
|
|
75
|
+
/* Parse API Blueprint and serialize it to given format.*/
|
|
76
|
+
DRAFTER_API int drafter_parse_blueprint_to(const char* source,
|
|
77
|
+
char** out,
|
|
78
|
+
const drafter_options options);
|
|
79
|
+
|
|
80
|
+
/* Parse API Blueprint and return result, which is a opaque handle for
|
|
81
|
+
* later use*/
|
|
82
|
+
DRAFTER_API int drafter_parse_blueprint(const char* source, drafter_result** out);
|
|
83
|
+
|
|
84
|
+
/* Serialize result to given format*/
|
|
85
|
+
DRAFTER_API char* drafter_serialize(drafter_result *res, const drafter_options options);
|
|
86
|
+
|
|
87
|
+
/* Free memory alocated for result handler */
|
|
88
|
+
DRAFTER_API void drafter_free_result(drafter_result* result);
|
|
89
|
+
|
|
90
|
+
/* Parse API Blueprint and return only annotations, if NULL than
|
|
91
|
+
* document is error and warning free.*/
|
|
92
|
+
DRAFTER_API drafter_result* drafter_check_blueprint(const char* source);
|
|
93
|
+
|
|
94
|
+
DRAFTER_API unsigned int drafter_version(void);
|
|
95
|
+
|
|
96
|
+
DRAFTER_API const char* drafter_version_string(void);
|
|
97
|
+
|
|
98
|
+
#ifdef __cplusplus
|
|
99
|
+
}
|
|
100
|
+
#endif
|
|
101
|
+
|
|
102
|
+
#endif // #ifndef DRAFTER_H
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
//
|
|
2
|
+
// drafter_private.cc
|
|
3
|
+
// drafter
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 20/10/16.
|
|
6
|
+
// Copyright © 2016 Apiary. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#include "drafter_private.h"
|
|
10
|
+
|
|
11
|
+
#include "snowcrash.h"
|
|
12
|
+
|
|
13
|
+
#include "refract/Element.h"
|
|
14
|
+
#include "refract/FilterVisitor.h"
|
|
15
|
+
#include "refract/Query.h"
|
|
16
|
+
#include "refract/Iterate.h"
|
|
17
|
+
|
|
18
|
+
#include "SerializeResult.h" // FIXME: remove - actualy required by WrapParseResultRefract()
|
|
19
|
+
#include "Serialize.h" // FIXME: remove - actualy required by WrapperOptions
|
|
20
|
+
#include "ConversionContext.h" // FIXME: remove - required by ConversionContext
|
|
21
|
+
|
|
22
|
+
namespace sc = snowcrash;
|
|
23
|
+
|
|
24
|
+
DRAFTER_API int drafter_parse_blueprint_with_options(const char* source,
|
|
25
|
+
drafter_result** out,
|
|
26
|
+
const drafter_parse_options options) {
|
|
27
|
+
|
|
28
|
+
if (!source || !out) {
|
|
29
|
+
return -1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
sc::BlueprintParserOptions scOptions = sc::ExportSourcemapOption;
|
|
33
|
+
|
|
34
|
+
if (options.requireBlueprintName) {
|
|
35
|
+
scOptions |= sc::RequireBlueprintNameOption;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
sc::ParseResult<sc::Blueprint> blueprint;
|
|
39
|
+
sc::parse(source, scOptions, blueprint);
|
|
40
|
+
|
|
41
|
+
drafter::WrapperOptions wrapperOptions(drafter::RefractASTType);
|
|
42
|
+
drafter::ConversionContext context(wrapperOptions);
|
|
43
|
+
refract::IElement* result = WrapParseResultRefract(blueprint, context);
|
|
44
|
+
|
|
45
|
+
*out = result;
|
|
46
|
+
|
|
47
|
+
return blueprint.report.error.code;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
DRAFTER_API drafter_result* drafter_check_blueprint_with_options(const char* source,
|
|
51
|
+
const drafter_parse_options options) {
|
|
52
|
+
|
|
53
|
+
if (!source) {
|
|
54
|
+
return nullptr;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
drafter_result* result = nullptr;
|
|
58
|
+
|
|
59
|
+
drafter_parse_blueprint_with_options(source, &result, options);
|
|
60
|
+
|
|
61
|
+
if (!result) {
|
|
62
|
+
return nullptr;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
drafter_result* out = nullptr;
|
|
66
|
+
|
|
67
|
+
refract::FilterVisitor filter(refract::query::Element("annotation"));
|
|
68
|
+
refract::Iterate<refract::Children> iterate(filter);
|
|
69
|
+
iterate(*result);
|
|
70
|
+
|
|
71
|
+
if (!filter.empty()) {
|
|
72
|
+
refract::ArrayElement::ValueType elements;
|
|
73
|
+
|
|
74
|
+
std::transform(filter.elements().begin(), filter.elements().end(),
|
|
75
|
+
std::back_inserter(elements),
|
|
76
|
+
std::bind(&refract::IElement::clone, std::placeholders::_1, refract::IElement::cAll));
|
|
77
|
+
|
|
78
|
+
out = new refract::ArrayElement(elements);
|
|
79
|
+
out->element(drafter::SerializeKey::ParseResult);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
drafter_free_result(result);
|
|
83
|
+
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//
|
|
2
|
+
// drafter_private.h
|
|
3
|
+
// drafter
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 20/10/16.
|
|
6
|
+
// Copyright © 2016 Apiary. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
//TODO: This should be merged with drafter.h in next major release
|
|
10
|
+
#ifndef DRAFTER_PRIVATE_H
|
|
11
|
+
#define DRAFTER_PRIVATE_H
|
|
12
|
+
|
|
13
|
+
#include "drafter.h"
|
|
14
|
+
|
|
15
|
+
#ifdef __cplusplus
|
|
16
|
+
extern "C" {
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
typedef struct {
|
|
20
|
+
bool requireBlueprintName;
|
|
21
|
+
} drafter_parse_options;
|
|
22
|
+
|
|
23
|
+
DRAFTER_API int drafter_parse_blueprint_with_options(const char* source,
|
|
24
|
+
drafter_result** out,
|
|
25
|
+
const drafter_parse_options options);
|
|
26
|
+
|
|
27
|
+
DRAFTER_API drafter_result* drafter_check_blueprint_with_options(const char* source,
|
|
28
|
+
const drafter_parse_options options);
|
|
29
|
+
|
|
30
|
+
#ifdef __cplusplus
|
|
31
|
+
}
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
#endif // #ifndef DRAFTER_PRIVATE_H
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// vi:cin:et:sw=4 ts=4
|
|
2
|
+
//
|
|
3
|
+
// drafter.cc
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 2015-02-11
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
//
|
|
9
|
+
#include "drafter.h"
|
|
10
|
+
|
|
11
|
+
#include "snowcrash.h"
|
|
12
|
+
#include "SectionParserData.h" // snowcrash::BlueprintParserOptions
|
|
13
|
+
|
|
14
|
+
#include "sos.h"
|
|
15
|
+
#include "sosJSON.h"
|
|
16
|
+
#include "sosYAML.h"
|
|
17
|
+
|
|
18
|
+
#include "SerializeResult.h"
|
|
19
|
+
|
|
20
|
+
#include "reporting.h"
|
|
21
|
+
#include "config.h"
|
|
22
|
+
#include "stream.h"
|
|
23
|
+
|
|
24
|
+
#include "ConversionContext.h"
|
|
25
|
+
|
|
26
|
+
namespace sc = snowcrash;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* \brief return instance sos::Serializer based on \param `format`
|
|
30
|
+
*
|
|
31
|
+
* \param format - output format for serialization
|
|
32
|
+
*/
|
|
33
|
+
sos::Serialize* CreateSerializer(const drafter::SerializeFormat& format)
|
|
34
|
+
{
|
|
35
|
+
if (format == drafter::JSONFormat) {
|
|
36
|
+
return new sos::SerializeJSON;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return new sos::SerializeYAML;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* \brief Serialize sos::Object into stream
|
|
44
|
+
*/
|
|
45
|
+
void Serialization(std::ostream *stream,
|
|
46
|
+
const sos::Object& object,
|
|
47
|
+
sos::Serialize* serializer)
|
|
48
|
+
{
|
|
49
|
+
serializer->process(object, *stream);
|
|
50
|
+
*stream << "\n";
|
|
51
|
+
*stream << std::flush;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
int ProcessAST(const Config& config, std::unique_ptr<std::istream>& in, std::unique_ptr<std::ostream>& out)
|
|
55
|
+
{
|
|
56
|
+
std::stringstream inputStream;
|
|
57
|
+
inputStream << in->rdbuf();
|
|
58
|
+
|
|
59
|
+
sc::ParseResult<sc::Blueprint> blueprint;
|
|
60
|
+
sc::parse(inputStream.str(), snowcrash::ExportSourcemapOption, blueprint);
|
|
61
|
+
|
|
62
|
+
std::unique_ptr<sos::Serialize> serializer(CreateSerializer(config.format));
|
|
63
|
+
|
|
64
|
+
try {
|
|
65
|
+
sos::Object resultObject = drafter::WrapResult(blueprint, drafter::WrapperOptions(config.astType, config.sourceMap));
|
|
66
|
+
|
|
67
|
+
if (!config.validate) { // If not validate, we serialize
|
|
68
|
+
Serialization(out.get(), resultObject, serializer.get());
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (snowcrash::Error& e) {
|
|
72
|
+
blueprint.report.error = e;
|
|
73
|
+
}
|
|
74
|
+
catch (std::exception& e) {
|
|
75
|
+
blueprint.report.error = snowcrash::Error(e.what(), snowcrash::ApplicationError);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
PrintReport(blueprint.report, inputStream.str(), config.lineNumbers);
|
|
79
|
+
|
|
80
|
+
return blueprint.report.error.code;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
int ProcessRefract(const Config& config, std::unique_ptr<std::istream>& in, std::unique_ptr<std::ostream>& out)
|
|
84
|
+
{
|
|
85
|
+
std::stringstream inputStream;
|
|
86
|
+
inputStream << in->rdbuf();
|
|
87
|
+
|
|
88
|
+
drafter_options options;
|
|
89
|
+
options.sourcemap = config.sourceMap;
|
|
90
|
+
options.format = config.format == drafter::YAMLFormat
|
|
91
|
+
? DRAFTER_SERIALIZE_YAML
|
|
92
|
+
: DRAFTER_SERIALIZE_JSON;
|
|
93
|
+
|
|
94
|
+
refract::IElement* result = nullptr;
|
|
95
|
+
|
|
96
|
+
int ret = drafter_parse_blueprint(inputStream.str().c_str(), &result);
|
|
97
|
+
|
|
98
|
+
if (!result) {
|
|
99
|
+
return -1;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (!config.validate) { // If not validate, we serialize
|
|
103
|
+
char* output = drafter_serialize(result, options);
|
|
104
|
+
|
|
105
|
+
if (output) {
|
|
106
|
+
*out << output
|
|
107
|
+
<< "\n"
|
|
108
|
+
<< std::flush;
|
|
109
|
+
|
|
110
|
+
free(output);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
PrintReport(result, inputStream.str(), config.lineNumbers, ret);
|
|
115
|
+
|
|
116
|
+
drafter_free_result(result);
|
|
117
|
+
|
|
118
|
+
return ret;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
int main(int argc, const char *argv[])
|
|
122
|
+
{
|
|
123
|
+
Config config;
|
|
124
|
+
ParseCommadLineOptions(argc, argv, config);
|
|
125
|
+
|
|
126
|
+
std::unique_ptr<std::istream> in(CreateStreamFromName<std::istream>(config.input));
|
|
127
|
+
std::unique_ptr<std::ostream> out(CreateStreamFromName<std::ostream>(config.output));
|
|
128
|
+
|
|
129
|
+
if (config.astType == drafter::RefractASTType) {
|
|
130
|
+
return ProcessRefract(config, in, out);
|
|
131
|
+
}
|
|
132
|
+
else if (config.astType == drafter::NormalASTType) {
|
|
133
|
+
return ProcessAST(config, in, out);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/AppendDecorator.h
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 17/06/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#ifndef REFRACT_APPENDDECORATOR_H
|
|
9
|
+
#define REFRACT_APPENDDECORATOR_H
|
|
10
|
+
|
|
11
|
+
#include <iterator>
|
|
12
|
+
|
|
13
|
+
namespace refract
|
|
14
|
+
{
|
|
15
|
+
|
|
16
|
+
// Forward declarations of Elements
|
|
17
|
+
struct IElement;
|
|
18
|
+
|
|
19
|
+
template <typename T, typename V = typename T::ValueType>
|
|
20
|
+
struct AppendDecorator {
|
|
21
|
+
typedef T ElementType;
|
|
22
|
+
typedef V ValueType;
|
|
23
|
+
ElementType*& element;
|
|
24
|
+
AppendDecorator(ElementType*& e) : element(e)
|
|
25
|
+
{
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
void operator()(const V& value)
|
|
29
|
+
{
|
|
30
|
+
// FIXME: snowcrash warn about "Primitive type can not have member"
|
|
31
|
+
// but in real it create "empty" member
|
|
32
|
+
//
|
|
33
|
+
// solution for now: set if element has no already value, otherwise silently ignore
|
|
34
|
+
if (element->empty()) {
|
|
35
|
+
element->set(value);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
template <typename T>
|
|
41
|
+
struct AppendDecorator<T, std::vector<refract::IElement*> > {
|
|
42
|
+
typedef T ElementType;
|
|
43
|
+
typedef typename T::ValueType ValueType;
|
|
44
|
+
ElementType*& element;
|
|
45
|
+
|
|
46
|
+
AppendDecorator(ElementType*& e) : element(e)
|
|
47
|
+
{
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
void operator()(const ValueType& value)
|
|
51
|
+
{
|
|
52
|
+
std::transform(value.begin(), value.end(), std::back_inserter(element));
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
}; // namespace refract
|
|
57
|
+
|
|
58
|
+
#endif // #ifndef REFRACT_APPENDDECORATOR_H
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
|
|
2
|
+
//
|
|
3
|
+
// refract/Build.h
|
|
4
|
+
// librefract
|
|
5
|
+
//
|
|
6
|
+
// Created by Jiri Kratochvil on 03/01/16.
|
|
7
|
+
// Copyright (c) 2016 Apiary Inc. All rights reserved.
|
|
8
|
+
//
|
|
9
|
+
#ifndef REFRACT_BUILD_H
|
|
10
|
+
#define REFRACT_BUILD_H
|
|
11
|
+
|
|
12
|
+
namespace refract
|
|
13
|
+
{
|
|
14
|
+
/**
|
|
15
|
+
* Simple concept based on operator() override. It
|
|
16
|
+
* allows tricky creating of complex refract structures
|
|
17
|
+
* eg:
|
|
18
|
+
* ```
|
|
19
|
+
return Build(new ObjectElement)
|
|
20
|
+
("m1", IElement::Create("Value"))
|
|
21
|
+
("m2", Build(new ArrayElement)
|
|
22
|
+
(IElement::Create("m2[0]"))
|
|
23
|
+
)
|
|
24
|
+
("m3", Build(new ObjectElement)
|
|
25
|
+
("m3.1", IElement::Create("Str3.1"))
|
|
26
|
+
("m3.2", IElement::Create(3.2))
|
|
27
|
+
("m3.3", Build(new ObjectElement)
|
|
28
|
+
("m3.3.1", IElement::Create("Str3/4/1"))
|
|
29
|
+
("m3.3.2", IElement::Create(3.42))
|
|
30
|
+
("m3.3.2", new NullElement)
|
|
31
|
+
)
|
|
32
|
+
);
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
template <typename T>
|
|
36
|
+
struct ElementBuilder {
|
|
37
|
+
T* element;
|
|
38
|
+
|
|
39
|
+
ElementBuilder(T* element) : element(element) {}
|
|
40
|
+
|
|
41
|
+
operator T*() {
|
|
42
|
+
return element;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
ElementBuilder<T>& operator()(IElement* member) {
|
|
46
|
+
element->push_back(member);
|
|
47
|
+
return *this;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
ElementBuilder<T>& operator()(IElement* key, IElement* value) {
|
|
51
|
+
element->push_back(new MemberElement(key, value));
|
|
52
|
+
return *this;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
ElementBuilder<T>& operator()(const std::string& key, IElement* value) {
|
|
56
|
+
element->push_back(new MemberElement(key, value));
|
|
57
|
+
return *this;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
template <typename E>
|
|
62
|
+
ElementBuilder<E> Build(E* e) {
|
|
63
|
+
return ElementBuilder<E>(e);
|
|
64
|
+
}
|
|
65
|
+
}; // namespace refract
|
|
66
|
+
|
|
67
|
+
#endif // #ifndef REFRACT_BUILD_H
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/ComparableVisitor.cc
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 21/05/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#include "Element.h"
|
|
9
|
+
#include "ComparableVisitor.h"
|
|
10
|
+
|
|
11
|
+
namespace refract
|
|
12
|
+
{
|
|
13
|
+
|
|
14
|
+
ComparableVisitor::ComparableVisitor(const std::string& str, const int compare) : compare_to(str), result(false), compare(compare)
|
|
15
|
+
{
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
void ComparableVisitor::operator()(const MemberElement& e)
|
|
19
|
+
{
|
|
20
|
+
ComparableVisitor v(compare_to);
|
|
21
|
+
Visitor visitor(v);
|
|
22
|
+
|
|
23
|
+
if (compare == key && e.value.first) {
|
|
24
|
+
e.value.first->content(visitor);
|
|
25
|
+
}
|
|
26
|
+
else if (e.value.second) {
|
|
27
|
+
e.value.second->content(visitor);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
result = v.get();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
void ComparableVisitor::operator()(const IElement& e)
|
|
34
|
+
{
|
|
35
|
+
throw LogicError("Fallback impl - behavioration for Base class IElement is not defined");
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
bool ComparableVisitor::get() const
|
|
39
|
+
{
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
}; // namespace refract
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
//
|
|
2
|
+
// refract/ComparableVisitor.h
|
|
3
|
+
// librefract
|
|
4
|
+
//
|
|
5
|
+
// Created by Jiri Kratochvil on 21/05/15.
|
|
6
|
+
// Copyright (c) 2015 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
#ifndef REFRACT_COMPARABLEVISITOR_H
|
|
9
|
+
#define REFRACT_COMPARABLEVISITOR_H
|
|
10
|
+
|
|
11
|
+
namespace refract
|
|
12
|
+
{
|
|
13
|
+
|
|
14
|
+
// Forward declarations of Elements
|
|
15
|
+
struct IElement;
|
|
16
|
+
struct MemberElement;
|
|
17
|
+
|
|
18
|
+
class ComparableVisitor
|
|
19
|
+
{
|
|
20
|
+
std::string compare_to;
|
|
21
|
+
bool result;
|
|
22
|
+
int compare;
|
|
23
|
+
|
|
24
|
+
template <typename T, typename U>
|
|
25
|
+
bool IsEqual(const T& first, const U& second)
|
|
26
|
+
{
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
template <typename T>
|
|
31
|
+
bool IsEqual(const T& first, const T& second)
|
|
32
|
+
{
|
|
33
|
+
return first == second;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public:
|
|
37
|
+
|
|
38
|
+
enum {
|
|
39
|
+
key,
|
|
40
|
+
value
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
ComparableVisitor(const std::string& str, const int compare = value);
|
|
44
|
+
|
|
45
|
+
template <typename E>
|
|
46
|
+
void operator()(const E& e)
|
|
47
|
+
{
|
|
48
|
+
if (compare == value) {
|
|
49
|
+
result = IsEqual(compare_to, e.value);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
void operator()(const MemberElement& e);
|
|
54
|
+
void operator()(const IElement& e);
|
|
55
|
+
|
|
56
|
+
bool get() const;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
}; // namespace refract
|
|
61
|
+
|
|
62
|
+
#endif // #ifndef REFRACT_COMPARABLEVISITOR_H
|