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,272 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MSON.cc
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 11/4/14.
|
|
6
|
+
// Copyright (c) 2014 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#include "MSON.h"
|
|
10
|
+
|
|
11
|
+
using namespace mson;
|
|
12
|
+
|
|
13
|
+
bool Value::empty() const
|
|
14
|
+
{
|
|
15
|
+
return (this->literal.empty() && this->variable == false);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
bool Symbol::empty() const
|
|
19
|
+
{
|
|
20
|
+
return (this->literal.empty() && this->variable == false);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
bool TypeName::empty() const
|
|
24
|
+
{
|
|
25
|
+
return (this->base == UndefinedTypeName && this->symbol.empty());
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
bool TypeSpecification::empty() const
|
|
29
|
+
{
|
|
30
|
+
return (this->nestedTypes.empty() && this->name.empty());
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
bool TypeDefinition::empty() const
|
|
34
|
+
{
|
|
35
|
+
return (this->attributes == 0 && this->typeSpecification.empty());
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
bool ValueDefinition::empty() const
|
|
39
|
+
{
|
|
40
|
+
return (this->values.empty() && this->typeDefinition.empty());
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
Elements& TypeSection::Content::elements()
|
|
44
|
+
{
|
|
45
|
+
if (!m_elements.get())
|
|
46
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
47
|
+
|
|
48
|
+
return *m_elements;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const Elements& TypeSection::Content::elements() const
|
|
52
|
+
{
|
|
53
|
+
if (!m_elements.get())
|
|
54
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
55
|
+
|
|
56
|
+
return *m_elements;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
TypeSection::Content::Content(const Markdown& description_, const Literal& value_)
|
|
60
|
+
: description(description_), value(value_)
|
|
61
|
+
{
|
|
62
|
+
m_elements.reset(::new Elements);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
TypeSection::Content::Content(const TypeSection::Content& rhs)
|
|
66
|
+
{
|
|
67
|
+
this->description = rhs.description;
|
|
68
|
+
this->value = rhs.value;
|
|
69
|
+
m_elements.reset(::new Elements(*rhs.m_elements.get()));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
TypeSection::Content& TypeSection::Content::operator=(const TypeSection::Content& rhs)
|
|
73
|
+
{
|
|
74
|
+
this->description = rhs.description;
|
|
75
|
+
this->value = rhs.value;
|
|
76
|
+
m_elements.reset(::new Elements(*rhs.m_elements.get()));
|
|
77
|
+
|
|
78
|
+
return *this;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
TypeSection::Content::~Content()
|
|
82
|
+
{
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
bool TypeSection::empty() const
|
|
86
|
+
{
|
|
87
|
+
return (this->klass == TypeSection::UndefinedClass &&
|
|
88
|
+
this->content.value.empty() &&
|
|
89
|
+
this->content.description.empty() &&
|
|
90
|
+
this->content.elements().empty());
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
bool NamedType::empty() const
|
|
94
|
+
{
|
|
95
|
+
return (this->typeDefinition.empty() &&
|
|
96
|
+
this->name.empty() &&
|
|
97
|
+
this->sections.empty());
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
bool ValueMember::empty() const
|
|
101
|
+
{
|
|
102
|
+
return (this->valueDefinition.empty() && this->sections.empty() &&
|
|
103
|
+
this->description.empty());
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
bool PropertyName::empty() const
|
|
107
|
+
{
|
|
108
|
+
return (this->literal.empty() && this->variable.empty());
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
bool PropertyMember::empty() const
|
|
112
|
+
{
|
|
113
|
+
return (this->name.empty() && this->description.empty() &&
|
|
114
|
+
this->sections.empty() && this->valueDefinition.empty());
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
OneOf& Element::Content::oneOf()
|
|
118
|
+
{
|
|
119
|
+
if (!m_elements.get())
|
|
120
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
121
|
+
|
|
122
|
+
return *m_elements;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const OneOf& Element::Content::oneOf() const
|
|
126
|
+
{
|
|
127
|
+
if (!m_elements.get())
|
|
128
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
129
|
+
|
|
130
|
+
return *m_elements;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
Elements& Element::Content::elements()
|
|
134
|
+
{
|
|
135
|
+
if (!m_elements.get())
|
|
136
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
137
|
+
|
|
138
|
+
return *m_elements;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const Elements& Element::Content::elements() const
|
|
142
|
+
{
|
|
143
|
+
if (!m_elements.get())
|
|
144
|
+
throw ELEMENTS_NOT_SET_ERR;
|
|
145
|
+
|
|
146
|
+
return *m_elements;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
Element::Content& Element::Content::operator=(const Elements& rhs)
|
|
150
|
+
{
|
|
151
|
+
m_elements.reset(::new Elements(rhs));
|
|
152
|
+
|
|
153
|
+
return *this;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
Element::Content::Content()
|
|
157
|
+
{
|
|
158
|
+
m_elements.reset(::new Elements);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
Element::Content::Content(const Element::Content& rhs)
|
|
162
|
+
{
|
|
163
|
+
this->property = rhs.property;
|
|
164
|
+
this->value = rhs.value;
|
|
165
|
+
this->mixin = rhs.mixin;
|
|
166
|
+
m_elements.reset(::new Elements(*rhs.m_elements.get()));
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
Element::Content& Element::Content::operator=(const Element::Content& rhs)
|
|
170
|
+
{
|
|
171
|
+
this->property = rhs.property;
|
|
172
|
+
this->value = rhs.value;
|
|
173
|
+
this->mixin = rhs.mixin;
|
|
174
|
+
m_elements.reset(::new Elements(*rhs.m_elements.get()));
|
|
175
|
+
|
|
176
|
+
return *this;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
Element::Content::~Content()
|
|
180
|
+
{
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
Element::Element(const Element::Class& klass_)
|
|
184
|
+
: klass(klass_)
|
|
185
|
+
{
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
Element::Element(const Element& rhs)
|
|
189
|
+
{
|
|
190
|
+
this->klass = rhs.klass;
|
|
191
|
+
this->content = rhs.content;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
Element& Element::operator=(const Element& rhs)
|
|
195
|
+
{
|
|
196
|
+
this->klass = rhs.klass;
|
|
197
|
+
this->content = rhs.content;
|
|
198
|
+
|
|
199
|
+
return *this;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
Element::~Element()
|
|
203
|
+
{
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* \brief Build Element from property member
|
|
208
|
+
*
|
|
209
|
+
* \param propertyMember Property member which was given
|
|
210
|
+
*/
|
|
211
|
+
void Element::build(const PropertyMember& propertyMember)
|
|
212
|
+
{
|
|
213
|
+
this->klass = Element::PropertyClass;
|
|
214
|
+
this->content.property = propertyMember;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* \brief Build Element from value member
|
|
219
|
+
*
|
|
220
|
+
* \param valueMember Value member which was given
|
|
221
|
+
*/
|
|
222
|
+
void Element::build(const ValueMember& valueMember)
|
|
223
|
+
{
|
|
224
|
+
this->klass = Element::ValueClass;
|
|
225
|
+
this->content.value = valueMember;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* \brief Build Element from mixin type
|
|
230
|
+
*
|
|
231
|
+
* \param mixin Mixin which was given
|
|
232
|
+
*/
|
|
233
|
+
void Element::build(const Mixin& mixin)
|
|
234
|
+
{
|
|
235
|
+
this->klass = Element::MixinClass;
|
|
236
|
+
this->content.mixin = mixin;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* \brief Build Element from one of type
|
|
241
|
+
*
|
|
242
|
+
* \param oneOf One Of which was given
|
|
243
|
+
*/
|
|
244
|
+
void Element::build(const OneOf& oneOf)
|
|
245
|
+
{
|
|
246
|
+
this->buildFromElements(oneOf);
|
|
247
|
+
this->klass = Element::OneOfClass;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* \brief Build Element from a value
|
|
252
|
+
*
|
|
253
|
+
* \param value Value of the value member
|
|
254
|
+
*/
|
|
255
|
+
void Element::build(const Value& value)
|
|
256
|
+
{
|
|
257
|
+
ValueMember valueMember;
|
|
258
|
+
|
|
259
|
+
valueMember.valueDefinition.values.push_back(value);
|
|
260
|
+
this->build(valueMember);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* \brief Buile Element from group of elements
|
|
265
|
+
*
|
|
266
|
+
* \param elements Group of elements
|
|
267
|
+
*/
|
|
268
|
+
void Element::buildFromElements(const Elements &elements)
|
|
269
|
+
{
|
|
270
|
+
this->klass = Element::GroupClass;
|
|
271
|
+
this->content = elements;
|
|
272
|
+
}
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MSON.h
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Pavan Kumar Sunkara on 10/9/14.
|
|
6
|
+
// Copyright (c) 2014 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SNOWCRASH_MSON_H
|
|
10
|
+
#define SNOWCRASH_MSON_H
|
|
11
|
+
|
|
12
|
+
#include <vector>
|
|
13
|
+
#include <string>
|
|
14
|
+
#include <set>
|
|
15
|
+
#include <map>
|
|
16
|
+
#include <stdexcept>
|
|
17
|
+
|
|
18
|
+
#include "Platform.h"
|
|
19
|
+
#include "MarkdownParser.h"
|
|
20
|
+
|
|
21
|
+
#define ELEMENTS_NOT_SET_ERR std::logic_error("no elements set")
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* MSON Abstract Syntax Tree
|
|
25
|
+
* -------------------------
|
|
26
|
+
*
|
|
27
|
+
* Data types in this document define the MSON AST
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
namespace mson {
|
|
31
|
+
|
|
32
|
+
/** Markdown */
|
|
33
|
+
typedef mdp::ByteBuffer Markdown;
|
|
34
|
+
|
|
35
|
+
/** Literal */
|
|
36
|
+
typedef std::string Literal;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Kind of Base Type
|
|
40
|
+
*
|
|
41
|
+
* This is an internal thing to keep track of what kind of type,
|
|
42
|
+
* that particular named type or member is sub-typed from
|
|
43
|
+
*/
|
|
44
|
+
enum BaseType {
|
|
45
|
+
UndefinedBaseType = 0, // Undefined
|
|
46
|
+
PrimitiveBaseType, // Primitive Types
|
|
47
|
+
ImplicitPrimitiveBaseType, // Primitive Types (implicit)
|
|
48
|
+
ObjectBaseType, // Object Structure Type
|
|
49
|
+
ImplicitObjectBaseType, // Object Structure Type (implicit)
|
|
50
|
+
ValueBaseType, // Array & Enum Structure Type
|
|
51
|
+
ImplicitValueBaseType // Array & Enum Structure Type (implicit)
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/** Named Types base type table */
|
|
55
|
+
typedef std::map<Literal, BaseType> NamedTypeBaseTable;
|
|
56
|
+
|
|
57
|
+
/** Named Types inheritance table */
|
|
58
|
+
typedef std::map<Literal, std::pair<Literal, mdp::BytesRangeSet> > NamedTypeInheritanceTable;
|
|
59
|
+
|
|
60
|
+
/** Named Types dependency table */
|
|
61
|
+
typedef std::map<Literal, std::set<Literal> > NamedTypeDependencyTable;
|
|
62
|
+
|
|
63
|
+
/** A simple or actual value */
|
|
64
|
+
struct Value {
|
|
65
|
+
|
|
66
|
+
/** Constructor */
|
|
67
|
+
Value()
|
|
68
|
+
: variable(false) {}
|
|
69
|
+
|
|
70
|
+
/** Literal value */
|
|
71
|
+
Literal literal;
|
|
72
|
+
|
|
73
|
+
/** Flag to denote variable value */
|
|
74
|
+
bool variable;
|
|
75
|
+
|
|
76
|
+
/** Check if empty */
|
|
77
|
+
bool empty() const;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/** Collection of values */
|
|
81
|
+
typedef std::vector<Value> Values;
|
|
82
|
+
|
|
83
|
+
/** Type symbol (identifier) */
|
|
84
|
+
struct Symbol {
|
|
85
|
+
|
|
86
|
+
/** Constructor */
|
|
87
|
+
Symbol()
|
|
88
|
+
: variable(false) {}
|
|
89
|
+
|
|
90
|
+
/** Name of the symbol */
|
|
91
|
+
Literal literal;
|
|
92
|
+
|
|
93
|
+
/** Flag to denote variable type name */
|
|
94
|
+
bool variable;
|
|
95
|
+
|
|
96
|
+
/** Check if empty */
|
|
97
|
+
bool empty() const;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/** Value of type name if based type */
|
|
101
|
+
enum BaseTypeName {
|
|
102
|
+
UndefinedTypeName = 0, // Not a base type name
|
|
103
|
+
BooleanTypeName, // `boolean` type name
|
|
104
|
+
StringTypeName, // `string` type name
|
|
105
|
+
NumberTypeName, // `number` type name
|
|
106
|
+
ArrayTypeName, // `array` type name
|
|
107
|
+
EnumTypeName, // `enum` type name
|
|
108
|
+
ObjectTypeName // `object` type name
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/** Base or named type's name */
|
|
112
|
+
struct TypeName {
|
|
113
|
+
|
|
114
|
+
/** Constructor */
|
|
115
|
+
TypeName(const BaseTypeName& base_ = UndefinedTypeName)
|
|
116
|
+
: base(base_) {}
|
|
117
|
+
|
|
118
|
+
/** EITHER Base type's value */
|
|
119
|
+
BaseTypeName base;
|
|
120
|
+
|
|
121
|
+
/** OR Named type's identifier */
|
|
122
|
+
Symbol symbol;
|
|
123
|
+
|
|
124
|
+
/** Check if empty */
|
|
125
|
+
bool empty() const;
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
/** Collection of type names */
|
|
129
|
+
typedef std::vector<TypeName> TypeNames;
|
|
130
|
+
|
|
131
|
+
/** Attribute of a type */
|
|
132
|
+
enum TypeAttribute {
|
|
133
|
+
RequiredTypeAttribute = (1 << 0), // The type is required
|
|
134
|
+
OptionalTypeAttribute = (1 << 1), // The type is optional
|
|
135
|
+
FixedTypeAttribute = (1 << 2), // The type is fixed
|
|
136
|
+
SampleTypeAttribute = (1 << 3), // The type is a sample
|
|
137
|
+
DefaultTypeAttribute = (1 << 4), // The type is default
|
|
138
|
+
NullableTypeAttribute = (1 << 5), // The type is nullable
|
|
139
|
+
FixedTypeTypeAttribute = (1 << 6) // This type works like fixed, but it is unheritable
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
/** List of type attributes */
|
|
143
|
+
typedef unsigned int TypeAttributes;
|
|
144
|
+
|
|
145
|
+
/** Defines sub-typed types for a type */
|
|
146
|
+
struct TypeSpecification {
|
|
147
|
+
|
|
148
|
+
/** Name of the type */
|
|
149
|
+
TypeName name;
|
|
150
|
+
|
|
151
|
+
/** Array of nested types */
|
|
152
|
+
TypeNames nestedTypes;
|
|
153
|
+
|
|
154
|
+
/** Check if empty */
|
|
155
|
+
bool empty() const;
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
/** Definition of an instance of a type */
|
|
159
|
+
struct TypeDefinition {
|
|
160
|
+
|
|
161
|
+
/** Constructor */
|
|
162
|
+
TypeDefinition()
|
|
163
|
+
: baseType(UndefinedBaseType), attributes(0) {}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Base Type (for the type definition)
|
|
167
|
+
*
|
|
168
|
+
* Representing the base type from which this member or
|
|
169
|
+
* named type is sub-typed from. Not present in the AST
|
|
170
|
+
*/
|
|
171
|
+
BaseType baseType;
|
|
172
|
+
|
|
173
|
+
/** Type specification */
|
|
174
|
+
TypeSpecification typeSpecification;
|
|
175
|
+
|
|
176
|
+
/** List of type attributes (byte-wise OR) */
|
|
177
|
+
TypeAttributes attributes;
|
|
178
|
+
|
|
179
|
+
/** Check if empty */
|
|
180
|
+
bool empty() const;
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
/** Value definition of a type instance */
|
|
184
|
+
struct ValueDefinition {
|
|
185
|
+
|
|
186
|
+
/** List of values */
|
|
187
|
+
Values values;
|
|
188
|
+
|
|
189
|
+
/** Type of the values */
|
|
190
|
+
TypeDefinition typeDefinition;
|
|
191
|
+
|
|
192
|
+
/** Check if empty */
|
|
193
|
+
bool empty() const;
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
/** Forward Declaration for element */
|
|
197
|
+
struct Element;
|
|
198
|
+
|
|
199
|
+
/** Collection of elements */
|
|
200
|
+
typedef std::vector<Element> Elements;
|
|
201
|
+
|
|
202
|
+
/** Section of a type */
|
|
203
|
+
struct TypeSection {
|
|
204
|
+
|
|
205
|
+
/** Class of a type section */
|
|
206
|
+
enum Class {
|
|
207
|
+
UndefinedClass = 0, // Unknown
|
|
208
|
+
BlockDescriptionClass, // Markdown block description
|
|
209
|
+
MemberTypeClass, // Contains member types
|
|
210
|
+
SampleClass, // Sample value(s) for member types
|
|
211
|
+
DefaultClass // Default value(s) for member types
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
/** Content of the type section */
|
|
215
|
+
struct Content {
|
|
216
|
+
|
|
217
|
+
/** EITHER Block description */
|
|
218
|
+
Markdown description;
|
|
219
|
+
|
|
220
|
+
/** OR Literal value */
|
|
221
|
+
Literal value;
|
|
222
|
+
|
|
223
|
+
/** OR Collection of elements */
|
|
224
|
+
Elements& elements();
|
|
225
|
+
const Elements& elements() const;
|
|
226
|
+
|
|
227
|
+
/** Constructor */
|
|
228
|
+
Content(const Markdown& description_ = Markdown(), const Literal& value_ = Literal());
|
|
229
|
+
|
|
230
|
+
/** Copy constructor */
|
|
231
|
+
Content(const TypeSection::Content& rhs);
|
|
232
|
+
|
|
233
|
+
/** Assignment operator */
|
|
234
|
+
TypeSection::Content& operator=(const TypeSection::Content& rhs);
|
|
235
|
+
|
|
236
|
+
/** Desctructor */
|
|
237
|
+
~Content();
|
|
238
|
+
|
|
239
|
+
private:
|
|
240
|
+
std::unique_ptr<Elements> m_elements;
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
/** Constructor */
|
|
244
|
+
TypeSection(const TypeSection::Class& klass_ = TypeSection::UndefinedClass)
|
|
245
|
+
: baseType(UndefinedBaseType), klass(klass_) {}
|
|
246
|
+
|
|
247
|
+
/** Base Type (for the parent of the type section) */
|
|
248
|
+
BaseType baseType;
|
|
249
|
+
|
|
250
|
+
/** Denotes the class of the type section */
|
|
251
|
+
TypeSection::Class klass;
|
|
252
|
+
|
|
253
|
+
/** Content of the type section */
|
|
254
|
+
TypeSection::Content content;
|
|
255
|
+
|
|
256
|
+
/** Check if empty */
|
|
257
|
+
bool empty() const;
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
/** Collection of type sections */
|
|
261
|
+
typedef std::vector<TypeSection> TypeSections;
|
|
262
|
+
|
|
263
|
+
/** User-define named type */
|
|
264
|
+
struct NamedType {
|
|
265
|
+
|
|
266
|
+
/** Name of the type */
|
|
267
|
+
TypeName name;
|
|
268
|
+
|
|
269
|
+
/** The ancestor type definition */
|
|
270
|
+
TypeDefinition typeDefinition;
|
|
271
|
+
|
|
272
|
+
/** List of named type's sections */
|
|
273
|
+
TypeSections sections;
|
|
274
|
+
|
|
275
|
+
/** Check if empty */
|
|
276
|
+
bool empty() const;
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
/** Individual member of an array or enum structure */
|
|
280
|
+
struct ValueMember {
|
|
281
|
+
|
|
282
|
+
/** Inline description */
|
|
283
|
+
Markdown description;
|
|
284
|
+
|
|
285
|
+
/** Definition of member's value */
|
|
286
|
+
ValueDefinition valueDefinition;
|
|
287
|
+
|
|
288
|
+
/** List of member type's sections */
|
|
289
|
+
TypeSections sections;
|
|
290
|
+
|
|
291
|
+
/** Check if empty */
|
|
292
|
+
bool empty() const;
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
/** Name of a property member */
|
|
296
|
+
struct PropertyName {
|
|
297
|
+
|
|
298
|
+
/** EITHER Literal name of the property */
|
|
299
|
+
Literal literal;
|
|
300
|
+
|
|
301
|
+
/** OR Variable name of the property */
|
|
302
|
+
ValueDefinition variable;
|
|
303
|
+
|
|
304
|
+
/** Check if empty */
|
|
305
|
+
bool empty() const;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
/** Individual member of an object structure */
|
|
309
|
+
struct PropertyMember : public ValueMember {
|
|
310
|
+
|
|
311
|
+
/** Name of the property */
|
|
312
|
+
PropertyName name;
|
|
313
|
+
|
|
314
|
+
/** Check if empty */
|
|
315
|
+
bool empty() const;
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
/** Mixin type */
|
|
319
|
+
typedef TypeDefinition Mixin;
|
|
320
|
+
|
|
321
|
+
/** One Of type */
|
|
322
|
+
typedef Elements OneOf;
|
|
323
|
+
|
|
324
|
+
/** Element of a type section */
|
|
325
|
+
struct Element {
|
|
326
|
+
|
|
327
|
+
/** Class of an element */
|
|
328
|
+
enum Class {
|
|
329
|
+
UndefinedClass = 0, // Unknown
|
|
330
|
+
PropertyClass, // Property member
|
|
331
|
+
ValueClass, // Value member
|
|
332
|
+
MixinClass, // Mixin
|
|
333
|
+
OneOfClass, // One of
|
|
334
|
+
GroupClass // Group of elements
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
/** Content of the element */
|
|
338
|
+
struct Content {
|
|
339
|
+
|
|
340
|
+
/** EITHER Property member */
|
|
341
|
+
PropertyMember property;
|
|
342
|
+
|
|
343
|
+
/** OR Value member */
|
|
344
|
+
ValueMember value;
|
|
345
|
+
|
|
346
|
+
/** OR Mixin member */
|
|
347
|
+
Mixin mixin;
|
|
348
|
+
|
|
349
|
+
/** OR One of member */
|
|
350
|
+
OneOf& oneOf();
|
|
351
|
+
const OneOf& oneOf() const;
|
|
352
|
+
|
|
353
|
+
/** OR Collection of elements */
|
|
354
|
+
Elements& elements();
|
|
355
|
+
const Elements& elements() const;
|
|
356
|
+
|
|
357
|
+
/** Builds the structure from group of elements */
|
|
358
|
+
Element::Content& operator=(const Elements& rhs);
|
|
359
|
+
|
|
360
|
+
/** Constructor */
|
|
361
|
+
Content();
|
|
362
|
+
|
|
363
|
+
/** Copy constructor */
|
|
364
|
+
Content(const Element::Content& rhs);
|
|
365
|
+
|
|
366
|
+
/** Assignment operator */
|
|
367
|
+
Content& operator=(const Element::Content& rhs);
|
|
368
|
+
|
|
369
|
+
/** Destructor */
|
|
370
|
+
~Content();
|
|
371
|
+
|
|
372
|
+
private:
|
|
373
|
+
std::unique_ptr<Elements> m_elements;
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
/** Class of the element */
|
|
377
|
+
Element::Class klass;
|
|
378
|
+
|
|
379
|
+
/** Content of the element */
|
|
380
|
+
Element::Content content;
|
|
381
|
+
|
|
382
|
+
/** Constructor */
|
|
383
|
+
Element(const Element::Class& klass_ = Element::UndefinedClass);
|
|
384
|
+
|
|
385
|
+
/** Copy constructor */
|
|
386
|
+
Element(const Element& rhs);
|
|
387
|
+
|
|
388
|
+
/** Assignment operator */
|
|
389
|
+
Element& operator=(const Element& rhs);
|
|
390
|
+
|
|
391
|
+
/** Functions which allow the building of member type */
|
|
392
|
+
void build(const PropertyMember& propertyMember);
|
|
393
|
+
void build(const ValueMember& valueMember);
|
|
394
|
+
void build(const Mixin& mixin);
|
|
395
|
+
void build(const OneOf& oneOf);
|
|
396
|
+
void build(const Value& value);
|
|
397
|
+
|
|
398
|
+
void buildFromElements(const Elements& elements);
|
|
399
|
+
|
|
400
|
+
/** Desctructor */
|
|
401
|
+
~Element();
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
#endif
|