lounge_lizard 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (348) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +2 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +4 -0
  7. data/Guardfile +33 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +50 -0
  10. data/Rakefile +43 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/circle.yml +14 -0
  14. data/ext/drafter/CHANGELOG.md +278 -0
  15. data/ext/drafter/Dockerfile +17 -0
  16. data/ext/drafter/Makefile +62 -0
  17. data/ext/drafter/appveyor.yml +17 -0
  18. data/ext/drafter/bin/drafter +0 -0
  19. data/ext/drafter/build/Makefile +387 -0
  20. data/ext/drafter/build/drafter.Makefile +6 -0
  21. data/ext/drafter/build/drafter.target.mk +159 -0
  22. data/ext/drafter/build/ext/snowcrash/libmarkdownparser.target.mk +141 -0
  23. data/ext/drafter/build/ext/snowcrash/libsnowcrash.target.mk +154 -0
  24. data/ext/drafter/build/ext/snowcrash/libsundown.target.mk +149 -0
  25. data/ext/drafter/build/ext/snowcrash/perf-libsnowcrash.target.mk +147 -0
  26. data/ext/drafter/build/ext/snowcrash/snowcrash.Makefile +6 -0
  27. data/ext/drafter/build/gyp-mac-tool +606 -0
  28. data/ext/drafter/build/libdrafter.target.mk +186 -0
  29. data/ext/drafter/build/libsos.target.mk +137 -0
  30. data/ext/drafter/build/out/Release/drafter +0 -0
  31. data/ext/drafter/build/out/Release/libdrafter.dylib +0 -0
  32. data/ext/drafter/build/out/Release/libmarkdownparser.a +0 -0
  33. data/ext/drafter/build/out/Release/libsnowcrash.a +0 -0
  34. data/ext/drafter/build/out/Release/libsos.a +0 -0
  35. data/ext/drafter/build/out/Release/libsundown.a +0 -0
  36. data/ext/drafter/build/out/Release/obj.target/drafter/src/config.o +0 -0
  37. data/ext/drafter/build/out/Release/obj.target/drafter/src/main.o +0 -0
  38. data/ext/drafter/build/out/Release/obj.target/drafter/src/reporting.o +0 -0
  39. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/ConversionContext.o +0 -0
  40. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/NamedTypesRegistry.o +0 -0
  41. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractAPI.o +0 -0
  42. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractDataStructure.o +0 -0
  43. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractElementFactory.o +0 -0
  44. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/RefractSourceMap.o +0 -0
  45. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/Render.o +0 -0
  46. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/Serialize.o +0 -0
  47. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeAST.o +0 -0
  48. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeResult.o +0 -0
  49. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/SerializeSourcemap.o +0 -0
  50. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/drafter.o +0 -0
  51. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/drafter_private.o +0 -0
  52. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/ComparableVisitor.o +0 -0
  53. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Element.o +0 -0
  54. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/ExpandVisitor.o +0 -0
  55. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/IsExpandableVisitor.o +0 -0
  56. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/JSONSchemaVisitor.o +0 -0
  57. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/PrintVisitor.o +0 -0
  58. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Query.o +0 -0
  59. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/Registry.o +0 -0
  60. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/RenderJSONVisitor.o +0 -0
  61. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/SerializeCompactVisitor.o +0 -0
  62. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/SerializeVisitor.o +0 -0
  63. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/TypeQueryVisitor.o +0 -0
  64. data/ext/drafter/build/out/Release/obj.target/libdrafter/src/refract/VisitorUtils.o +0 -0
  65. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.o +0 -0
  66. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.o +0 -0
  67. data/ext/drafter/build/out/Release/obj.target/libmarkdownparser/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.o +0 -0
  68. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Blueprint.o +0 -0
  69. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/BlueprintSourcemap.o +0 -0
  70. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HTTP.o +0 -0
  71. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/HeadersParser.o +0 -0
  72. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSON.o +0 -0
  73. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONOneOfParser.o +0 -0
  74. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONSourcemap.o +0 -0
  75. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONTypeSectionParser.o +0 -0
  76. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/MSONValueMemberParser.o +0 -0
  77. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Section.o +0 -0
  78. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/Signature.o +0 -0
  79. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/UriTemplateParser.o +0 -0
  80. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/posix/RegexMatch.o +0 -0
  81. data/ext/drafter/build/out/Release/obj.target/libsnowcrash/ext/snowcrash/src/snowcrash.o +0 -0
  82. data/ext/drafter/build/out/Release/obj.target/libsos/ext/sos/src/sos.o +0 -0
  83. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.o +0 -0
  84. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.o +0 -0
  85. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.o +0 -0
  86. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html_smartypants.o +0 -0
  87. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.o +0 -0
  88. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.o +0 -0
  89. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.o +0 -0
  90. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.o +0 -0
  91. data/ext/drafter/build/out/Release/obj.target/libsundown/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.o +0 -0
  92. data/ext/drafter/circle.yml +32 -0
  93. data/ext/drafter/config.gypi +10 -0
  94. data/ext/drafter/config.mk +5 -0
  95. data/ext/drafter/configure +224 -0
  96. data/ext/drafter/drafter.gyp +189 -0
  97. data/ext/drafter/drafter.xcworkspace/contents.xcworkspacedata +13 -0
  98. data/ext/drafter/ext/snowcrash/Makefile +58 -0
  99. data/ext/drafter/ext/snowcrash/appveyor.yml +7 -0
  100. data/ext/drafter/ext/snowcrash/common.gypi +165 -0
  101. data/ext/drafter/ext/snowcrash/configure +197 -0
  102. data/ext/drafter/ext/snowcrash/ext/markdown-parser/Makefile +90 -0
  103. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/CONTRIBUTING.md +10 -0
  104. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/Makefile +84 -0
  105. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/Makefile.win +33 -0
  106. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/examples/smartypants.c +72 -0
  107. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/examples/sundown.c +80 -0
  108. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini.h +37 -0
  109. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_href_e.c +108 -0
  110. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/houdini_html_e.c +84 -0
  111. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.c +647 -0
  112. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html.h +77 -0
  113. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html/html_smartypants.c +389 -0
  114. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/html_block_names.txt +25 -0
  115. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.c +297 -0
  116. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/autolink.h +51 -0
  117. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.c +225 -0
  118. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/buffer.h +96 -0
  119. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/html_blocks.h +206 -0
  120. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.c +2726 -0
  121. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/markdown.h +147 -0
  122. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.c +204 -0
  123. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/src_map.h +58 -0
  124. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.c +81 -0
  125. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/src/stack.h +29 -0
  126. data/ext/drafter/ext/snowcrash/ext/markdown-parser/ext/sundown/sundown.def +20 -0
  127. data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/markdown/markdown.vcproj +188 -0
  128. data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/msvc.sln +38 -0
  129. data/ext/drafter/ext/snowcrash/ext/markdown-parser/msvc/sundown/sundown.vcproj +206 -0
  130. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.cc +160 -0
  131. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/ByteBuffer.h +90 -0
  132. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.cc +152 -0
  133. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownNode.h +103 -0
  134. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.cc +388 -0
  135. data/ext/drafter/ext/snowcrash/ext/markdown-parser/src/MarkdownParser.h +106 -0
  136. data/ext/drafter/ext/snowcrash/snowcrash.gyp +196 -0
  137. data/ext/drafter/ext/snowcrash/src/ActionParser.h +560 -0
  138. data/ext/drafter/ext/snowcrash/src/AssetParser.h +123 -0
  139. data/ext/drafter/ext/snowcrash/src/AttributesParser.h +123 -0
  140. data/ext/drafter/ext/snowcrash/src/Blueprint.cc +90 -0
  141. data/ext/drafter/ext/snowcrash/src/Blueprint.h +489 -0
  142. data/ext/drafter/ext/snowcrash/src/BlueprintParser.h +845 -0
  143. data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.cc +81 -0
  144. data/ext/drafter/ext/snowcrash/src/BlueprintSourcemap.h +345 -0
  145. data/ext/drafter/ext/snowcrash/src/BlueprintUtility.h +111 -0
  146. data/ext/drafter/ext/snowcrash/src/CodeBlockUtility.h +276 -0
  147. data/ext/drafter/ext/snowcrash/src/DataStructureGroupParser.h +157 -0
  148. data/ext/drafter/ext/snowcrash/src/HTTP.cc +49 -0
  149. data/ext/drafter/ext/snowcrash/src/HTTP.h +108 -0
  150. data/ext/drafter/ext/snowcrash/src/HeadersParser.cc +117 -0
  151. data/ext/drafter/ext/snowcrash/src/HeadersParser.h +377 -0
  152. data/ext/drafter/ext/snowcrash/src/MSON.cc +272 -0
  153. data/ext/drafter/ext/snowcrash/src/MSON.h +405 -0
  154. data/ext/drafter/ext/snowcrash/src/MSONMixinParser.h +103 -0
  155. data/ext/drafter/ext/snowcrash/src/MSONNamedTypeParser.h +135 -0
  156. data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.cc +132 -0
  157. data/ext/drafter/ext/snowcrash/src/MSONOneOfParser.h +80 -0
  158. data/ext/drafter/ext/snowcrash/src/MSONParameterParser.h +166 -0
  159. data/ext/drafter/ext/snowcrash/src/MSONPropertyMemberParser.h +106 -0
  160. data/ext/drafter/ext/snowcrash/src/MSONSourcemap.cc +141 -0
  161. data/ext/drafter/ext/snowcrash/src/MSONSourcemap.h +181 -0
  162. data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.cc +209 -0
  163. data/ext/drafter/ext/snowcrash/src/MSONTypeSectionParser.h +213 -0
  164. data/ext/drafter/ext/snowcrash/src/MSONUtility.h +506 -0
  165. data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.cc +214 -0
  166. data/ext/drafter/ext/snowcrash/src/MSONValueMemberParser.h +390 -0
  167. data/ext/drafter/ext/snowcrash/src/ModelTable.h +87 -0
  168. data/ext/drafter/ext/snowcrash/src/ParameterParser.h +516 -0
  169. data/ext/drafter/ext/snowcrash/src/ParametersParser.h +222 -0
  170. data/ext/drafter/ext/snowcrash/src/PayloadParser.h +733 -0
  171. data/ext/drafter/ext/snowcrash/src/Platform.h +33 -0
  172. data/ext/drafter/ext/snowcrash/src/RegexMatch.h +32 -0
  173. data/ext/drafter/ext/snowcrash/src/RelationParser.h +87 -0
  174. data/ext/drafter/ext/snowcrash/src/ResourceGroupParser.h +297 -0
  175. data/ext/drafter/ext/snowcrash/src/ResourceParser.h +536 -0
  176. data/ext/drafter/ext/snowcrash/src/Section.cc +48 -0
  177. data/ext/drafter/ext/snowcrash/src/Section.h +60 -0
  178. data/ext/drafter/ext/snowcrash/src/SectionParser.h +246 -0
  179. data/ext/drafter/ext/snowcrash/src/SectionParserData.h +109 -0
  180. data/ext/drafter/ext/snowcrash/src/SectionProcessor.h +299 -0
  181. data/ext/drafter/ext/snowcrash/src/Signature.cc +75 -0
  182. data/ext/drafter/ext/snowcrash/src/Signature.h +103 -0
  183. data/ext/drafter/ext/snowcrash/src/SignatureSectionProcessor.h +442 -0
  184. data/ext/drafter/ext/snowcrash/src/SourceAnnotation.h +166 -0
  185. data/ext/drafter/ext/snowcrash/src/StringUtility.h +323 -0
  186. data/ext/drafter/ext/snowcrash/src/UriTemplateParser.cc +195 -0
  187. data/ext/drafter/ext/snowcrash/src/UriTemplateParser.h +240 -0
  188. data/ext/drafter/ext/snowcrash/src/ValuesParser.h +111 -0
  189. data/ext/drafter/ext/snowcrash/src/posix/RegexMatch.cc +99 -0
  190. data/ext/drafter/ext/snowcrash/src/snowcrash.cc +90 -0
  191. data/ext/drafter/ext/snowcrash/src/snowcrash.h +44 -0
  192. data/ext/drafter/ext/snowcrash/src/win/RegexMatch.cc +78 -0
  193. data/ext/drafter/ext/snowcrash/tools/gyp/AUTHORS +12 -0
  194. data/ext/drafter/ext/snowcrash/tools/gyp/DEPS +23 -0
  195. data/ext/drafter/ext/snowcrash/tools/gyp/OWNERS +1 -0
  196. data/ext/drafter/ext/snowcrash/tools/gyp/PRESUBMIT.py +137 -0
  197. data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/buildbot_run.py +136 -0
  198. data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/commit_queue/OWNERS +6 -0
  199. data/ext/drafter/ext/snowcrash/tools/gyp/buildbot/commit_queue/cq_config.json +15 -0
  200. data/ext/drafter/ext/snowcrash/tools/gyp/codereview.settings +10 -0
  201. data/ext/drafter/ext/snowcrash/tools/gyp/data/win/large-pdb-shim.cc +12 -0
  202. data/ext/drafter/ext/snowcrash/tools/gyp/gyp +8 -0
  203. data/ext/drafter/ext/snowcrash/tools/gyp/gyp.bat +5 -0
  204. data/ext/drafter/ext/snowcrash/tools/gyp/gyp_main.py +16 -0
  205. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSNew.py +340 -0
  206. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSProject.py +208 -0
  207. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSSettings.py +1096 -0
  208. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSToolFile.py +58 -0
  209. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUserFile.py +147 -0
  210. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUtil.py +270 -0
  211. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSUtil.pyc +0 -0
  212. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSVersion.py +445 -0
  213. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/MSVSVersion.pyc +0 -0
  214. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/__init__.py +548 -0
  215. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/__init__.pyc +0 -0
  216. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.py +608 -0
  217. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/common.pyc +0 -0
  218. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/easy_xml.py +157 -0
  219. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/flock_tool.py +54 -0
  220. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.py +0 -0
  221. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.pyc +0 -0
  222. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/analyzer.py +741 -0
  223. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/android.py +1069 -0
  224. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/cmake.py +1248 -0
  225. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/dump_dependency_json.py +99 -0
  226. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/eclipse.py +425 -0
  227. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/gypd.py +94 -0
  228. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/gypsh.py +56 -0
  229. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.py +2218 -0
  230. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.pyc +0 -0
  231. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/msvs.py +3467 -0
  232. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja.py +2427 -0
  233. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja.pyc +0 -0
  234. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.py +1300 -0
  235. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.pyc +0 -0
  236. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/input.py +2899 -0
  237. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/input.pyc +0 -0
  238. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/mac_tool.py +605 -0
  239. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/msvs_emulation.py +1093 -0
  240. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/msvs_emulation.pyc +0 -0
  241. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ninja_syntax.py +160 -0
  242. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ninja_syntax.pyc +0 -0
  243. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/ordered_dict.py +289 -0
  244. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/simple_copy.py +46 -0
  245. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/simple_copy.pyc +0 -0
  246. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/win_tool.py +314 -0
  247. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.py +1664 -0
  248. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.pyc +0 -0
  249. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_ninja.py +276 -0
  250. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcode_ninja.pyc +0 -0
  251. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.py +2927 -0
  252. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.pyc +0 -0
  253. data/ext/drafter/ext/snowcrash/tools/gyp/pylib/gyp/xml_fix.py +69 -0
  254. data/ext/drafter/ext/snowcrash/tools/gyp/pylintrc +307 -0
  255. data/ext/drafter/ext/snowcrash/tools/gyp/samples/samples +81 -0
  256. data/ext/drafter/ext/snowcrash/tools/gyp/samples/samples.bat +5 -0
  257. data/ext/drafter/ext/snowcrash/tools/gyp/setup.py +19 -0
  258. data/ext/drafter/ext/snowcrash/tools/gyp/tools/Xcode/Specifications/gyp.pbfilespec +27 -0
  259. data/ext/drafter/ext/snowcrash/tools/gyp/tools/Xcode/Specifications/gyp.xclangspec +226 -0
  260. data/ext/drafter/ext/snowcrash/tools/gyp/tools/emacs/gyp.el +275 -0
  261. data/ext/drafter/ext/snowcrash/tools/gyp/tools/graphviz.py +100 -0
  262. data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_gyp.py +155 -0
  263. data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_sln.py +169 -0
  264. data/ext/drafter/ext/snowcrash/tools/gyp/tools/pretty_vcproj.py +329 -0
  265. data/ext/drafter/ext/snowcrash/vcbuild.bat +139 -0
  266. data/ext/drafter/ext/sos/Makefile +62 -0
  267. data/ext/drafter/ext/sos/src/sos.cc +235 -0
  268. data/ext/drafter/ext/sos/src/sos.h +188 -0
  269. data/ext/drafter/ext/sos/src/sosJSON.h +121 -0
  270. data/ext/drafter/ext/sos/src/sosYAML.h +105 -0
  271. data/ext/drafter/src/ConversionContext.cc +39 -0
  272. data/ext/drafter/src/ConversionContext.h +34 -0
  273. data/ext/drafter/src/NamedTypesRegistry.cc +405 -0
  274. data/ext/drafter/src/NamedTypesRegistry.h +28 -0
  275. data/ext/drafter/src/NodeInfo.h +143 -0
  276. data/ext/drafter/src/RefractAPI.cc +579 -0
  277. data/ext/drafter/src/RefractAPI.h +28 -0
  278. data/ext/drafter/src/RefractDataStructure.cc +1199 -0
  279. data/ext/drafter/src/RefractDataStructure.h +26 -0
  280. data/ext/drafter/src/RefractElementFactory.cc +107 -0
  281. data/ext/drafter/src/RefractElementFactory.h +67 -0
  282. data/ext/drafter/src/RefractSourceMap.cc +29 -0
  283. data/ext/drafter/src/RefractSourceMap.h +57 -0
  284. data/ext/drafter/src/Render.cc +157 -0
  285. data/ext/drafter/src/Render.h +40 -0
  286. data/ext/drafter/src/Serialize.cc +160 -0
  287. data/ext/drafter/src/Serialize.h +289 -0
  288. data/ext/drafter/src/SerializeAST.cc +507 -0
  289. data/ext/drafter/src/SerializeAST.h +29 -0
  290. data/ext/drafter/src/SerializeResult.cc +170 -0
  291. data/ext/drafter/src/SerializeResult.h +34 -0
  292. data/ext/drafter/src/SerializeSourcemap.cc +331 -0
  293. data/ext/drafter/src/SerializeSourcemap.h +21 -0
  294. data/ext/drafter/src/Version.h +40 -0
  295. data/ext/drafter/src/config.cc +91 -0
  296. data/ext/drafter/src/config.h +38 -0
  297. data/ext/drafter/src/drafter.cc +137 -0
  298. data/ext/drafter/src/drafter.h +102 -0
  299. data/ext/drafter/src/drafter_private.cc +85 -0
  300. data/ext/drafter/src/drafter_private.h +34 -0
  301. data/ext/drafter/src/main.cc +137 -0
  302. data/ext/drafter/src/refract/AppendDecorator.h +58 -0
  303. data/ext/drafter/src/refract/Build.h +67 -0
  304. data/ext/drafter/src/refract/ComparableVisitor.cc +43 -0
  305. data/ext/drafter/src/refract/ComparableVisitor.h +62 -0
  306. data/ext/drafter/src/refract/Element.cc +409 -0
  307. data/ext/drafter/src/refract/Element.h +656 -0
  308. data/ext/drafter/src/refract/ElementFwd.h +37 -0
  309. data/ext/drafter/src/refract/ElementInserter.h +59 -0
  310. data/ext/drafter/src/refract/Exception.h +31 -0
  311. data/ext/drafter/src/refract/ExpandVisitor.cc +359 -0
  312. data/ext/drafter/src/refract/ExpandVisitor.h +58 -0
  313. data/ext/drafter/src/refract/FilterVisitor.h +52 -0
  314. data/ext/drafter/src/refract/IsExpandableVisitor.cc +140 -0
  315. data/ext/drafter/src/refract/IsExpandableVisitor.h +31 -0
  316. data/ext/drafter/src/refract/Iterate.h +160 -0
  317. data/ext/drafter/src/refract/JSONSchemaVisitor.cc +675 -0
  318. data/ext/drafter/src/refract/JSONSchemaVisitor.h +73 -0
  319. data/ext/drafter/src/refract/PrintVisitor.cc +164 -0
  320. data/ext/drafter/src/refract/PrintVisitor.h +50 -0
  321. data/ext/drafter/src/refract/Query.cc +13 -0
  322. data/ext/drafter/src/refract/Query.h +38 -0
  323. data/ext/drafter/src/refract/Registry.cc +114 -0
  324. data/ext/drafter/src/refract/Registry.h +43 -0
  325. data/ext/drafter/src/refract/RenderJSONVisitor.cc +255 -0
  326. data/ext/drafter/src/refract/RenderJSONVisitor.h +51 -0
  327. data/ext/drafter/src/refract/SerializeCompactVisitor.cc +167 -0
  328. data/ext/drafter/src/refract/SerializeCompactVisitor.h +56 -0
  329. data/ext/drafter/src/refract/SerializeVisitor.cc +214 -0
  330. data/ext/drafter/src/refract/SerializeVisitor.h +55 -0
  331. data/ext/drafter/src/refract/TypeQueryVisitor.cc +46 -0
  332. data/ext/drafter/src/refract/TypeQueryVisitor.h +110 -0
  333. data/ext/drafter/src/refract/Visitor.h +126 -0
  334. data/ext/drafter/src/refract/VisitorUtils.cc +63 -0
  335. data/ext/drafter/src/refract/VisitorUtils.h +231 -0
  336. data/ext/drafter/src/reporting.cc +263 -0
  337. data/ext/drafter/src/reporting.h +39 -0
  338. data/ext/drafter/src/stream.h +148 -0
  339. data/ext/drafter/tools/homebrew/drafter.rb +18 -0
  340. data/ext/drafter/tools/make-tarball.sh +39 -0
  341. data/ext/drafter/tools/refract-filter.py +96 -0
  342. data/ext/drafter/tools/release.sh +17 -0
  343. data/ext/drafter/vcbuild.bat +203 -0
  344. data/lib/lounge_lizard/binding.rb +29 -0
  345. data/lib/lounge_lizard/version.rb +3 -0
  346. data/lib/lounge_lizard.rb +18 -0
  347. data/lounge_lizard.gemspec +37 -0
  348. metadata +547 -0
