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,516 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ParameterParser.h
|
|
3
|
+
// snowcrash
|
|
4
|
+
//
|
|
5
|
+
// Created by Zdenek Nemec on 9/1/13.
|
|
6
|
+
// Copyright (c) 2013 Apiary Inc. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef SNOWCRASH_PARAMETERPARSER_H
|
|
10
|
+
#define SNOWCRASH_PARAMETERPARSER_H
|
|
11
|
+
|
|
12
|
+
#include "SectionParser.h"
|
|
13
|
+
#include "ValuesParser.h"
|
|
14
|
+
#include "MSONTypeSectionParser.h"
|
|
15
|
+
#include "RegexMatch.h"
|
|
16
|
+
#include "StringUtility.h"
|
|
17
|
+
|
|
18
|
+
/** Parameter Value regex */
|
|
19
|
+
#define PARAMETER_VALUE "`([^`]+)`"
|
|
20
|
+
|
|
21
|
+
/** Parameter Identifier */
|
|
22
|
+
#define PARAMETER_IDENTIFIER "`?(([[:alnum:]_.-])*|(%[A-Fa-f0-9]{2})*)+`?"
|
|
23
|
+
|
|
24
|
+
/** Lead in and out for comma separated values regex */
|
|
25
|
+
#define CSV_LEADINOUT "[[:blank:]]*,?[[:blank:]]*"
|
|
26
|
+
|
|
27
|
+
namespace snowcrash {
|
|
28
|
+
|
|
29
|
+
/* We only allow at the maximum 3 attributes for old syntax parameters */
|
|
30
|
+
const size_t OLD_SYNTAX_MAX_ATTRIBUTES = 3;
|
|
31
|
+
|
|
32
|
+
/* We only allow at the maximum 2 attributes for new syntax parameters */
|
|
33
|
+
const size_t NEW_SYNTAX_MAX_ATTRIBUTES = 2;
|
|
34
|
+
|
|
35
|
+
/** Parameter description delimiter */
|
|
36
|
+
const std::string DescriptionIdentifier = "...";
|
|
37
|
+
|
|
38
|
+
/** Parameter Required matching regex */
|
|
39
|
+
const char* const ParameterRequiredRegex = "^[[:blank:]]*[Rr]equired[[:blank:]]*$";
|
|
40
|
+
|
|
41
|
+
/** Parameter Optional matching regex */
|
|
42
|
+
const char* const ParameterOptionalRegex = "^[[:blank:]]*[Oo]ptional[[:blank:]]*$";
|
|
43
|
+
|
|
44
|
+
/** Additonal Parameter Traits Example matching regex */
|
|
45
|
+
const char* const AdditionalTraitsExampleRegex = "`([^`]*)`";
|
|
46
|
+
|
|
47
|
+
/** Additonal Parameter Traits Use matching regex */
|
|
48
|
+
const char* const AdditionalTraitsUseRegex = "([Oo]ptional|[Rr]equired)";
|
|
49
|
+
|
|
50
|
+
/** Parameter Values matching regex */
|
|
51
|
+
const char* const ParameterValuesRegex = "^[[:blank:]]*[Vv]alues[[:blank:]]*$";
|
|
52
|
+
|
|
53
|
+
/** Values expected content */
|
|
54
|
+
const char* const ExpectedValuesContent = "nested list of possible parameter values, one element per list item e.g. '`value`'";
|
|
55
|
+
|
|
56
|
+
/** Additional Traits warning for old syntax */
|
|
57
|
+
const char* const OldSyntaxAdditionalTraitsWarning = ", expected '([required | optional], [<type>], [`<example value>`])', e.g. '(optional, string, `Hello World`)'";
|
|
58
|
+
|
|
59
|
+
/** Additional Traits warning for new syntax */
|
|
60
|
+
const char* const NewSyntaxAdditionalTraitsWarning = ", expected '([required | optional], [<type> | enum[<type>])', e.g. '(optional, string)'";
|
|
61
|
+
|
|
62
|
+
/* Type wrapped by enum matching regex */
|
|
63
|
+
const char* const EnumRegex = "^enum\\[([^][]+)]$";
|
|
64
|
+
|
|
65
|
+
/** Parameter Definition Type */
|
|
66
|
+
enum ParameterType {
|
|
67
|
+
NotParameterType = 0,
|
|
68
|
+
OldParameterType, /// Parameter defined using the old syntax
|
|
69
|
+
NewParameterType, /// Parameter defined using the new MSON-like syntax
|
|
70
|
+
UndefinedParameterType = -1
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Parameter section processor
|
|
75
|
+
*/
|
|
76
|
+
template<>
|
|
77
|
+
struct SectionProcessor<Parameter> : public SignatureSectionProcessorBase<Parameter> {
|
|
78
|
+
|
|
79
|
+
static SignatureTraits signatureTraits() {
|
|
80
|
+
|
|
81
|
+
SignatureTraits signatureTraits(SignatureTraits::IdentifierTrait |
|
|
82
|
+
SignatureTraits::ValuesTrait |
|
|
83
|
+
SignatureTraits::AttributesTrait |
|
|
84
|
+
SignatureTraits::ContentTrait,
|
|
85
|
+
Delimiters('=', snowcrash::DescriptionIdentifier));
|
|
86
|
+
|
|
87
|
+
return signatureTraits;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
static MarkdownNodeIterator finalizeSignature(const MarkdownNodeIterator& node,
|
|
91
|
+
SectionParserData& pd,
|
|
92
|
+
const Signature& signature,
|
|
93
|
+
const ParseResultRef<Parameter>& out) {
|
|
94
|
+
|
|
95
|
+
out.node.name = signature.identifier;
|
|
96
|
+
out.node.description = signature.content;
|
|
97
|
+
out.node.defaultValue = signature.value;
|
|
98
|
+
|
|
99
|
+
if (!signature.remainingContent.empty()) {
|
|
100
|
+
out.node.description += "\n" + signature.remainingContent;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
TrimString(out.node.description);
|
|
104
|
+
|
|
105
|
+
SectionProcessor<Parameter>::parseAttributes(node, pd, signature.attributes, out);
|
|
106
|
+
|
|
107
|
+
if (pd.exportSourceMap()) {
|
|
108
|
+
if (!out.node.name.empty()) {
|
|
109
|
+
out.sourceMap.name.sourceMap = node->sourceMap;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (!out.node.description.empty()) {
|
|
113
|
+
out.sourceMap.description.sourceMap = node->sourceMap;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (!out.node.defaultValue.empty()) {
|
|
117
|
+
out.sourceMap.defaultValue.sourceMap = node->sourceMap;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return ++MarkdownNodeIterator(node);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
static MarkdownNodeIterator processNestedSection(const MarkdownNodeIterator& node,
|
|
125
|
+
const MarkdownNodes& siblings,
|
|
126
|
+
SectionParserData& pd,
|
|
127
|
+
const ParseResultRef<Parameter>& out) {
|
|
128
|
+
|
|
129
|
+
if (pd.sectionContext() != ValuesSectionType) {
|
|
130
|
+
return node;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Check redefinition
|
|
134
|
+
if (!out.node.values.empty()) {
|
|
135
|
+
// WARN: parameter values are already defined
|
|
136
|
+
std::stringstream ss;
|
|
137
|
+
ss << "overshadowing previous 'values' definition";
|
|
138
|
+
ss << " for parameter '" << out.node.name << "'";
|
|
139
|
+
|
|
140
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
141
|
+
out.report.warnings.push_back(Warning(ss.str(),
|
|
142
|
+
RedefinitionWarning,
|
|
143
|
+
sourceMap));
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// Clear any previous values
|
|
147
|
+
out.node.values.clear();
|
|
148
|
+
|
|
149
|
+
if (pd.exportSourceMap()) {
|
|
150
|
+
out.sourceMap.values.collection.clear();
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
ParseResultRef<Values> values(out.report, out.node.values, out.sourceMap.values);
|
|
154
|
+
ValuesParser::parse(node, siblings, pd, values);
|
|
155
|
+
|
|
156
|
+
if (out.node.values.empty()) {
|
|
157
|
+
// WARN: empty definition
|
|
158
|
+
std::stringstream ss;
|
|
159
|
+
ss << "no possible values specified for parameter '" << out.node.name << "'";
|
|
160
|
+
|
|
161
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
162
|
+
out.report.warnings.push_back(Warning(ss.str(),
|
|
163
|
+
EmptyDefinitionWarning,
|
|
164
|
+
sourceMap));
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return ++MarkdownNodeIterator(node);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
static void finalize(const MarkdownNodeIterator& node,
|
|
171
|
+
SectionParserData& pd,
|
|
172
|
+
const ParseResultRef<Parameter>& out) {
|
|
173
|
+
|
|
174
|
+
checkDefaultAndRequiredClash<Parameter>(node, pd, out);
|
|
175
|
+
checkExampleAndDefaultValue<Parameter>(node, pd, out);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
static SectionType sectionType(const MarkdownNodeIterator& node) {
|
|
179
|
+
|
|
180
|
+
if (node->type == mdp::ListItemMarkdownNodeType
|
|
181
|
+
&& !node->children().empty()) {
|
|
182
|
+
|
|
183
|
+
mdp::ByteBuffer subject, remainingContent;
|
|
184
|
+
subject = GetFirstLine(node->children().front().text, remainingContent);
|
|
185
|
+
TrimString(subject);
|
|
186
|
+
|
|
187
|
+
// Look ahead into nested list items
|
|
188
|
+
for (MarkdownNodeIterator it = node->children().begin();
|
|
189
|
+
it != node->children().end();
|
|
190
|
+
++it) {
|
|
191
|
+
|
|
192
|
+
if (it->type == mdp::ListItemMarkdownNodeType
|
|
193
|
+
&& !it->children().empty()) {
|
|
194
|
+
|
|
195
|
+
mdp::ByteBuffer itSubject, itRemainingContent;
|
|
196
|
+
itSubject = GetFirstLine(it->children().front().text, itRemainingContent);
|
|
197
|
+
TrimString(itSubject);
|
|
198
|
+
|
|
199
|
+
if (RegexMatch(itSubject, MSONDefaultTypeSectionRegex) ||
|
|
200
|
+
RegexMatch(itSubject, MSONSampleTypeSectionRegex) ||
|
|
201
|
+
RegexMatch(itSubject, MSONValueMembersTypeSectionRegex)) {
|
|
202
|
+
|
|
203
|
+
return MSONParameterSectionType;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
if (RegexMatch(itSubject, ParameterValuesRegex)) {
|
|
207
|
+
return ParameterSectionType;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
ParameterType parameterType = getParameterType(subject);
|
|
213
|
+
|
|
214
|
+
if (parameterType == OldParameterType) {
|
|
215
|
+
return ParameterSectionType;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
if (parameterType == NewParameterType) {
|
|
219
|
+
return MSONParameterSectionType;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
return UndefinedSectionType;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
static SectionType nestedSectionType(const MarkdownNodeIterator& node) {
|
|
227
|
+
|
|
228
|
+
return SectionProcessor<Values>::sectionType(node);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
template<typename T>
|
|
232
|
+
static void parseAttributes(const mdp::MarkdownNodeIterator& node,
|
|
233
|
+
SectionParserData& pd,
|
|
234
|
+
const std::vector<mdp::ByteBuffer>& attributes,
|
|
235
|
+
const ParseResultRef<T>& out,
|
|
236
|
+
const bool oldSyntax = true) {
|
|
237
|
+
|
|
238
|
+
out.node.use = UndefinedParameterUse;
|
|
239
|
+
size_t max = oldSyntax ? OLD_SYNTAX_MAX_ATTRIBUTES : NEW_SYNTAX_MAX_ATTRIBUTES;
|
|
240
|
+
|
|
241
|
+
if (attributes.size() > max) {
|
|
242
|
+
return warnAboutAdditionalTraits(node, pd, out, oldSyntax);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
bool definedUse = false;
|
|
246
|
+
|
|
247
|
+
// Traverse over parameter's traits
|
|
248
|
+
for (size_t i = 0; i < attributes.size(); i++) {
|
|
249
|
+
CaptureGroups captureGroups;
|
|
250
|
+
|
|
251
|
+
if (RegexMatch(attributes[i], ParameterOptionalRegex) && !definedUse) {
|
|
252
|
+
out.node.use = OptionalParameterUse;
|
|
253
|
+
definedUse = true;
|
|
254
|
+
}
|
|
255
|
+
else if (RegexMatch(attributes[i], ParameterRequiredRegex) && !definedUse) {
|
|
256
|
+
out.node.use = RequiredParameterUse;
|
|
257
|
+
definedUse = true;
|
|
258
|
+
}
|
|
259
|
+
else if (oldSyntax &&
|
|
260
|
+
RegexCapture(attributes[i], AdditionalTraitsExampleRegex, captureGroups) &&
|
|
261
|
+
captureGroups.size() > 1) {
|
|
262
|
+
|
|
263
|
+
out.node.exampleValue = captureGroups[1];
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
if (!out.node.type.empty()) {
|
|
267
|
+
return warnAboutAdditionalTraits(node, pd, out, oldSyntax);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
out.node.type = attributes[i];
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// For new syntax, Retrieve the type which is wrapped by enum[]
|
|
275
|
+
if (!oldSyntax && !out.node.type.empty()) {
|
|
276
|
+
std::string typeInsideEnum = RegexCaptureFirst(out.node.type, EnumRegex);
|
|
277
|
+
TrimString(typeInsideEnum);
|
|
278
|
+
|
|
279
|
+
if (!typeInsideEnum.empty()) {
|
|
280
|
+
out.node.type = typeInsideEnum;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
if (pd.exportSourceMap()) {
|
|
285
|
+
if (!out.node.type.empty()) {
|
|
286
|
+
out.sourceMap.type.sourceMap = node->sourceMap;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
if (definedUse) {
|
|
290
|
+
out.sourceMap.use.sourceMap = node->sourceMap;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
if (oldSyntax && !out.node.exampleValue.empty()) {
|
|
294
|
+
out.sourceMap.exampleValue.sourceMap = node->sourceMap;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
template<typename T>
|
|
300
|
+
static void warnAboutAdditionalTraits(const mdp::MarkdownNodeIterator& node,
|
|
301
|
+
SectionParserData& pd,
|
|
302
|
+
const ParseResultRef<T>& out,
|
|
303
|
+
bool oldSyntax) {
|
|
304
|
+
|
|
305
|
+
// WARN: Additional parameters traits warning
|
|
306
|
+
std::stringstream ss;
|
|
307
|
+
ss << "unable to parse additional parameter traits";
|
|
308
|
+
ss << (oldSyntax ? OldSyntaxAdditionalTraitsWarning : NewSyntaxAdditionalTraitsWarning);
|
|
309
|
+
|
|
310
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
311
|
+
out.report.warnings.push_back(Warning(ss.str(),
|
|
312
|
+
FormattingWarning,
|
|
313
|
+
sourceMap));
|
|
314
|
+
|
|
315
|
+
out.node.type.clear();
|
|
316
|
+
out.node.use = UndefinedParameterUse;
|
|
317
|
+
|
|
318
|
+
if (pd.exportSourceMap()) {
|
|
319
|
+
out.sourceMap.type.sourceMap.clear();
|
|
320
|
+
out.sourceMap.use.sourceMap.clear();
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
// Clear example value for old syntax
|
|
324
|
+
if (oldSyntax) {
|
|
325
|
+
out.node.exampleValue.clear();
|
|
326
|
+
|
|
327
|
+
if (pd.exportSourceMap()) {
|
|
328
|
+
out.sourceMap.exampleValue.sourceMap.clear();
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
template<typename T>
|
|
334
|
+
static void checkDefaultAndRequiredClash(const mdp::MarkdownNodeIterator& node,
|
|
335
|
+
SectionParserData& pd,
|
|
336
|
+
const ParseResultRef<T>& out) {
|
|
337
|
+
|
|
338
|
+
// Check possible required vs default clash
|
|
339
|
+
if (out.node.use != OptionalParameterUse &&
|
|
340
|
+
!out.node.defaultValue.empty()) {
|
|
341
|
+
|
|
342
|
+
// WARN: Required vs default clash
|
|
343
|
+
std::stringstream ss;
|
|
344
|
+
ss << "specifying parameter '" << out.node.name << "' as required supersedes its default value"\
|
|
345
|
+
", declare the parameter as 'optional' to specify its default value";
|
|
346
|
+
|
|
347
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
348
|
+
out.report.warnings.push_back(Warning(ss.str(),
|
|
349
|
+
LogicalErrorWarning,
|
|
350
|
+
sourceMap));
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
template<typename T>
|
|
355
|
+
static void checkExampleAndDefaultValue(const mdp::MarkdownNodeIterator& node,
|
|
356
|
+
SectionParserData& pd,
|
|
357
|
+
const ParseResultRef<T>& out) {
|
|
358
|
+
|
|
359
|
+
if ((out.node.exampleValue.empty() && out.node.defaultValue.empty()) ||
|
|
360
|
+
out.node.values.empty()) {
|
|
361
|
+
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
bool isExampleFound = false;
|
|
366
|
+
bool isDefaultFound = false;
|
|
367
|
+
|
|
368
|
+
std::stringstream ss;
|
|
369
|
+
bool printWarning = false;
|
|
370
|
+
|
|
371
|
+
for (Collection<Value>::iterator it = out.node.values.begin();
|
|
372
|
+
it != out.node.values.end();
|
|
373
|
+
++it) {
|
|
374
|
+
|
|
375
|
+
if (out.node.exampleValue == *it) {
|
|
376
|
+
isExampleFound = true;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
if (out.node.defaultValue == *it) {
|
|
380
|
+
isDefaultFound = true;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
if(!out.node.exampleValue.empty() &&
|
|
385
|
+
!isExampleFound) {
|
|
386
|
+
|
|
387
|
+
// WARN: missing example in values.
|
|
388
|
+
ss << "the example value '" << out.node.exampleValue << "' of parameter '"<< out.node.name <<"' is not in its list of expected values";
|
|
389
|
+
printWarning = true;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
if(!out.node.defaultValue.empty() &&
|
|
393
|
+
!isDefaultFound) {
|
|
394
|
+
|
|
395
|
+
// WARN: missing default in values.
|
|
396
|
+
ss << "the default value '" << out.node.defaultValue << "' of parameter '"<< out.node.name <<"' is not in its list of expected values";
|
|
397
|
+
printWarning = true;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
if (printWarning) {
|
|
401
|
+
mdp::CharactersRangeSet sourceMap = mdp::BytesRangeSetToCharactersRangeSet(node->sourceMap, pd.sourceCharacterIndex);
|
|
402
|
+
out.report.warnings.push_back(Warning(ss.str(),
|
|
403
|
+
LogicalErrorWarning,
|
|
404
|
+
sourceMap));
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* \brief Determine the type of parameter using the signature
|
|
410
|
+
*/
|
|
411
|
+
static ParameterType getParameterType(const mdp::ByteBuffer& signature) {
|
|
412
|
+
|
|
413
|
+
mdp::ByteBuffer innerSignature = signature;
|
|
414
|
+
CaptureGroups captureGroups;
|
|
415
|
+
|
|
416
|
+
TrimString(innerSignature);
|
|
417
|
+
|
|
418
|
+
if (innerSignature.empty()) {
|
|
419
|
+
return NotParameterType; // Empty string, invalid
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
if (RegexCapture(innerSignature, "^" PARAMETER_IDENTIFIER "[[:blank:]]*", captureGroups) &&
|
|
423
|
+
!captureGroups[0].empty()) {
|
|
424
|
+
|
|
425
|
+
innerSignature = innerSignature.substr(captureGroups[0].size());
|
|
426
|
+
TrimString(innerSignature);
|
|
427
|
+
}
|
|
428
|
+
else {
|
|
429
|
+
return NotParameterType;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
// If contains only parameter name
|
|
433
|
+
if (innerSignature.empty()) {
|
|
434
|
+
return NewParameterType;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
std::string firstChar = innerSignature.substr(0, 1);
|
|
438
|
+
|
|
439
|
+
// If first char is ':' or `=`
|
|
440
|
+
if (firstChar == ":" || firstChar == "=") {
|
|
441
|
+
|
|
442
|
+
innerSignature = innerSignature.substr(1);
|
|
443
|
+
TrimString(innerSignature);
|
|
444
|
+
|
|
445
|
+
if (innerSignature.empty()) {
|
|
446
|
+
return NotParameterType; // No sample or default value
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
// Traverse over the value
|
|
450
|
+
while (!innerSignature.empty()) {
|
|
451
|
+
|
|
452
|
+
std::string first = innerSignature.substr(0, 1);
|
|
453
|
+
|
|
454
|
+
if (first == "`") {
|
|
455
|
+
std::string escaped = RetrieveEscaped(innerSignature);
|
|
456
|
+
|
|
457
|
+
// If empty value is returned
|
|
458
|
+
if (escaped.empty()) {
|
|
459
|
+
innerSignature.clear();
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
TrimString(innerSignature);
|
|
463
|
+
}
|
|
464
|
+
else if (first == "(") {
|
|
465
|
+
break;
|
|
466
|
+
}
|
|
467
|
+
else {
|
|
468
|
+
innerSignature = innerSignature.substr(1);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
return firstChar == ":" ? NewParameterType : OldParameterType;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
if (innerSignature.substr(0, 1) == "(") {
|
|
476
|
+
|
|
477
|
+
mdp::ByteBuffer inner = matchBrackets(innerSignature, 0, ')');
|
|
478
|
+
|
|
479
|
+
if (inner.length() == 2 || inner == innerSignature) {
|
|
480
|
+
return NotParameterType; // Expecting close of attributes
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
std::string attributes = inner.substr(1, inner.length()-1);
|
|
484
|
+
|
|
485
|
+
if (RegexMatch(attributes, "enum\\[[^][]+]")) {
|
|
486
|
+
return NewParameterType;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
if (RegexMatch(attributes, "`")) {
|
|
490
|
+
return OldParameterType;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
TrimString(innerSignature);
|
|
494
|
+
|
|
495
|
+
if (innerSignature.empty()) {
|
|
496
|
+
return NewParameterType;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
if (innerSignature.substr(0, 1) == "-") {
|
|
501
|
+
return NewParameterType;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
if (innerSignature.substr(0, 3) == "...") {
|
|
505
|
+
return OldParameterType;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
return NotParameterType;
|
|
509
|
+
}
|
|
510
|
+
};
|
|
511
|
+
|
|
512
|
+
/** Parameter Section Parser */
|
|
513
|
+
typedef SectionParser<Parameter, ListSectionAdapter> ParameterParser;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
#endif
|