@@ -0,0 +1,226 @@
1
+ /*
2
+ Copyright (c) 2011 Google Inc. All rights reserved.
3
+ Use of this source code is governed by a BSD-style license that can be
4
+ found in the LICENSE file.
5
+
6
+ gyp.xclangspec
7
+ GYP language specification for Xcode 3
8
+
9
+ There is not much documentation available regarding the format
10
+ of .xclangspec files. As a starting point, see for instance the
11
+ outdated documentation at:
12
+ http://maxao.free.fr/xcode-plugin-interface/specifications.html
13
+ and the files in:
14
+ /Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/
15
+
16
+ Place this file in directory:
17
+ ~/Library/Application Support/Developer/Shared/Xcode/Specifications/
18
+ */
19
+
20
+ (
21
+
22
+ {
23
+ Identifier = "xcode.lang.gyp.keyword";
24
+ Syntax = {
25
+ Words = (
26
+ "and",
27
+ "or",
28
+ "<!",
29
+ "<",
30
+ );
31
+ Type = "xcode.syntax.keyword";
32
+ };
33
+ },
34
+
35
+ {
36
+ Identifier = "xcode.lang.gyp.target.declarator";
37
+ Syntax = {
38
+ Words = (
39
+ "'target_name'",
40
+ );
41
+ Type = "xcode.syntax.identifier.type";
42
+ };
43
+ },
44
+
45
+ {
46
+ Identifier = "xcode.lang.gyp.string.singlequote";
47
+ Syntax = {
48
+ IncludeRules = (
49
+ "xcode.lang.string",
50
+ "xcode.lang.gyp.keyword",
51
+ "xcode.lang.number",
52
+ );
53
+ Start = "'";
54
+ End = "'";
55
+ };
56
+ },
57
+
58
+ {
59
+ Identifier = "xcode.lang.gyp.comma";
60
+ Syntax = {
61
+ Words = ( ",", );
62
+
63
+ };
64
+ },
65
+
66
+ {
67
+ Identifier = "xcode.lang.gyp";
68
+ Description = "GYP Coloring";
69
+ BasedOn = "xcode.lang.simpleColoring";
70
+ IncludeInMenu = YES;
71
+ Name = "GYP";
72
+ Syntax = {
73
+ Tokenizer = "xcode.lang.gyp.lexer.toplevel";
74
+ IncludeRules = (
75
+ "xcode.lang.gyp.dictionary",
76
+ );
77
+ Type = "xcode.syntax.plain";
78
+ };
79
+ },
80
+
81
+ // The following rule returns tokens to the other rules
82
+ {
83
+ Identifier = "xcode.lang.gyp.lexer";
84
+ Syntax = {
85
+ IncludeRules = (
86
+ "xcode.lang.gyp.comment",
87
+ "xcode.lang.string",
88
+ 'xcode.lang.gyp.targetname.declarator',
89
+ "xcode.lang.gyp.string.singlequote",
90
+ "xcode.lang.number",
91
+ "xcode.lang.gyp.comma",
92
+ );
93
+ };
94
+ },
95
+
96
+ {
97
+ Identifier = "xcode.lang.gyp.lexer.toplevel";
98
+ Syntax = {
99
+ IncludeRules = (
100
+ "xcode.lang.gyp.comment",
101
+ );
102
+ };
103
+ },
104
+
105
+ {
106
+ Identifier = "xcode.lang.gyp.assignment";
107
+ Syntax = {
108
+ Tokenizer = "xcode.lang.gyp.lexer";
109
+ Rules = (
110
+ "xcode.lang.gyp.assignment.lhs",
111
+ ":",
112
+ "xcode.lang.gyp.assignment.rhs",
113
+ );
114
+ };
115
+
116
+ },
117
+
118
+ {
119
+ Identifier = "xcode.lang.gyp.target.declaration";
120
+ Syntax = {
121
+ Tokenizer = "xcode.lang.gyp.lexer";
122
+ Rules = (
123
+ "xcode.lang.gyp.target.declarator",
124
+ ":",
125
+ "xcode.lang.gyp.target.name",
126
+ );
127
+ };
128
+ },
129
+
130
+ {
131
+ Identifier = "xcode.lang.gyp.target.name";
132
+ Syntax = {
133
+ Tokenizer = "xcode.lang.gyp.lexer";
134
+ Rules = (
135
+ "xcode.lang.gyp.string.singlequote",
136
+ );
137
+ Type = "xcode.syntax.definition.function";
138
+ };
139
+ },
140
+
141
+ {
142
+ Identifier = "xcode.lang.gyp.assignment.lhs";
143
+ Syntax = {
144
+ Tokenizer = "xcode.lang.gyp.lexer";
145
+ Rules = (
146
+ "xcode.lang.gyp.string.singlequote",
147
+ );
148
+ Type = "xcode.syntax.identifier.type";
149
+ };
150
+ },
151
+
152
+ {
153
+ Identifier = "xcode.lang.gyp.assignment.rhs";
154
+ Syntax = {
155
+ Tokenizer = "xcode.lang.gyp.lexer";
156
+ Rules = (
157
+ "xcode.lang.gyp.string.singlequote?",
158
+ "xcode.lang.gyp.array?",
159
+ "xcode.lang.gyp.dictionary?",
160
+ "xcode.lang.number?",
161
+ );
162
+ };
163
+ },
164
+
165
+ {
166
+ Identifier = "xcode.lang.gyp.dictionary";
167
+ Syntax = {
168
+ Tokenizer = "xcode.lang.gyp.lexer";
169
+ Start = "{";
170
+ End = "}";
171
+ Foldable = YES;
172
+ Recursive = YES;
173
+ IncludeRules = (
174
+ "xcode.lang.gyp.target.declaration",
175
+ "xcode.lang.gyp.assignment",
176
+ );
177
+ };
178
+ },
179
+
180
+ {
181
+ Identifier = "xcode.lang.gyp.array";
182
+ Syntax = {
183
+ Tokenizer = "xcode.lang.gyp.lexer";
184
+ Start = "[";
185
+ End = "]";
186
+ Foldable = YES;
187
+ Recursive = YES;
188
+ IncludeRules = (
189
+ "xcode.lang.gyp.array",
190
+ "xcode.lang.gyp.dictionary",
191
+ "xcode.lang.gyp.string.singlequote",
192
+ );
193
+ };
194
+ },
195
+
196
+ {
197
+ Identifier = "xcode.lang.gyp.todo.mark";
198
+ Syntax = {
199
+ StartChars = "T";
200
+ Match = (
201
+ "^\(TODO\(.*\):[ \t]+.*\)$", // include "TODO: " in the markers list
202
+ );
203
+ // This is the order of captures. All of the match strings above need the same order.
204
+ CaptureTypes = (
205
+ "xcode.syntax.mark"
206
+ );
207
+ Type = "xcode.syntax.comment";
208
+ };
209
+ },
210
+
211
+ {
212
+ Identifier = "xcode.lang.gyp.comment";
213
+ BasedOn = "xcode.lang.comment"; // for text macros
214
+ Syntax = {
215
+ Start = "#";
216
+ End = "\n";
217
+ IncludeRules = (
218
+ "xcode.lang.url",
219
+ "xcode.lang.url.mail",
220
+ "xcode.lang.comment.mark",
221
+ "xcode.lang.gyp.todo.mark",
222
+ );
223
+ Type = "xcode.syntax.comment";
224
+ };
225
+ },
226
+ )
@@ -0,0 +1,275 @@
1
+ ;;; gyp.el - font-lock-mode support for gyp files.
2
+
3
+ ;; Copyright (c) 2012 Google Inc. All rights reserved.
4
+ ;; Use of this source code is governed by a BSD-style license that can be
5
+ ;; found in the LICENSE file.
6
+
7
+ ;; Put this somewhere in your load-path and
8
+ ;; (require 'gyp)
9
+
10
+ (require 'python)
11
+ (require 'cl)
12
+
13
+ (when (string-match "python-mode.el" (symbol-file 'python-mode 'defun))
14
+ (error (concat "python-mode must be loaded from python.el (bundled with "
15
+ "recent emacsen), not from the older and less maintained "
16
+ "python-mode.el")))
17
+
18
+ (defadvice python-indent-calculate-levels (after gyp-outdent-closing-parens
19
+ activate)
20
+ "De-indent closing parens, braces, and brackets in gyp-mode."
21
+ (when (and (eq major-mode 'gyp-mode)
22
+ (string-match "^ *[])}][],)}]* *$"
23
+ (buffer-substring-no-properties
24
+ (line-beginning-position) (line-end-position))))
25
+ (setf (first python-indent-levels)
26
+ (- (first python-indent-levels) python-continuation-offset))))
27
+
28
+ (defadvice python-indent-guess-indent-offset (around
29
+ gyp-indent-guess-indent-offset
30
+ activate)
31
+ "Guess correct indent offset in gyp-mode."
32
+ (or (and (not (eq major-mode 'gyp-mode))
33
+ ad-do-it)
34
+ (save-excursion
35
+ (save-restriction
36
+ (widen)
37
+ (goto-char (point-min))
38
+ ;; Find first line ending with an opening brace that is not a comment.
39
+ (or (and (re-search-forward "\\(^[[{]$\\|^.*[^#].*[[{]$\\)")
40
+ (forward-line)
41
+ (/= (current-indentation) 0)
42
+ (set (make-local-variable 'python-indent-offset)
43
+ (current-indentation))
44
+ (set (make-local-variable 'python-continuation-offset)
45
+ (current-indentation)))
46
+ (message "Can't guess gyp indent offset, using default: %s"
47
+ python-continuation-offset))))))
48
+
49
+ (define-derived-mode gyp-mode python-mode "Gyp"
50
+ "Major mode for editing .gyp files. See http://code.google.com/p/gyp/"
51
+ ;; gyp-parse-history is a stack of (POSITION . PARSE-STATE) tuples,
52
+ ;; with greater positions at the top of the stack. PARSE-STATE
53
+ ;; is a list of section symbols (see gyp-section-name and gyp-parse-to)
54
+ ;; with most nested section symbol at the front of the list.
55
+ (set (make-local-variable 'gyp-parse-history) '((1 . (list))))
56
+ (gyp-add-font-lock-keywords))
57
+
58
+ (defun gyp-set-indentation ()
59
+ "Hook function to configure python indentation to suit gyp mode."
60
+ (set (make-local-variable 'python-indent-offset) 2)
61
+ (set (make-local-variable 'python-continuation-offset) 2)
62
+ (set (make-local-variable 'python-indent-guess-indent-offset) t)
63
+ (python-indent-guess-indent-offset))
64
+
65
+ (add-hook 'gyp-mode-hook 'gyp-set-indentation)
66
+
67
+ (add-to-list 'auto-mode-alist '("\\.gyp\\'" . gyp-mode))
68
+ (add-to-list 'auto-mode-alist '("\\.gypi\\'" . gyp-mode))
69
+ (add-to-list 'auto-mode-alist '("/\\.gclient\\'" . gyp-mode))
70
+
71
+ ;;; Font-lock support
72
+
73
+ (defconst gyp-dependencies-regexp
74
+ (regexp-opt (list "dependencies" "export_dependent_settings"))
75
+ "Regular expression to introduce 'dependencies' section")
76
+
77
+ (defconst gyp-sources-regexp
78
+ (regexp-opt (list "action" "files" "include_dirs" "includes" "inputs"
79
+ "libraries" "outputs" "sources"))
80
+ "Regular expression to introduce 'sources' sections")
81
+
82
+ (defconst gyp-conditions-regexp
83
+ (regexp-opt (list "conditions" "target_conditions"))
84
+ "Regular expression to introduce conditions sections")
85
+
86
+ (defconst gyp-variables-regexp
87
+ "^variables"
88
+ "Regular expression to introduce variables sections")
89
+
90
+ (defconst gyp-defines-regexp
91
+ "^defines"
92
+ "Regular expression to introduce 'defines' sections")
93
+
94
+ (defconst gyp-targets-regexp
95
+ "^targets"
96
+ "Regular expression to introduce 'targets' sections")
97
+
98
+ (defun gyp-section-name (section)
99
+ "Map the sections we are interested in from SECTION to symbol.
100
+
101
+ SECTION is a string from the buffer that introduces a section. The result is
102
+ a symbol representing the kind of section.
103
+
104
+ This allows us to treat (for the purposes of font-lock) several different
105
+ section names as the same kind of section. For example, a 'sources section
106
+ can be introduced by the 'sources', 'inputs', 'outputs' keyword.
107
+
108
+ 'other is the default section kind when a more specific match is not made."
109
+ (cond ((string-match-p gyp-dependencies-regexp section) 'dependencies)
110
+ ((string-match-p gyp-sources-regexp section) 'sources)
111
+ ((string-match-p gyp-variables-regexp section) 'variables)
112
+ ((string-match-p gyp-conditions-regexp section) 'conditions)
113
+ ((string-match-p gyp-targets-regexp section) 'targets)
114
+ ((string-match-p gyp-defines-regexp section) 'defines)
115
+ (t 'other)))
116
+
117
+ (defun gyp-invalidate-parse-states-after (target-point)
118
+ "Erase any parse information after target-point."
119
+ (while (> (caar gyp-parse-history) target-point)
120
+ (setq gyp-parse-history (cdr gyp-parse-history))))
121
+
122
+ (defun gyp-parse-point ()
123
+ "The point of the last parse state added by gyp-parse-to."
124
+ (caar gyp-parse-history))
125
+
126
+ (defun gyp-parse-sections ()
127
+ "A list of section symbols holding at the last parse state point."
128
+ (cdar gyp-parse-history))
129
+
130
+ (defun gyp-inside-dictionary-p ()
131
+ "Predicate returning true if the parser is inside a dictionary."
132
+ (not (eq (cadar gyp-parse-history) 'list)))
133
+
134
+ (defun gyp-add-parse-history (point sections)
135
+ "Add parse state SECTIONS to the parse history at POINT so that parsing can be
136
+ resumed instantly."
137
+ (while (>= (caar gyp-parse-history) point)
138
+ (setq gyp-parse-history (cdr gyp-parse-history)))
139
+ (setq gyp-parse-history (cons (cons point sections) gyp-parse-history)))
140
+
141
+ (defun gyp-parse-to (target-point)
142
+ "Parses from (point) to TARGET-POINT adding the parse state information to
143
+ gyp-parse-state-history. Parsing stops if TARGET-POINT is reached or if a
144
+ string literal has been parsed. Returns nil if no further parsing can be
145
+ done, otherwise returns the position of the start of a parsed string, leaving
146
+ the point at the end of the string."
147
+ (let ((parsing t)
148
+ string-start)
149
+ (while parsing
150
+ (setq string-start nil)
151
+ ;; Parse up to a character that starts a sexp, or if the nesting
152
+ ;; level decreases.
153
+ (let ((state (parse-partial-sexp (gyp-parse-point)
154
+ target-point
155
+ -1
156
+ t))
157
+ (sections (gyp-parse-sections)))
158
+ (if (= (nth 0 state) -1)
159
+ (setq sections (cdr sections)) ; pop out a level
160
+ (cond ((looking-at-p "['\"]") ; a string
161
+ (setq string-start (point))
162
+ (goto-char (scan-sexps (point) 1))
163
+ (if (gyp-inside-dictionary-p)
164
+ ;; Look for sections inside a dictionary
165
+ (let ((section (gyp-section-name
166
+ (buffer-substring-no-properties
167
+ (+ 1 string-start)
168
+ (- (point) 1)))))
169
+ (setq sections (cons section (cdr sections)))))
170
+ ;; Stop after the string so it can be fontified.
171
+ (setq target-point (point)))
172
+ ((looking-at-p "{")
173
+ ;; Inside a dictionary. Increase nesting.
174
+ (forward-char 1)
175
+ (setq sections (cons 'unknown sections)))
176
+ ((looking-at-p "\\[")
177
+ ;; Inside a list. Increase nesting
178
+ (forward-char 1)
179
+ (setq sections (cons 'list sections)))
180
+ ((not (eobp))
181
+ ;; other
182
+ (forward-char 1))))
183
+ (gyp-add-parse-history (point) sections)
184
+ (setq parsing (< (point) target-point))))
185
+ string-start))
186
+
187
+ (defun gyp-section-at-point ()
188
+ "Transform the last parse state, which is a list of nested sections and return
189
+ the section symbol that should be used to determine font-lock information for
190
+ the string. Can return nil indicating the string should not have any attached
191
+ section."
192
+ (let ((sections (gyp-parse-sections)))
193
+ (cond
194
+ ((eq (car sections) 'conditions)
195
+ ;; conditions can occur in a variables section, but we still want to
196
+ ;; highlight it as a keyword.
197
+ nil)
198
+ ((and (eq (car sections) 'list)
199
+ (eq (cadr sections) 'list))
200
+ ;; conditions and sources can have items in [[ ]]
201
+ (caddr sections))
202
+ (t (cadr sections)))))
203
+
204
+ (defun gyp-section-match (limit)
205
+ "Parse from (point) to LIMIT returning by means of match data what was
206
+ matched. The group of the match indicates what style font-lock should apply.
207
+ See also `gyp-add-font-lock-keywords'."
208
+ (gyp-invalidate-parse-states-after (point))
209
+ (let ((group nil)
210
+ (string-start t))
211
+ (while (and (< (point) limit)
212
+ (not group)
213
+ string-start)
214
+ (setq string-start (gyp-parse-to limit))
215
+ (if string-start
216
+ (setq group (case (gyp-section-at-point)
217
+ ('dependencies 1)
218
+ ('variables 2)
219
+ ('conditions 2)
220
+ ('sources 3)
221
+ ('defines 4)
222
+ (nil nil)))))
223
+ (if group
224
+ (progn
225
+ ;; Set the match data to indicate to the font-lock mechanism the
226
+ ;; highlighting to be performed.
227
+ (set-match-data (append (list string-start (point))
228
+ (make-list (* (1- group) 2) nil)
229
+ (list (1+ string-start) (1- (point)))))
230
+ t))))
231
+
232
+ ;;; Please see http://code.google.com/p/gyp/wiki/GypLanguageSpecification for
233
+ ;;; canonical list of keywords.
234
+ (defun gyp-add-font-lock-keywords ()
235
+ "Add gyp-mode keywords to font-lock mechanism."
236
+ ;; TODO(jknotten): Move all the keyword highlighting into gyp-section-match
237
+ ;; so that we can do the font-locking in a single font-lock pass.
238
+ (font-lock-add-keywords
239
+ nil
240
+ (list
241
+ ;; Top-level keywords
242
+ (list (concat "['\"]\\("
243
+ (regexp-opt (list "action" "action_name" "actions" "cflags"
244
+ "cflags_cc" "conditions" "configurations"
245
+ "copies" "defines" "dependencies" "destination"
246
+ "direct_dependent_settings"
247
+ "export_dependent_settings" "extension" "files"
248
+ "include_dirs" "includes" "inputs" "ldflags" "libraries"
249
+ "link_settings" "mac_bundle" "message"
250
+ "msvs_external_rule" "outputs" "product_name"
251
+ "process_outputs_as_sources" "rules" "rule_name"
252
+ "sources" "suppress_wildcard"
253
+ "target_conditions" "target_defaults"
254
+ "target_defines" "target_name" "toolsets"
255
+ "targets" "type" "variables" "xcode_settings"))
256
+ "[!/+=]?\\)") 1 'font-lock-keyword-face t)
257
+ ;; Type of target
258
+ (list (concat "['\"]\\("
259
+ (regexp-opt (list "loadable_module" "static_library"
260
+ "shared_library" "executable" "none"))
261
+ "\\)") 1 'font-lock-type-face t)
262
+ (list "\\(?:target\\|action\\)_name['\"]\\s-*:\\s-*['\"]\\([^ '\"]*\\)" 1
263
+ 'font-lock-function-name-face t)
264
+ (list 'gyp-section-match
265
+ (list 1 'font-lock-function-name-face t t) ; dependencies
266
+ (list 2 'font-lock-variable-name-face t t) ; variables, conditions
267
+ (list 3 'font-lock-constant-face t t) ; sources
268
+ (list 4 'font-lock-preprocessor-face t t)) ; preprocessor
269
+ ;; Variable expansion
270
+ (list "<@?(\\([^\n )]+\\))" 1 'font-lock-variable-name-face t)
271
+ ;; Command expansion
272
+ (list "<!@?(\\([^\n )]+\\))" 1 'font-lock-variable-name-face t)
273
+ )))
274
+
275
+ (provide 'gyp)
@@ -0,0 +1,100 @@
1
+ #!/usr/bin/env python
2
+
3
+ # Copyright (c) 2011 Google Inc. All rights reserved.
4
+ # Use of this source code is governed by a BSD-style license that can be
5
+ # found in the LICENSE file.
6
+
7
+ """Using the JSON dumped by the dump-dependency-json generator,
8
+ generate input suitable for graphviz to render a dependency graph of
9
+ targets."""
10
+
11
+ import collections
12
+ import json
13
+ import sys
14
+
15
+
16
+ def ParseTarget(target):
17
+ target, _, suffix = target.partition('#')
18
+ filename, _, target = target.partition(':')
19
+ return filename, target, suffix
20
+
21
+
22
+ def LoadEdges(filename, targets):
23
+ """Load the edges map from the dump file, and filter it to only
24
+ show targets in |targets| and their depedendents."""
25
+
26
+ file = open('dump.json')
27
+ edges = json.load(file)
28
+ file.close()
29
+
30
+ # Copy out only the edges we're interested in from the full edge list.
31
+ target_edges = {}
32
+ to_visit = targets[:]
33
+ while to_visit:
34
+ src = to_visit.pop()
35
+ if src in target_edges:
36
+ continue
37
+ target_edges[src] = edges[src]
38
+ to_visit.extend(edges[src])
39
+
40
+ return target_edges
41
+
42
+
43
+ def WriteGraph(edges):
44
+ """Print a graphviz graph to stdout.
45
+ |edges| is a map of target to a list of other targets it depends on."""
46
+
47
+ # Bucket targets by file.
48
+ files = collections.defaultdict(list)
49
+ for src, dst in edges.items():
50
+ build_file, target_name, toolset = ParseTarget(src)
51
+ files[build_file].append(src)
52
+
53
+ print 'digraph D {'
54
+ print ' fontsize=8' # Used by subgraphs.
55
+ print ' node [fontsize=8]'
56
+
57
+ # Output nodes by file. We must first write out each node within
58
+ # its file grouping before writing out any edges that may refer
59
+ # to those nodes.
60
+ for filename, targets in files.items():
61
+ if len(targets) == 1:
62
+ # If there's only one node for this file, simplify
63
+ # the display by making it a box without an internal node.
64
+ target = targets[0]
65
+ build_file, target_name, toolset = ParseTarget(target)
66
+ print ' "%s" [shape=box, label="%s\\n%s"]' % (target, filename,
67
+ target_name)
68
+ else:
69
+ # Group multiple nodes together in a subgraph.
70
+ print ' subgraph "cluster_%s" {' % filename
71
+ print ' label = "%s"' % filename
72
+ for target in targets:
73
+ build_file, target_name, toolset = ParseTarget(target)
74
+ print ' "%s" [label="%s"]' % (target, target_name)
75
+ print ' }'
76
+
77
+ # Now that we've placed all the nodes within subgraphs, output all
78
+ # the edges between nodes.
79
+ for src, dsts in edges.items():
80
+ for dst in dsts:
81
+ print ' "%s" -> "%s"' % (src, dst)
82
+
83
+ print '}'
84
+
85
+
86
+ def main():
87
+ if len(sys.argv) < 2:
88
+ print >>sys.stderr, __doc__
89
+ print >>sys.stderr
90
+ print >>sys.stderr, 'usage: %s target1 target2...' % (sys.argv[0])
91
+ return 1
92
+
93
+ edges = LoadEdges('dump.json', sys.argv[1:])
94
+
95
+ WriteGraph(edges)
96
+ return 0
97
+
98
+
99
+ if __name__ == '__main__':
100
+ sys.exit(main())