pygments.rb 0.6.3 → 1.0.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.
Files changed (606) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +6 -6
  4. data/Rakefile +2 -1
  5. data/cache-lexers.rb +1 -1
  6. data/circle.yml +7 -0
  7. data/lib/pygments/lexer.rb +3 -3
  8. data/lib/pygments/popen.rb +67 -30
  9. data/lib/pygments/version.rb +1 -1
  10. data/pygments.rb.gemspec +2 -1
  11. data/test/test_pygments.rb +16 -16
  12. data/vendor/pygments-main/AUTHORS +54 -8
  13. data/vendor/pygments-main/CHANGES +247 -25
  14. data/vendor/pygments-main/LICENSE +1 -1
  15. data/vendor/pygments-main/Makefile +15 -6
  16. data/vendor/pygments-main/README.rst +39 -0
  17. data/vendor/pygments-main/REVISION +1 -1
  18. data/vendor/pygments-main/TODO +0 -3
  19. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +1 -1
  20. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +1 -1
  21. data/vendor/pygments-main/doc/conf.py +3 -11
  22. data/vendor/pygments-main/doc/docs/api.rst +15 -0
  23. data/vendor/pygments-main/doc/docs/cmdline.rst +6 -2
  24. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +4 -3
  25. data/vendor/pygments-main/doc/docs/integrate.rst +11 -15
  26. data/vendor/pygments-main/doc/docs/java.rst +7 -7
  27. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +258 -171
  28. data/vendor/pygments-main/doc/docs/lexers.rst +2 -2
  29. data/vendor/pygments-main/doc/docs/styles.rst +58 -0
  30. data/vendor/pygments-main/doc/docs/tokens.rst +22 -2
  31. data/vendor/pygments-main/doc/docs/unicode.rst +15 -7
  32. data/vendor/pygments-main/doc/faq.rst +17 -21
  33. data/vendor/pygments-main/doc/index.rst +12 -11
  34. data/vendor/pygments-main/doc/languages.rst +10 -7
  35. data/vendor/pygments-main/external/autopygmentize +9 -6
  36. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +70 -52
  37. data/vendor/pygments-main/external/markdown-processor.py +1 -1
  38. data/vendor/pygments-main/external/moin-parser.py +1 -1
  39. data/vendor/pygments-main/external/rst-directive.py +1 -1
  40. data/vendor/pygments-main/pygmentize +2 -1
  41. data/vendor/pygments-main/pygments/__init__.py +14 -15
  42. data/vendor/pygments-main/pygments/cmdline.py +188 -113
  43. data/vendor/pygments-main/pygments/console.py +13 -13
  44. data/vendor/pygments-main/pygments/filter.py +7 -7
  45. data/vendor/pygments-main/pygments/filters/__init__.py +24 -32
  46. data/vendor/pygments-main/pygments/formatter.py +5 -5
  47. data/vendor/pygments-main/pygments/formatters/__init__.py +92 -44
  48. data/vendor/pygments-main/pygments/formatters/_mapping.py +51 -69
  49. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  50. data/vendor/pygments-main/pygments/formatters/html.py +63 -51
  51. data/vendor/pygments-main/pygments/formatters/img.py +25 -22
  52. data/vendor/pygments-main/pygments/formatters/irc.py +182 -0
  53. data/vendor/pygments-main/pygments/formatters/latex.py +34 -22
  54. data/vendor/pygments-main/pygments/formatters/other.py +5 -7
  55. data/vendor/pygments-main/pygments/formatters/rtf.py +28 -31
  56. data/vendor/pygments-main/pygments/formatters/svg.py +1 -2
  57. data/vendor/pygments-main/pygments/formatters/terminal.py +29 -45
  58. data/vendor/pygments-main/pygments/formatters/terminal256.py +118 -31
  59. data/vendor/pygments-main/pygments/lexer.py +120 -34
  60. data/vendor/pygments-main/pygments/lexers/__init__.py +85 -53
  61. data/vendor/pygments-main/pygments/lexers/{_asybuiltins.py → _asy_builtins.py} +7 -7
  62. data/vendor/pygments-main/pygments/lexers/{_clbuiltins.py → _cl_builtins.py} +17 -17
  63. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +72 -0
  64. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1346 -0
  65. data/vendor/pygments-main/pygments/lexers/{_lassobuiltins.py → _lasso_builtins.py} +4699 -4561
  66. data/vendor/pygments-main/pygments/lexers/{_luabuiltins.py → _lua_builtins.py} +91 -51
  67. data/vendor/pygments-main/pygments/lexers/_mapping.py +342 -242
  68. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1172 -0
  69. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +2547 -0
  70. data/vendor/pygments-main/pygments/lexers/{_phpbuiltins.py → _php_builtins.py} +350 -353
  71. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +600 -212
  72. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3084 -30
  73. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1163 -0
  74. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +91 -13
  75. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +419 -0
  76. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1004 -0
  77. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1939 -0
  78. data/vendor/pygments-main/pygments/lexers/actionscript.py +240 -0
  79. data/vendor/pygments-main/pygments/lexers/agile.py +14 -2542
  80. data/vendor/pygments-main/pygments/lexers/algebra.py +221 -0
  81. data/vendor/pygments-main/pygments/lexers/ambient.py +76 -0
  82. data/vendor/pygments-main/pygments/lexers/ampl.py +87 -0
  83. data/vendor/pygments-main/pygments/lexers/apl.py +101 -0
  84. data/vendor/pygments-main/pygments/lexers/archetype.py +318 -0
  85. data/vendor/pygments-main/pygments/lexers/asm.py +276 -81
  86. data/vendor/pygments-main/pygments/lexers/automation.py +374 -0
  87. data/vendor/pygments-main/pygments/lexers/basic.py +500 -0
  88. data/vendor/pygments-main/pygments/lexers/bibtex.py +156 -0
  89. data/vendor/pygments-main/pygments/lexers/business.py +594 -0
  90. data/vendor/pygments-main/pygments/lexers/c_cpp.py +252 -0
  91. data/vendor/pygments-main/pygments/lexers/c_like.py +541 -0
  92. data/vendor/pygments-main/pygments/lexers/capnproto.py +79 -0
  93. data/vendor/pygments-main/pygments/lexers/chapel.py +101 -0
  94. data/vendor/pygments-main/pygments/lexers/clean.py +288 -0
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +24 -5182
  96. data/vendor/pygments-main/pygments/lexers/configs.py +833 -0
  97. data/vendor/pygments-main/pygments/lexers/console.py +114 -0
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +384 -0
  99. data/vendor/pygments-main/pygments/lexers/csound.py +366 -0
  100. data/vendor/pygments-main/pygments/lexers/css.py +689 -0
  101. data/vendor/pygments-main/pygments/lexers/d.py +251 -0
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +6 -6
  103. data/vendor/pygments-main/pygments/lexers/data.py +555 -0
  104. data/vendor/pygments-main/pygments/lexers/diff.py +165 -0
  105. data/vendor/pygments-main/pygments/lexers/dotnet.py +96 -88
  106. data/vendor/pygments-main/pygments/lexers/dsls.py +878 -0
  107. data/vendor/pygments-main/pygments/lexers/dylan.py +289 -0
  108. data/vendor/pygments-main/pygments/lexers/ecl.py +125 -0
  109. data/vendor/pygments-main/pygments/lexers/eiffel.py +65 -0
  110. data/vendor/pygments-main/pygments/lexers/elm.py +121 -0
  111. data/vendor/pygments-main/pygments/lexers/erlang.py +533 -0
  112. data/vendor/pygments-main/pygments/lexers/esoteric.py +275 -0
  113. data/vendor/pygments-main/pygments/lexers/ezhil.py +68 -0
  114. data/vendor/pygments-main/pygments/lexers/factor.py +344 -0
  115. data/vendor/pygments-main/pygments/lexers/fantom.py +250 -0
  116. data/vendor/pygments-main/pygments/lexers/felix.py +273 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +177 -0
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +205 -0
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
  120. data/vendor/pygments-main/pygments/lexers/functional.py +11 -3661
  121. data/vendor/pygments-main/pygments/lexers/go.py +101 -0
  122. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +213 -0
  123. data/vendor/pygments-main/pygments/lexers/graph.py +7 -8
  124. data/vendor/pygments-main/pygments/lexers/graphics.py +553 -0
  125. data/vendor/pygments-main/pygments/lexers/haskell.py +840 -0
  126. data/vendor/pygments-main/pygments/lexers/haxe.py +936 -0
  127. data/vendor/pygments-main/pygments/lexers/hdl.py +172 -145
  128. data/vendor/pygments-main/pygments/lexers/hexdump.py +97 -0
  129. data/vendor/pygments-main/pygments/lexers/html.py +602 -0
  130. data/vendor/pygments-main/pygments/lexers/idl.py +270 -0
  131. data/vendor/pygments-main/pygments/lexers/igor.py +288 -0
  132. data/vendor/pygments-main/pygments/lexers/inferno.py +3 -3
  133. data/vendor/pygments-main/pygments/lexers/installers.py +322 -0
  134. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1343 -0
  135. data/vendor/pygments-main/pygments/lexers/iolang.py +63 -0
  136. data/vendor/pygments-main/pygments/lexers/j.py +146 -0
  137. data/vendor/pygments-main/pygments/lexers/javascript.py +1506 -0
  138. data/vendor/pygments-main/pygments/lexers/julia.py +333 -0
  139. data/vendor/pygments-main/pygments/lexers/jvm.py +232 -186
  140. data/vendor/pygments-main/pygments/lexers/lisp.py +2621 -0
  141. data/vendor/pygments-main/pygments/lexers/make.py +202 -0
  142. data/vendor/pygments-main/pygments/lexers/markup.py +595 -0
  143. data/vendor/pygments-main/pygments/lexers/math.py +11 -2276
  144. data/vendor/pygments-main/pygments/lexers/matlab.py +663 -0
  145. data/vendor/pygments-main/pygments/lexers/ml.py +769 -0
  146. data/vendor/pygments-main/pygments/lexers/modeling.py +358 -0
  147. data/vendor/pygments-main/pygments/lexers/modula2.py +1561 -0
  148. data/vendor/pygments-main/pygments/lexers/monte.py +203 -0
  149. data/vendor/pygments-main/pygments/lexers/ncl.py +1053 -0
  150. data/vendor/pygments-main/pygments/lexers/nimrod.py +159 -0
  151. data/vendor/pygments-main/pygments/lexers/nit.py +64 -0
  152. data/vendor/pygments-main/pygments/lexers/nix.py +136 -0
  153. data/vendor/pygments-main/pygments/lexers/oberon.py +105 -0
  154. data/vendor/pygments-main/pygments/lexers/objective.py +504 -0
  155. data/vendor/pygments-main/pygments/lexers/ooc.py +85 -0
  156. data/vendor/pygments-main/pygments/lexers/other.py +30 -4481
  157. data/vendor/pygments-main/pygments/lexers/parasail.py +79 -0
  158. data/vendor/pygments-main/pygments/lexers/parsers.py +171 -114
  159. data/vendor/pygments-main/pygments/lexers/pascal.py +644 -0
  160. data/vendor/pygments-main/pygments/lexers/pawn.py +199 -0
  161. data/vendor/pygments-main/pygments/lexers/perl.py +616 -0
  162. data/vendor/pygments-main/pygments/lexers/php.py +267 -0
  163. data/vendor/pygments-main/pygments/lexers/praat.py +294 -0
  164. data/vendor/pygments-main/pygments/lexers/prolog.py +306 -0
  165. data/vendor/pygments-main/pygments/lexers/python.py +938 -0
  166. data/vendor/pygments-main/pygments/lexers/qvt.py +152 -0
  167. data/vendor/pygments-main/pygments/lexers/r.py +453 -0
  168. data/vendor/pygments-main/pygments/lexers/rdf.py +195 -24
  169. data/vendor/pygments-main/pygments/lexers/rebol.py +431 -0
  170. data/vendor/pygments-main/pygments/lexers/resource.py +85 -0
  171. data/vendor/pygments-main/pygments/lexers/rnc.py +67 -0
  172. data/vendor/pygments-main/pygments/lexers/roboconf.py +82 -0
  173. data/vendor/pygments-main/pygments/lexers/{_robotframeworklexer.py → robotframework.py} +20 -18
  174. data/vendor/pygments-main/pygments/lexers/ruby.py +519 -0
  175. data/vendor/pygments-main/pygments/lexers/rust.py +209 -0
  176. data/vendor/pygments-main/pygments/lexers/sas.py +228 -0
  177. data/vendor/pygments-main/pygments/lexers/scripting.py +1222 -0
  178. data/vendor/pygments-main/pygments/lexers/shell.py +478 -115
  179. data/vendor/pygments-main/pygments/lexers/smalltalk.py +195 -0
  180. data/vendor/pygments-main/pygments/lexers/smv.py +75 -0
  181. data/vendor/pygments-main/pygments/lexers/snobol.py +83 -0
  182. data/vendor/pygments-main/pygments/lexers/special.py +6 -2
  183. data/vendor/pygments-main/pygments/lexers/sql.py +209 -120
  184. data/vendor/pygments-main/pygments/lexers/stata.py +106 -0
  185. data/vendor/pygments-main/pygments/lexers/supercollider.py +90 -0
  186. data/vendor/pygments-main/pygments/lexers/tcl.py +145 -0
  187. data/vendor/pygments-main/pygments/lexers/templates.py +282 -90
  188. data/vendor/pygments-main/pygments/lexers/testing.py +207 -0
  189. data/vendor/pygments-main/pygments/lexers/text.py +15 -2045
  190. data/vendor/pygments-main/pygments/lexers/textedit.py +169 -0
  191. data/vendor/pygments-main/pygments/lexers/textfmts.py +297 -0
  192. data/vendor/pygments-main/pygments/lexers/theorem.py +458 -0
  193. data/vendor/pygments-main/pygments/lexers/trafficscript.py +54 -0
  194. data/vendor/pygments-main/pygments/lexers/typoscript.py +225 -0
  195. data/vendor/pygments-main/pygments/lexers/urbi.py +133 -0
  196. data/vendor/pygments-main/pygments/lexers/varnish.py +190 -0
  197. data/vendor/pygments-main/pygments/lexers/verification.py +111 -0
  198. data/vendor/pygments-main/pygments/lexers/web.py +13 -4499
  199. data/vendor/pygments-main/pygments/lexers/webmisc.py +979 -0
  200. data/vendor/pygments-main/pygments/lexers/whiley.py +117 -0
  201. data/vendor/pygments-main/pygments/lexers/x10.py +69 -0
  202. data/vendor/pygments-main/pygments/modeline.py +5 -2
  203. data/vendor/pygments-main/pygments/plugin.py +1 -1
  204. data/vendor/pygments-main/pygments/regexopt.py +92 -0
  205. data/vendor/pygments-main/pygments/scanner.py +3 -2
  206. data/vendor/pygments-main/pygments/sphinxext.py +11 -6
  207. data/vendor/pygments-main/pygments/style.py +41 -4
  208. data/vendor/pygments-main/pygments/styles/__init__.py +5 -1
  209. data/vendor/pygments-main/pygments/styles/algol.py +63 -0
  210. data/vendor/pygments-main/pygments/styles/algol_nu.py +63 -0
  211. data/vendor/pygments-main/pygments/styles/arduino.py +98 -0
  212. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  213. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  214. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  215. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  216. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  217. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  218. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  219. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  220. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  221. data/vendor/pygments-main/pygments/styles/lovelace.py +97 -0
  222. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  223. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  224. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  225. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  226. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  227. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  228. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  229. data/vendor/pygments-main/pygments/styles/perldoc.py +2 -2
  230. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  231. data/vendor/pygments-main/pygments/styles/sas.py +41 -0
  232. data/vendor/pygments-main/pygments/styles/stata.py +37 -0
  233. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  234. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  238. data/vendor/pygments-main/pygments/token.py +31 -16
  239. data/vendor/pygments-main/pygments/unistring.py +141 -65
  240. data/vendor/pygments-main/pygments/util.py +129 -33
  241. data/vendor/pygments-main/requirements.txt +5 -0
  242. data/vendor/pygments-main/scripts/check_sources.py +25 -40
  243. data/vendor/pygments-main/scripts/debug_lexer.py +246 -0
  244. data/vendor/pygments-main/scripts/find_error.py +1 -0
  245. data/vendor/pygments-main/scripts/get_vimkw.py +35 -4
  246. data/vendor/pygments-main/setup.cfg +3 -0
  247. data/vendor/pygments-main/setup.py +17 -30
  248. data/vendor/pygments-main/tox.ini +7 -0
  249. metadata +159 -387
  250. data/vendor/pygments-main/ez_setup.py +0 -382
  251. data/vendor/pygments-main/pygments/lexers/_cocoabuiltins.py +0 -73
  252. data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +0 -562
  253. data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +0 -1077
  254. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +0 -13
  255. data/vendor/pygments-main/pygments/lexers/qbasic.py +0 -157
  256. data/vendor/pygments-main/scripts/find_codetags.py +0 -213
  257. data/vendor/pygments-main/scripts/find_error.py +0 -173
  258. data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +0 -37
  259. data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +0 -869
  260. data/vendor/pygments-main/tests/dtds/HTML4.dcl +0 -88
  261. data/vendor/pygments-main/tests/dtds/HTML4.dtd +0 -1092
  262. data/vendor/pygments-main/tests/dtds/HTML4.soc +0 -9
  263. data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +0 -195
  264. data/vendor/pygments-main/tests/dtds/HTMLspec.ent +0 -77
  265. data/vendor/pygments-main/tests/dtds/HTMLsym.ent +0 -241
  266. data/vendor/pygments-main/tests/examplefiles/99_bottles_of_beer.chpl +0 -118
  267. data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +0 -209
  268. data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +0 -102
  269. data/vendor/pygments-main/tests/examplefiles/BOM.js +0 -1
  270. data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +0 -611
  271. data/vendor/pygments-main/tests/examplefiles/Config.in.cache +0 -1973
  272. data/vendor/pygments-main/tests/examplefiles/Constants.mo +0 -158
  273. data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +0 -411
  274. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +0 -578
  275. data/vendor/pygments-main/tests/examplefiles/Error.pmod +0 -38
  276. data/vendor/pygments-main/tests/examplefiles/Errors.scala +0 -18
  277. data/vendor/pygments-main/tests/examplefiles/FakeFile.pike +0 -360
  278. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +0 -66
  279. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +0 -104
  280. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +0 -671
  281. data/vendor/pygments-main/tests/examplefiles/Intro.java +0 -1660
  282. data/vendor/pygments-main/tests/examplefiles/Makefile +0 -1131
  283. data/vendor/pygments-main/tests/examplefiles/Object.st +0 -4394
  284. data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +0 -584
  285. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +0 -23
  286. data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +0 -378
  287. data/vendor/pygments-main/tests/examplefiles/Sorting.mod +0 -470
  288. data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +0 -382
  289. data/vendor/pygments-main/tests/examplefiles/addressbook.proto +0 -30
  290. data/vendor/pygments-main/tests/examplefiles/antlr_ANTLRv3.g +0 -608
  291. data/vendor/pygments-main/tests/examplefiles/antlr_throws +0 -1
  292. data/vendor/pygments-main/tests/examplefiles/apache2.conf +0 -393
  293. data/vendor/pygments-main/tests/examplefiles/as3_test.as +0 -143
  294. data/vendor/pygments-main/tests/examplefiles/as3_test2.as +0 -46
  295. data/vendor/pygments-main/tests/examplefiles/as3_test3.as +0 -3
  296. data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +0 -27
  297. data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +0 -25
  298. data/vendor/pygments-main/tests/examplefiles/badcase.java +0 -2
  299. data/vendor/pygments-main/tests/examplefiles/batchfile.bat +0 -49
  300. data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +0 -308
  301. data/vendor/pygments-main/tests/examplefiles/boot-9.scm +0 -1557
  302. data/vendor/pygments-main/tests/examplefiles/ca65_example +0 -284
  303. data/vendor/pygments-main/tests/examplefiles/cbmbas_example +0 -9
  304. data/vendor/pygments-main/tests/examplefiles/cells.ps +0 -515
  305. data/vendor/pygments-main/tests/examplefiles/ceval.c +0 -2604
  306. data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +0 -13
  307. data/vendor/pygments-main/tests/examplefiles/classes.dylan +0 -125
  308. data/vendor/pygments-main/tests/examplefiles/clojure-weird-keywords.clj +0 -5
  309. data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +0 -10
  310. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +0 -447
  311. data/vendor/pygments-main/tests/examplefiles/core.cljs +0 -52
  312. data/vendor/pygments-main/tests/examplefiles/database.pytb +0 -20
  313. data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +0 -2461
  314. data/vendor/pygments-main/tests/examplefiles/demo.ahk +0 -181
  315. data/vendor/pygments-main/tests/examplefiles/demo.cfm +0 -50
  316. data/vendor/pygments-main/tests/examplefiles/demo.hbs +0 -12
  317. data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +0 -68
  318. data/vendor/pygments-main/tests/examplefiles/dwarf.cw +0 -17
  319. data/vendor/pygments-main/tests/examplefiles/ember.handlebars +0 -33
  320. data/vendor/pygments-main/tests/examplefiles/erl_session +0 -10
  321. data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +0 -1
  322. data/vendor/pygments-main/tests/examplefiles/evil_regex.js +0 -48
  323. data/vendor/pygments-main/tests/examplefiles/example.Rd +0 -78
  324. data/vendor/pygments-main/tests/examplefiles/example.als +0 -217
  325. data/vendor/pygments-main/tests/examplefiles/example.bug +0 -54
  326. data/vendor/pygments-main/tests/examplefiles/example.c +0 -2080
  327. data/vendor/pygments-main/tests/examplefiles/example.ceylon +0 -52
  328. data/vendor/pygments-main/tests/examplefiles/example.chai +0 -6
  329. data/vendor/pygments-main/tests/examplefiles/example.clay +0 -33
  330. data/vendor/pygments-main/tests/examplefiles/example.cls +0 -15
  331. data/vendor/pygments-main/tests/examplefiles/example.cob +0 -3556
  332. data/vendor/pygments-main/tests/examplefiles/example.coffee +0 -27
  333. data/vendor/pygments-main/tests/examplefiles/example.cpp +0 -2363
  334. data/vendor/pygments-main/tests/examplefiles/example.e +0 -124
  335. data/vendor/pygments-main/tests/examplefiles/example.f90 +0 -8
  336. data/vendor/pygments-main/tests/examplefiles/example.feature +0 -16
  337. data/vendor/pygments-main/tests/examplefiles/example.gd +0 -23
  338. data/vendor/pygments-main/tests/examplefiles/example.gi +0 -64
  339. data/vendor/pygments-main/tests/examplefiles/example.groovy +0 -2
  340. data/vendor/pygments-main/tests/examplefiles/example.gs +0 -106
  341. data/vendor/pygments-main/tests/examplefiles/example.gst +0 -7
  342. data/vendor/pygments-main/tests/examplefiles/example.hs +0 -27
  343. data/vendor/pygments-main/tests/examplefiles/example.hx +0 -185
  344. data/vendor/pygments-main/tests/examplefiles/example.i6t +0 -32
  345. data/vendor/pygments-main/tests/examplefiles/example.i7x +0 -45
  346. data/vendor/pygments-main/tests/examplefiles/example.inf +0 -374
  347. data/vendor/pygments-main/tests/examplefiles/example.j +0 -564
  348. data/vendor/pygments-main/tests/examplefiles/example.jag +0 -48
  349. data/vendor/pygments-main/tests/examplefiles/example.java +0 -16
  350. data/vendor/pygments-main/tests/examplefiles/example.kal +0 -75
  351. data/vendor/pygments-main/tests/examplefiles/example.kt +0 -47
  352. data/vendor/pygments-main/tests/examplefiles/example.lagda +0 -19
  353. data/vendor/pygments-main/tests/examplefiles/example.liquid +0 -42
  354. data/vendor/pygments-main/tests/examplefiles/example.lua +0 -250
  355. data/vendor/pygments-main/tests/examplefiles/example.ma +0 -8
  356. data/vendor/pygments-main/tests/examplefiles/example.monkey +0 -152
  357. data/vendor/pygments-main/tests/examplefiles/example.moo +0 -26
  358. data/vendor/pygments-main/tests/examplefiles/example.moon +0 -629
  359. data/vendor/pygments-main/tests/examplefiles/example.mq4 +0 -187
  360. data/vendor/pygments-main/tests/examplefiles/example.mqh +0 -123
  361. data/vendor/pygments-main/tests/examplefiles/example.msc +0 -43
  362. data/vendor/pygments-main/tests/examplefiles/example.ni +0 -57
  363. data/vendor/pygments-main/tests/examplefiles/example.nim +0 -1010
  364. data/vendor/pygments-main/tests/examplefiles/example.nix +0 -80
  365. data/vendor/pygments-main/tests/examplefiles/example.ns2 +0 -69
  366. data/vendor/pygments-main/tests/examplefiles/example.pas +0 -2708
  367. data/vendor/pygments-main/tests/examplefiles/example.pp +0 -8
  368. data/vendor/pygments-main/tests/examplefiles/example.prg +0 -161
  369. data/vendor/pygments-main/tests/examplefiles/example.rb +0 -1852
  370. data/vendor/pygments-main/tests/examplefiles/example.red +0 -257
  371. data/vendor/pygments-main/tests/examplefiles/example.reds +0 -150
  372. data/vendor/pygments-main/tests/examplefiles/example.reg +0 -19
  373. data/vendor/pygments-main/tests/examplefiles/example.rexx +0 -50
  374. data/vendor/pygments-main/tests/examplefiles/example.rhtml +0 -561
  375. data/vendor/pygments-main/tests/examplefiles/example.rkt +0 -743
  376. data/vendor/pygments-main/tests/examplefiles/example.rpf +0 -4
  377. data/vendor/pygments-main/tests/examplefiles/example.sh +0 -22
  378. data/vendor/pygments-main/tests/examplefiles/example.sh-session +0 -19
  379. data/vendor/pygments-main/tests/examplefiles/example.shell-session +0 -45
  380. data/vendor/pygments-main/tests/examplefiles/example.slim +0 -31
  381. data/vendor/pygments-main/tests/examplefiles/example.sls +0 -51
  382. data/vendor/pygments-main/tests/examplefiles/example.sml +0 -156
  383. data/vendor/pygments-main/tests/examplefiles/example.snobol +0 -15
  384. data/vendor/pygments-main/tests/examplefiles/example.stan +0 -110
  385. data/vendor/pygments-main/tests/examplefiles/example.tea +0 -34
  386. data/vendor/pygments-main/tests/examplefiles/example.todotxt +0 -9
  387. data/vendor/pygments-main/tests/examplefiles/example.ts +0 -28
  388. data/vendor/pygments-main/tests/examplefiles/example.u +0 -548
  389. data/vendor/pygments-main/tests/examplefiles/example.weechatlog +0 -9
  390. data/vendor/pygments-main/tests/examplefiles/example.xhtml +0 -376
  391. data/vendor/pygments-main/tests/examplefiles/example.xtend +0 -34
  392. data/vendor/pygments-main/tests/examplefiles/example.yaml +0 -302
  393. data/vendor/pygments-main/tests/examplefiles/example2.aspx +0 -29
  394. data/vendor/pygments-main/tests/examplefiles/example2.msc +0 -79
  395. data/vendor/pygments-main/tests/examplefiles/exampleScript.cfc +0 -241
  396. data/vendor/pygments-main/tests/examplefiles/exampleTag.cfc +0 -18
  397. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +0 -205
  398. data/vendor/pygments-main/tests/examplefiles/example_file.fy +0 -128
  399. data/vendor/pygments-main/tests/examplefiles/firefox.mak +0 -586
  400. data/vendor/pygments-main/tests/examplefiles/flipflop.sv +0 -19
  401. data/vendor/pygments-main/tests/examplefiles/foo.sce +0 -6
  402. data/vendor/pygments-main/tests/examplefiles/format.ml +0 -1213
  403. data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +0 -77
  404. data/vendor/pygments-main/tests/examplefiles/function.mu +0 -1
  405. data/vendor/pygments-main/tests/examplefiles/functional.rst +0 -1472
  406. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +0 -133
  407. data/vendor/pygments-main/tests/examplefiles/genclass.clj +0 -510
  408. data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +0 -193
  409. data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +0 -33
  410. data/vendor/pygments-main/tests/examplefiles/glsl.frag +0 -7
  411. data/vendor/pygments-main/tests/examplefiles/glsl.vert +0 -13
  412. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +0 -22
  413. data/vendor/pygments-main/tests/examplefiles/hash_syntax.rb +0 -5
  414. data/vendor/pygments-main/tests/examplefiles/hello.at +0 -6
  415. data/vendor/pygments-main/tests/examplefiles/hello.golo +0 -5
  416. data/vendor/pygments-main/tests/examplefiles/hello.lsl +0 -12
  417. data/vendor/pygments-main/tests/examplefiles/hello.smali +0 -40
  418. data/vendor/pygments-main/tests/examplefiles/hello.sp +0 -9
  419. data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +0 -1
  420. data/vendor/pygments-main/tests/examplefiles/http_request_example +0 -15
  421. data/vendor/pygments-main/tests/examplefiles/http_response_example +0 -29
  422. data/vendor/pygments-main/tests/examplefiles/hybris_File.hy +0 -174
  423. data/vendor/pygments-main/tests/examplefiles/idl_sample.pro +0 -73
  424. data/vendor/pygments-main/tests/examplefiles/iex_example +0 -23
  425. data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +0 -71
  426. data/vendor/pygments-main/tests/examplefiles/intro.ik +0 -24
  427. data/vendor/pygments-main/tests/examplefiles/ints.php +0 -10
  428. data/vendor/pygments-main/tests/examplefiles/intsyn.fun +0 -675
  429. data/vendor/pygments-main/tests/examplefiles/intsyn.sig +0 -286
  430. data/vendor/pygments-main/tests/examplefiles/irb_heredoc +0 -8
  431. data/vendor/pygments-main/tests/examplefiles/irc.lsp +0 -214
  432. data/vendor/pygments-main/tests/examplefiles/java.properties +0 -16
  433. data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +0 -28
  434. data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +0 -45
  435. data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +0 -713
  436. data/vendor/pygments-main/tests/examplefiles/json.lasso +0 -301
  437. data/vendor/pygments-main/tests/examplefiles/json.lasso9 +0 -213
  438. data/vendor/pygments-main/tests/examplefiles/language.hy +0 -165
  439. data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +0 -13
  440. data/vendor/pygments-main/tests/examplefiles/limbo.b +0 -456
  441. data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +0 -47
  442. data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +0 -43
  443. data/vendor/pygments-main/tests/examplefiles/logos_example.xm +0 -28
  444. data/vendor/pygments-main/tests/examplefiles/ltmain.sh +0 -2849
  445. data/vendor/pygments-main/tests/examplefiles/main.cmake +0 -44
  446. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +0 -679
  447. data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +0 -3
  448. data/vendor/pygments-main/tests/examplefiles/matlab_sample +0 -30
  449. data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +0 -37
  450. data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +0 -455
  451. data/vendor/pygments-main/tests/examplefiles/minehunt.qml +0 -112
  452. data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +0 -4
  453. data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +0 -340
  454. data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +0 -38
  455. data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +0 -95
  456. data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +0 -96
  457. data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +0 -30
  458. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +0 -87
  459. data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +0 -118
  460. data/vendor/pygments-main/tests/examplefiles/numbers.c +0 -12
  461. data/vendor/pygments-main/tests/examplefiles/objc_example.m +0 -179
  462. data/vendor/pygments-main/tests/examplefiles/openedge_example +0 -34
  463. data/vendor/pygments-main/tests/examplefiles/pawn_example +0 -25
  464. data/vendor/pygments-main/tests/examplefiles/perl_misc +0 -62
  465. data/vendor/pygments-main/tests/examplefiles/perl_perl5db +0 -998
  466. data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +0 -120
  467. data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +0 -856
  468. data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +0 -163
  469. data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +0 -567
  470. data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +0 -1223
  471. data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +0 -47
  472. data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +0 -10
  473. data/vendor/pygments-main/tests/examplefiles/psql_session.txt +0 -122
  474. data/vendor/pygments-main/tests/examplefiles/py3_test.txt +0 -2
  475. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +0 -4
  476. data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +0 -14
  477. data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +0 -2
  478. data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +0 -4
  479. data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +0 -234
  480. data/vendor/pygments-main/tests/examplefiles/qbasic_example +0 -2
  481. data/vendor/pygments-main/tests/examplefiles/qsort.prolog +0 -13
  482. data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +0 -38
  483. data/vendor/pygments-main/tests/examplefiles/r6rs-comments.scm +0 -23
  484. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +0 -280
  485. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +0 -2
  486. data/vendor/pygments-main/tests/examplefiles/regex.js +0 -22
  487. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +0 -427
  488. data/vendor/pygments-main/tests/examplefiles/robotframework_test.txt +0 -39
  489. data/vendor/pygments-main/tests/examplefiles/rql-queries.rql +0 -34
  490. data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +0 -11
  491. data/vendor/pygments-main/tests/examplefiles/rust_example.rs +0 -233
  492. data/vendor/pygments-main/tests/examplefiles/scilab.sci +0 -30
  493. data/vendor/pygments-main/tests/examplefiles/scope.cirru +0 -43
  494. data/vendor/pygments-main/tests/examplefiles/session.dylan-console +0 -9
  495. data/vendor/pygments-main/tests/examplefiles/sibling.prolog +0 -19
  496. data/vendor/pygments-main/tests/examplefiles/simple.md +0 -747
  497. data/vendor/pygments-main/tests/examplefiles/smarty_example.html +0 -209
  498. data/vendor/pygments-main/tests/examplefiles/source.lgt +0 -343
  499. data/vendor/pygments-main/tests/examplefiles/sources.list +0 -62
  500. data/vendor/pygments-main/tests/examplefiles/sparql.rq +0 -23
  501. data/vendor/pygments-main/tests/examplefiles/sphere.pov +0 -18
  502. data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +0 -27
  503. data/vendor/pygments-main/tests/examplefiles/squid.conf +0 -30
  504. data/vendor/pygments-main/tests/examplefiles/string.jl +0 -1031
  505. data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +0 -21
  506. data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +0 -3
  507. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +0 -1329
  508. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +0 -225
  509. data/vendor/pygments-main/tests/examplefiles/test.R +0 -185
  510. data/vendor/pygments-main/tests/examplefiles/test.adb +0 -211
  511. data/vendor/pygments-main/tests/examplefiles/test.agda +0 -102
  512. data/vendor/pygments-main/tests/examplefiles/test.apl +0 -26
  513. data/vendor/pygments-main/tests/examplefiles/test.asy +0 -131
  514. data/vendor/pygments-main/tests/examplefiles/test.awk +0 -121
  515. data/vendor/pygments-main/tests/examplefiles/test.bb +0 -95
  516. data/vendor/pygments-main/tests/examplefiles/test.bmx +0 -145
  517. data/vendor/pygments-main/tests/examplefiles/test.boo +0 -39
  518. data/vendor/pygments-main/tests/examplefiles/test.bro +0 -250
  519. data/vendor/pygments-main/tests/examplefiles/test.cs +0 -374
  520. data/vendor/pygments-main/tests/examplefiles/test.css +0 -54
  521. data/vendor/pygments-main/tests/examplefiles/test.cu +0 -36
  522. data/vendor/pygments-main/tests/examplefiles/test.cyp +0 -123
  523. data/vendor/pygments-main/tests/examplefiles/test.d +0 -135
  524. data/vendor/pygments-main/tests/examplefiles/test.dart +0 -23
  525. data/vendor/pygments-main/tests/examplefiles/test.dtd +0 -89
  526. data/vendor/pygments-main/tests/examplefiles/test.ebnf +0 -31
  527. data/vendor/pygments-main/tests/examplefiles/test.ec +0 -605
  528. data/vendor/pygments-main/tests/examplefiles/test.ecl +0 -58
  529. data/vendor/pygments-main/tests/examplefiles/test.eh +0 -315
  530. data/vendor/pygments-main/tests/examplefiles/test.erl +0 -169
  531. data/vendor/pygments-main/tests/examplefiles/test.evoque +0 -33
  532. data/vendor/pygments-main/tests/examplefiles/test.fan +0 -818
  533. data/vendor/pygments-main/tests/examplefiles/test.flx +0 -57
  534. data/vendor/pygments-main/tests/examplefiles/test.gdc +0 -13
  535. data/vendor/pygments-main/tests/examplefiles/test.groovy +0 -97
  536. data/vendor/pygments-main/tests/examplefiles/test.html +0 -339
  537. data/vendor/pygments-main/tests/examplefiles/test.idr +0 -93
  538. data/vendor/pygments-main/tests/examplefiles/test.ini +0 -10
  539. data/vendor/pygments-main/tests/examplefiles/test.java +0 -653
  540. data/vendor/pygments-main/tests/examplefiles/test.jsp +0 -24
  541. data/vendor/pygments-main/tests/examplefiles/test.maql +0 -45
  542. data/vendor/pygments-main/tests/examplefiles/test.mask +0 -41
  543. data/vendor/pygments-main/tests/examplefiles/test.mod +0 -374
  544. data/vendor/pygments-main/tests/examplefiles/test.moo +0 -51
  545. data/vendor/pygments-main/tests/examplefiles/test.myt +0 -166
  546. data/vendor/pygments-main/tests/examplefiles/test.nim +0 -93
  547. data/vendor/pygments-main/tests/examplefiles/test.opa +0 -10
  548. data/vendor/pygments-main/tests/examplefiles/test.p6 +0 -252
  549. data/vendor/pygments-main/tests/examplefiles/test.pan +0 -54
  550. data/vendor/pygments-main/tests/examplefiles/test.pas +0 -743
  551. data/vendor/pygments-main/tests/examplefiles/test.php +0 -507
  552. data/vendor/pygments-main/tests/examplefiles/test.pig +0 -148
  553. data/vendor/pygments-main/tests/examplefiles/test.plot +0 -333
  554. data/vendor/pygments-main/tests/examplefiles/test.ps1 +0 -108
  555. data/vendor/pygments-main/tests/examplefiles/test.pwn +0 -253
  556. data/vendor/pygments-main/tests/examplefiles/test.pypylog +0 -1839
  557. data/vendor/pygments-main/tests/examplefiles/test.r3 +0 -114
  558. data/vendor/pygments-main/tests/examplefiles/test.rb +0 -177
  559. data/vendor/pygments-main/tests/examplefiles/test.rhtml +0 -43
  560. data/vendor/pygments-main/tests/examplefiles/test.rsl +0 -111
  561. data/vendor/pygments-main/tests/examplefiles/test.scaml +0 -8
  562. data/vendor/pygments-main/tests/examplefiles/test.ssp +0 -12
  563. data/vendor/pygments-main/tests/examplefiles/test.swift +0 -65
  564. data/vendor/pygments-main/tests/examplefiles/test.tcsh +0 -830
  565. data/vendor/pygments-main/tests/examplefiles/test.vb +0 -407
  566. data/vendor/pygments-main/tests/examplefiles/test.vhdl +0 -161
  567. data/vendor/pygments-main/tests/examplefiles/test.xqy +0 -138
  568. data/vendor/pygments-main/tests/examplefiles/test.xsl +0 -23
  569. data/vendor/pygments-main/tests/examplefiles/test.zep +0 -33
  570. data/vendor/pygments-main/tests/examplefiles/test2.pypylog +0 -120
  571. data/vendor/pygments-main/tests/examplefiles/truncated.pytb +0 -15
  572. data/vendor/pygments-main/tests/examplefiles/type.lisp +0 -1218
  573. data/vendor/pygments-main/tests/examplefiles/underscore.coffee +0 -603
  574. data/vendor/pygments-main/tests/examplefiles/unicode.applescript +0 -5
  575. data/vendor/pygments-main/tests/examplefiles/unicode.go +0 -10
  576. data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +0 -11
  577. data/vendor/pygments-main/tests/examplefiles/unix-io.lid +0 -37
  578. data/vendor/pygments-main/tests/examplefiles/vbnet_test.bas +0 -29
  579. data/vendor/pygments-main/tests/examplefiles/vctreestatus_hg +0 -4
  580. data/vendor/pygments-main/tests/examplefiles/vimrc +0 -21
  581. data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +0 -3
  582. data/vendor/pygments-main/tests/examplefiles/while.pov +0 -13
  583. data/vendor/pygments-main/tests/examplefiles/wiki.factor +0 -384
  584. data/vendor/pygments-main/tests/examplefiles/xml_example +0 -1897
  585. data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +0 -798
  586. data/vendor/pygments-main/tests/run.py +0 -44
  587. data/vendor/pygments-main/tests/string_asserts.py +0 -22
  588. data/vendor/pygments-main/tests/support.py +0 -15
  589. data/vendor/pygments-main/tests/support/tags +0 -36
  590. data/vendor/pygments-main/tests/test_basic_api.py +0 -309
  591. data/vendor/pygments-main/tests/test_cfm.py +0 -46
  592. data/vendor/pygments-main/tests/test_clexer.py +0 -236
  593. data/vendor/pygments-main/tests/test_cmdline.py +0 -106
  594. data/vendor/pygments-main/tests/test_examplefiles.py +0 -110
  595. data/vendor/pygments-main/tests/test_html_formatter.py +0 -180
  596. data/vendor/pygments-main/tests/test_latex_formatter.py +0 -57
  597. data/vendor/pygments-main/tests/test_lexers_other.py +0 -68
  598. data/vendor/pygments-main/tests/test_objectiveclexer.py +0 -81
  599. data/vendor/pygments-main/tests/test_perllexer.py +0 -137
  600. data/vendor/pygments-main/tests/test_qbasiclexer.py +0 -43
  601. data/vendor/pygments-main/tests/test_regexlexer.py +0 -54
  602. data/vendor/pygments-main/tests/test_rtf_formatter.py +0 -109
  603. data/vendor/pygments-main/tests/test_string_asserts.py +0 -39
  604. data/vendor/pygments-main/tests/test_token.py +0 -46
  605. data/vendor/pygments-main/tests/test_using_api.py +0 -40
  606. data/vendor/pygments-main/tests/test_util.py +0 -135
@@ -0,0 +1,769 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.ml
4
+ ~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for ML family languages.
7
+
8
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ import re
13
+
14
+ from pygments.lexer import RegexLexer, include, bygroups, default, words
15
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
16
+ Number, Punctuation, Error
17
+
18
+ __all__ = ['SMLLexer', 'OcamlLexer', 'OpaLexer']
19
+
20
+
21
+ class SMLLexer(RegexLexer):
22
+ """
23
+ For the Standard ML language.
24
+
25
+ .. versionadded:: 1.5
26
+ """
27
+
28
+ name = 'Standard ML'
29
+ aliases = ['sml']
30
+ filenames = ['*.sml', '*.sig', '*.fun']
31
+ mimetypes = ['text/x-standardml', 'application/x-standardml']
32
+
33
+ alphanumid_reserved = set((
34
+ # Core
35
+ 'abstype', 'and', 'andalso', 'as', 'case', 'datatype', 'do', 'else',
36
+ 'end', 'exception', 'fn', 'fun', 'handle', 'if', 'in', 'infix',
37
+ 'infixr', 'let', 'local', 'nonfix', 'of', 'op', 'open', 'orelse',
38
+ 'raise', 'rec', 'then', 'type', 'val', 'with', 'withtype', 'while',
39
+ # Modules
40
+ 'eqtype', 'functor', 'include', 'sharing', 'sig', 'signature',
41
+ 'struct', 'structure', 'where',
42
+ ))
43
+
44
+ symbolicid_reserved = set((
45
+ # Core
46
+ ':', '\|', '=', '=>', '->', '#',
47
+ # Modules
48
+ ':>',
49
+ ))
50
+
51
+ nonid_reserved = set(('(', ')', '[', ']', '{', '}', ',', ';', '...', '_'))
52
+
53
+ alphanumid_re = r"[a-zA-Z][\w']*"
54
+ symbolicid_re = r"[!%&$#+\-/:<=>?@\\~`^|*]+"
55
+
56
+ # A character constant is a sequence of the form #s, where s is a string
57
+ # constant denoting a string of size one character. This setup just parses
58
+ # the entire string as either a String.Double or a String.Char (depending
59
+ # on the argument), even if the String.Char is an erronous
60
+ # multiple-character string.
61
+ def stringy(whatkind):
62
+ return [
63
+ (r'[^"\\]', whatkind),
64
+ (r'\\[\\"abtnvfr]', String.Escape),
65
+ # Control-character notation is used for codes < 32,
66
+ # where \^@ == \000
67
+ (r'\\\^[\x40-\x5e]', String.Escape),
68
+ # Docs say 'decimal digits'
69
+ (r'\\[0-9]{3}', String.Escape),
70
+ (r'\\u[0-9a-fA-F]{4}', String.Escape),
71
+ (r'\\\s+\\', String.Interpol),
72
+ (r'"', whatkind, '#pop'),
73
+ ]
74
+
75
+ # Callbacks for distinguishing tokens and reserved words
76
+ def long_id_callback(self, match):
77
+ if match.group(1) in self.alphanumid_reserved:
78
+ token = Error
79
+ else:
80
+ token = Name.Namespace
81
+ yield match.start(1), token, match.group(1)
82
+ yield match.start(2), Punctuation, match.group(2)
83
+
84
+ def end_id_callback(self, match):
85
+ if match.group(1) in self.alphanumid_reserved:
86
+ token = Error
87
+ elif match.group(1) in self.symbolicid_reserved:
88
+ token = Error
89
+ else:
90
+ token = Name
91
+ yield match.start(1), token, match.group(1)
92
+
93
+ def id_callback(self, match):
94
+ str = match.group(1)
95
+ if str in self.alphanumid_reserved:
96
+ token = Keyword.Reserved
97
+ elif str in self.symbolicid_reserved:
98
+ token = Punctuation
99
+ else:
100
+ token = Name
101
+ yield match.start(1), token, str
102
+
103
+ tokens = {
104
+ # Whitespace and comments are (almost) everywhere
105
+ 'whitespace': [
106
+ (r'\s+', Text),
107
+ (r'\(\*', Comment.Multiline, 'comment'),
108
+ ],
109
+
110
+ 'delimiters': [
111
+ # This lexer treats these delimiters specially:
112
+ # Delimiters define scopes, and the scope is how the meaning of
113
+ # the `|' is resolved - is it a case/handle expression, or function
114
+ # definition by cases? (This is not how the Definition works, but
115
+ # it's how MLton behaves, see http://mlton.org/SMLNJDeviations)
116
+ (r'\(|\[|\{', Punctuation, 'main'),
117
+ (r'\)|\]|\}', Punctuation, '#pop'),
118
+ (r'\b(let|if|local)\b(?!\')', Keyword.Reserved, ('main', 'main')),
119
+ (r'\b(struct|sig|while)\b(?!\')', Keyword.Reserved, 'main'),
120
+ (r'\b(do|else|end|in|then)\b(?!\')', Keyword.Reserved, '#pop'),
121
+ ],
122
+
123
+ 'core': [
124
+ # Punctuation that doesn't overlap symbolic identifiers
125
+ (r'(%s)' % '|'.join(re.escape(z) for z in nonid_reserved),
126
+ Punctuation),
127
+
128
+ # Special constants: strings, floats, numbers in decimal and hex
129
+ (r'#"', String.Char, 'char'),
130
+ (r'"', String.Double, 'string'),
131
+ (r'~?0x[0-9a-fA-F]+', Number.Hex),
132
+ (r'0wx[0-9a-fA-F]+', Number.Hex),
133
+ (r'0w\d+', Number.Integer),
134
+ (r'~?\d+\.\d+[eE]~?\d+', Number.Float),
135
+ (r'~?\d+\.\d+', Number.Float),
136
+ (r'~?\d+[eE]~?\d+', Number.Float),
137
+ (r'~?\d+', Number.Integer),
138
+
139
+ # Labels
140
+ (r'#\s*[1-9][0-9]*', Name.Label),
141
+ (r'#\s*(%s)' % alphanumid_re, Name.Label),
142
+ (r'#\s+(%s)' % symbolicid_re, Name.Label),
143
+ # Some reserved words trigger a special, local lexer state change
144
+ (r'\b(datatype|abstype)\b(?!\')', Keyword.Reserved, 'dname'),
145
+ (r'(?=\b(exception)\b(?!\'))', Text, ('ename')),
146
+ (r'\b(functor|include|open|signature|structure)\b(?!\')',
147
+ Keyword.Reserved, 'sname'),
148
+ (r'\b(type|eqtype)\b(?!\')', Keyword.Reserved, 'tname'),
149
+
150
+ # Regular identifiers, long and otherwise
151
+ (r'\'[\w\']*', Name.Decorator),
152
+ (r'(%s)(\.)' % alphanumid_re, long_id_callback, "dotted"),
153
+ (r'(%s)' % alphanumid_re, id_callback),
154
+ (r'(%s)' % symbolicid_re, id_callback),
155
+ ],
156
+ 'dotted': [
157
+ (r'(%s)(\.)' % alphanumid_re, long_id_callback),
158
+ (r'(%s)' % alphanumid_re, end_id_callback, "#pop"),
159
+ (r'(%s)' % symbolicid_re, end_id_callback, "#pop"),
160
+ (r'\s+', Error),
161
+ (r'\S+', Error),
162
+ ],
163
+
164
+
165
+ # Main parser (prevents errors in files that have scoping errors)
166
+ 'root': [
167
+ default('main')
168
+ ],
169
+
170
+ # In this scope, I expect '|' to not be followed by a function name,
171
+ # and I expect 'and' to be followed by a binding site
172
+ 'main': [
173
+ include('whitespace'),
174
+
175
+ # Special behavior of val/and/fun
176
+ (r'\b(val|and)\b(?!\')', Keyword.Reserved, 'vname'),
177
+ (r'\b(fun)\b(?!\')', Keyword.Reserved,
178
+ ('#pop', 'main-fun', 'fname')),
179
+
180
+ include('delimiters'),
181
+ include('core'),
182
+ (r'\S+', Error),
183
+ ],
184
+
185
+ # In this scope, I expect '|' and 'and' to be followed by a function
186
+ 'main-fun': [
187
+ include('whitespace'),
188
+
189
+ (r'\s', Text),
190
+ (r'\(\*', Comment.Multiline, 'comment'),
191
+
192
+ # Special behavior of val/and/fun
193
+ (r'\b(fun|and)\b(?!\')', Keyword.Reserved, 'fname'),
194
+ (r'\b(val)\b(?!\')', Keyword.Reserved,
195
+ ('#pop', 'main', 'vname')),
196
+
197
+ # Special behavior of '|' and '|'-manipulating keywords
198
+ (r'\|', Punctuation, 'fname'),
199
+ (r'\b(case|handle)\b(?!\')', Keyword.Reserved,
200
+ ('#pop', 'main')),
201
+
202
+ include('delimiters'),
203
+ include('core'),
204
+ (r'\S+', Error),
205
+ ],
206
+
207
+ # Character and string parsers
208
+ 'char': stringy(String.Char),
209
+ 'string': stringy(String.Double),
210
+
211
+ 'breakout': [
212
+ (r'(?=\b(%s)\b(?!\'))' % '|'.join(alphanumid_reserved), Text, '#pop'),
213
+ ],
214
+
215
+ # Dealing with what comes after module system keywords
216
+ 'sname': [
217
+ include('whitespace'),
218
+ include('breakout'),
219
+
220
+ (r'(%s)' % alphanumid_re, Name.Namespace),
221
+ default('#pop'),
222
+ ],
223
+
224
+ # Dealing with what comes after the 'fun' (or 'and' or '|') keyword
225
+ 'fname': [
226
+ include('whitespace'),
227
+ (r'\'[\w\']*', Name.Decorator),
228
+ (r'\(', Punctuation, 'tyvarseq'),
229
+
230
+ (r'(%s)' % alphanumid_re, Name.Function, '#pop'),
231
+ (r'(%s)' % symbolicid_re, Name.Function, '#pop'),
232
+
233
+ # Ignore interesting function declarations like "fun (x + y) = ..."
234
+ default('#pop'),
235
+ ],
236
+
237
+ # Dealing with what comes after the 'val' (or 'and') keyword
238
+ 'vname': [
239
+ include('whitespace'),
240
+ (r'\'[\w\']*', Name.Decorator),
241
+ (r'\(', Punctuation, 'tyvarseq'),
242
+
243
+ (r'(%s)(\s*)(=(?!%s))' % (alphanumid_re, symbolicid_re),
244
+ bygroups(Name.Variable, Text, Punctuation), '#pop'),
245
+ (r'(%s)(\s*)(=(?!%s))' % (symbolicid_re, symbolicid_re),
246
+ bygroups(Name.Variable, Text, Punctuation), '#pop'),
247
+ (r'(%s)' % alphanumid_re, Name.Variable, '#pop'),
248
+ (r'(%s)' % symbolicid_re, Name.Variable, '#pop'),
249
+
250
+ # Ignore interesting patterns like 'val (x, y)'
251
+ default('#pop'),
252
+ ],
253
+
254
+ # Dealing with what comes after the 'type' (or 'and') keyword
255
+ 'tname': [
256
+ include('whitespace'),
257
+ include('breakout'),
258
+
259
+ (r'\'[\w\']*', Name.Decorator),
260
+ (r'\(', Punctuation, 'tyvarseq'),
261
+ (r'=(?!%s)' % symbolicid_re, Punctuation, ('#pop', 'typbind')),
262
+
263
+ (r'(%s)' % alphanumid_re, Keyword.Type),
264
+ (r'(%s)' % symbolicid_re, Keyword.Type),
265
+ (r'\S+', Error, '#pop'),
266
+ ],
267
+
268
+ # A type binding includes most identifiers
269
+ 'typbind': [
270
+ include('whitespace'),
271
+
272
+ (r'\b(and)\b(?!\')', Keyword.Reserved, ('#pop', 'tname')),
273
+
274
+ include('breakout'),
275
+ include('core'),
276
+ (r'\S+', Error, '#pop'),
277
+ ],
278
+
279
+ # Dealing with what comes after the 'datatype' (or 'and') keyword
280
+ 'dname': [
281
+ include('whitespace'),
282
+ include('breakout'),
283
+
284
+ (r'\'[\w\']*', Name.Decorator),
285
+ (r'\(', Punctuation, 'tyvarseq'),
286
+ (r'(=)(\s*)(datatype)',
287
+ bygroups(Punctuation, Text, Keyword.Reserved), '#pop'),
288
+ (r'=(?!%s)' % symbolicid_re, Punctuation,
289
+ ('#pop', 'datbind', 'datcon')),
290
+
291
+ (r'(%s)' % alphanumid_re, Keyword.Type),
292
+ (r'(%s)' % symbolicid_re, Keyword.Type),
293
+ (r'\S+', Error, '#pop'),
294
+ ],
295
+
296
+ # common case - A | B | C of int
297
+ 'datbind': [
298
+ include('whitespace'),
299
+
300
+ (r'\b(and)\b(?!\')', Keyword.Reserved, ('#pop', 'dname')),
301
+ (r'\b(withtype)\b(?!\')', Keyword.Reserved, ('#pop', 'tname')),
302
+ (r'\b(of)\b(?!\')', Keyword.Reserved),
303
+
304
+ (r'(\|)(\s*)(%s)' % alphanumid_re,
305
+ bygroups(Punctuation, Text, Name.Class)),
306
+ (r'(\|)(\s+)(%s)' % symbolicid_re,
307
+ bygroups(Punctuation, Text, Name.Class)),
308
+
309
+ include('breakout'),
310
+ include('core'),
311
+ (r'\S+', Error),
312
+ ],
313
+
314
+ # Dealing with what comes after an exception
315
+ 'ename': [
316
+ include('whitespace'),
317
+
318
+ (r'(exception|and)\b(\s+)(%s)' % alphanumid_re,
319
+ bygroups(Keyword.Reserved, Text, Name.Class)),
320
+ (r'(exception|and)\b(\s*)(%s)' % symbolicid_re,
321
+ bygroups(Keyword.Reserved, Text, Name.Class)),
322
+ (r'\b(of)\b(?!\')', Keyword.Reserved),
323
+
324
+ include('breakout'),
325
+ include('core'),
326
+ (r'\S+', Error),
327
+ ],
328
+
329
+ 'datcon': [
330
+ include('whitespace'),
331
+ (r'(%s)' % alphanumid_re, Name.Class, '#pop'),
332
+ (r'(%s)' % symbolicid_re, Name.Class, '#pop'),
333
+ (r'\S+', Error, '#pop'),
334
+ ],
335
+
336
+ # Series of type variables
337
+ 'tyvarseq': [
338
+ (r'\s', Text),
339
+ (r'\(\*', Comment.Multiline, 'comment'),
340
+
341
+ (r'\'[\w\']*', Name.Decorator),
342
+ (alphanumid_re, Name),
343
+ (r',', Punctuation),
344
+ (r'\)', Punctuation, '#pop'),
345
+ (symbolicid_re, Name),
346
+ ],
347
+
348
+ 'comment': [
349
+ (r'[^(*)]', Comment.Multiline),
350
+ (r'\(\*', Comment.Multiline, '#push'),
351
+ (r'\*\)', Comment.Multiline, '#pop'),
352
+ (r'[(*)]', Comment.Multiline),
353
+ ],
354
+ }
355
+
356
+
357
+ class OcamlLexer(RegexLexer):
358
+ """
359
+ For the OCaml language.
360
+
361
+ .. versionadded:: 0.7
362
+ """
363
+
364
+ name = 'OCaml'
365
+ aliases = ['ocaml']
366
+ filenames = ['*.ml', '*.mli', '*.mll', '*.mly']
367
+ mimetypes = ['text/x-ocaml']
368
+
369
+ keywords = (
370
+ 'as', 'assert', 'begin', 'class', 'constraint', 'do', 'done',
371
+ 'downto', 'else', 'end', 'exception', 'external', 'false',
372
+ 'for', 'fun', 'function', 'functor', 'if', 'in', 'include',
373
+ 'inherit', 'initializer', 'lazy', 'let', 'match', 'method',
374
+ 'module', 'mutable', 'new', 'object', 'of', 'open', 'private',
375
+ 'raise', 'rec', 'sig', 'struct', 'then', 'to', 'true', 'try',
376
+ 'type', 'value', 'val', 'virtual', 'when', 'while', 'with',
377
+ )
378
+ keyopts = (
379
+ '!=', '#', '&', '&&', r'\(', r'\)', r'\*', r'\+', ',', '-',
380
+ r'-\.', '->', r'\.', r'\.\.', ':', '::', ':=', ':>', ';', ';;', '<',
381
+ '<-', '=', '>', '>]', r'>\}', r'\?', r'\?\?', r'\[', r'\[<', r'\[>',
382
+ r'\[\|', ']', '_', '`', r'\{', r'\{<', r'\|', r'\|]', r'\}', '~'
383
+ )
384
+
385
+ operators = r'[!$%&*+\./:<=>?@^|~-]'
386
+ word_operators = ('and', 'asr', 'land', 'lor', 'lsl', 'lxor', 'mod', 'or')
387
+ prefix_syms = r'[!?~]'
388
+ infix_syms = r'[=<>@^|&+\*/$%-]'
389
+ primitives = ('unit', 'int', 'float', 'bool', 'string', 'char', 'list', 'array')
390
+
391
+ tokens = {
392
+ 'escape-sequence': [
393
+ (r'\\[\\"\'ntbr]', String.Escape),
394
+ (r'\\[0-9]{3}', String.Escape),
395
+ (r'\\x[0-9a-fA-F]{2}', String.Escape),
396
+ ],
397
+ 'root': [
398
+ (r'\s+', Text),
399
+ (r'false|true|\(\)|\[\]', Name.Builtin.Pseudo),
400
+ (r'\b([A-Z][\w\']*)(?=\s*\.)', Name.Namespace, 'dotted'),
401
+ (r'\b([A-Z][\w\']*)', Name.Class),
402
+ (r'\(\*(?![)])', Comment, 'comment'),
403
+ (r'\b(%s)\b' % '|'.join(keywords), Keyword),
404
+ (r'(%s)' % '|'.join(keyopts[::-1]), Operator),
405
+ (r'(%s|%s)?%s' % (infix_syms, prefix_syms, operators), Operator),
406
+ (r'\b(%s)\b' % '|'.join(word_operators), Operator.Word),
407
+ (r'\b(%s)\b' % '|'.join(primitives), Keyword.Type),
408
+
409
+ (r"[^\W\d][\w']*", Name),
410
+
411
+ (r'-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)', Number.Float),
412
+ (r'0[xX][\da-fA-F][\da-fA-F_]*', Number.Hex),
413
+ (r'0[oO][0-7][0-7_]*', Number.Oct),
414
+ (r'0[bB][01][01_]*', Number.Bin),
415
+ (r'\d[\d_]*', Number.Integer),
416
+
417
+ (r"'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'",
418
+ String.Char),
419
+ (r"'.'", String.Char),
420
+ (r"'", Keyword), # a stray quote is another syntax element
421
+
422
+ (r'"', String.Double, 'string'),
423
+
424
+ (r'[~?][a-z][\w\']*:', Name.Variable),
425
+ ],
426
+ 'comment': [
427
+ (r'[^(*)]+', Comment),
428
+ (r'\(\*', Comment, '#push'),
429
+ (r'\*\)', Comment, '#pop'),
430
+ (r'[(*)]', Comment),
431
+ ],
432
+ 'string': [
433
+ (r'[^\\"]+', String.Double),
434
+ include('escape-sequence'),
435
+ (r'\\\n', String.Double),
436
+ (r'"', String.Double, '#pop'),
437
+ ],
438
+ 'dotted': [
439
+ (r'\s+', Text),
440
+ (r'\.', Punctuation),
441
+ (r'[A-Z][\w\']*(?=\s*\.)', Name.Namespace),
442
+ (r'[A-Z][\w\']*', Name.Class, '#pop'),
443
+ (r'[a-z_][\w\']*', Name, '#pop'),
444
+ default('#pop'),
445
+ ],
446
+ }
447
+
448
+
449
+ class OpaLexer(RegexLexer):
450
+ """
451
+ Lexer for the Opa language (http://opalang.org).
452
+
453
+ .. versionadded:: 1.5
454
+ """
455
+
456
+ name = 'Opa'
457
+ aliases = ['opa']
458
+ filenames = ['*.opa']
459
+ mimetypes = ['text/x-opa']
460
+
461
+ # most of these aren't strictly keywords
462
+ # but if you color only real keywords, you might just
463
+ # as well not color anything
464
+ keywords = (
465
+ 'and', 'as', 'begin', 'case', 'client', 'css', 'database', 'db', 'do',
466
+ 'else', 'end', 'external', 'forall', 'function', 'if', 'import',
467
+ 'match', 'module', 'or', 'package', 'parser', 'rec', 'server', 'then',
468
+ 'type', 'val', 'with', 'xml_parser',
469
+ )
470
+
471
+ # matches both stuff and `stuff`
472
+ ident_re = r'(([a-zA-Z_]\w*)|(`[^`]*`))'
473
+
474
+ op_re = r'[.=\-<>,@~%/+?*&^!]'
475
+ punc_re = r'[()\[\],;|]' # '{' and '}' are treated elsewhere
476
+ # because they are also used for inserts
477
+
478
+ tokens = {
479
+ # copied from the caml lexer, should be adapted
480
+ 'escape-sequence': [
481
+ (r'\\[\\"\'ntr}]', String.Escape),
482
+ (r'\\[0-9]{3}', String.Escape),
483
+ (r'\\x[0-9a-fA-F]{2}', String.Escape),
484
+ ],
485
+
486
+ # factorizing these rules, because they are inserted many times
487
+ 'comments': [
488
+ (r'/\*', Comment, 'nested-comment'),
489
+ (r'//.*?$', Comment),
490
+ ],
491
+ 'comments-and-spaces': [
492
+ include('comments'),
493
+ (r'\s+', Text),
494
+ ],
495
+
496
+ 'root': [
497
+ include('comments-and-spaces'),
498
+ # keywords
499
+ (words(keywords, prefix=r'\b', suffix=r'\b'), Keyword),
500
+ # directives
501
+ # we could parse the actual set of directives instead of anything
502
+ # starting with @, but this is troublesome
503
+ # because it needs to be adjusted all the time
504
+ # and assuming we parse only sources that compile, it is useless
505
+ (r'@' + ident_re + r'\b', Name.Builtin.Pseudo),
506
+
507
+ # number literals
508
+ (r'-?.[\d]+([eE][+\-]?\d+)', Number.Float),
509
+ (r'-?\d+.\d*([eE][+\-]?\d+)', Number.Float),
510
+ (r'-?\d+[eE][+\-]?\d+', Number.Float),
511
+ (r'0[xX][\da-fA-F]+', Number.Hex),
512
+ (r'0[oO][0-7]+', Number.Oct),
513
+ (r'0[bB][01]+', Number.Bin),
514
+ (r'\d+', Number.Integer),
515
+ # color literals
516
+ (r'#[\da-fA-F]{3,6}', Number.Integer),
517
+
518
+ # string literals
519
+ (r'"', String.Double, 'string'),
520
+ # char literal, should be checked because this is the regexp from
521
+ # the caml lexer
522
+ (r"'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2})|.)'",
523
+ String.Char),
524
+
525
+ # this is meant to deal with embedded exprs in strings
526
+ # every time we find a '}' we pop a state so that if we were
527
+ # inside a string, we are back in the string state
528
+ # as a consequence, we must also push a state every time we find a
529
+ # '{' or else we will have errors when parsing {} for instance
530
+ (r'\{', Operator, '#push'),
531
+ (r'\}', Operator, '#pop'),
532
+
533
+ # html literals
534
+ # this is a much more strict that the actual parser,
535
+ # since a<b would not be parsed as html
536
+ # but then again, the parser is way too lax, and we can't hope
537
+ # to have something as tolerant
538
+ (r'<(?=[a-zA-Z>])', String.Single, 'html-open-tag'),
539
+
540
+ # db path
541
+ # matching the '[_]' in '/a[_]' because it is a part
542
+ # of the syntax of the db path definition
543
+ # unfortunately, i don't know how to match the ']' in
544
+ # /a[1], so this is somewhat inconsistent
545
+ (r'[@?!]?(/\w+)+(\[_\])?', Name.Variable),
546
+ # putting the same color on <- as on db path, since
547
+ # it can be used only to mean Db.write
548
+ (r'<-(?!'+op_re+r')', Name.Variable),
549
+
550
+ # 'modules'
551
+ # although modules are not distinguished by their names as in caml
552
+ # the standard library seems to follow the convention that modules
553
+ # only area capitalized
554
+ (r'\b([A-Z]\w*)(?=\.)', Name.Namespace),
555
+
556
+ # operators
557
+ # = has a special role because this is the only
558
+ # way to syntactic distinguish binding constructions
559
+ # unfortunately, this colors the equal in {x=2} too
560
+ (r'=(?!'+op_re+r')', Keyword),
561
+ (r'(%s)+' % op_re, Operator),
562
+ (r'(%s)+' % punc_re, Operator),
563
+
564
+ # coercions
565
+ (r':', Operator, 'type'),
566
+ # type variables
567
+ # we need this rule because we don't parse specially type
568
+ # definitions so in "type t('a) = ...", "'a" is parsed by 'root'
569
+ ("'"+ident_re, Keyword.Type),
570
+
571
+ # id literal, #something, or #{expr}
572
+ (r'#'+ident_re, String.Single),
573
+ (r'#(?=\{)', String.Single),
574
+
575
+ # identifiers
576
+ # this avoids to color '2' in 'a2' as an integer
577
+ (ident_re, Text),
578
+
579
+ # default, not sure if that is needed or not
580
+ # (r'.', Text),
581
+ ],
582
+
583
+ # it is quite painful to have to parse types to know where they end
584
+ # this is the general rule for a type
585
+ # a type is either:
586
+ # * -> ty
587
+ # * type-with-slash
588
+ # * type-with-slash -> ty
589
+ # * type-with-slash (, type-with-slash)+ -> ty
590
+ #
591
+ # the code is pretty funky in here, but this code would roughly
592
+ # translate in caml to:
593
+ # let rec type stream =
594
+ # match stream with
595
+ # | [< "->"; stream >] -> type stream
596
+ # | [< ""; stream >] ->
597
+ # type_with_slash stream
598
+ # type_lhs_1 stream;
599
+ # and type_1 stream = ...
600
+ 'type': [
601
+ include('comments-and-spaces'),
602
+ (r'->', Keyword.Type),
603
+ default(('#pop', 'type-lhs-1', 'type-with-slash')),
604
+ ],
605
+
606
+ # parses all the atomic or closed constructions in the syntax of type
607
+ # expressions: record types, tuple types, type constructors, basic type
608
+ # and type variables
609
+ 'type-1': [
610
+ include('comments-and-spaces'),
611
+ (r'\(', Keyword.Type, ('#pop', 'type-tuple')),
612
+ (r'~?\{', Keyword.Type, ('#pop', 'type-record')),
613
+ (ident_re+r'\(', Keyword.Type, ('#pop', 'type-tuple')),
614
+ (ident_re, Keyword.Type, '#pop'),
615
+ ("'"+ident_re, Keyword.Type),
616
+ # this case is not in the syntax but sometimes
617
+ # we think we are parsing types when in fact we are parsing
618
+ # some css, so we just pop the states until we get back into
619
+ # the root state
620
+ default('#pop'),
621
+ ],
622
+
623
+ # type-with-slash is either:
624
+ # * type-1
625
+ # * type-1 (/ type-1)+
626
+ 'type-with-slash': [
627
+ include('comments-and-spaces'),
628
+ default(('#pop', 'slash-type-1', 'type-1')),
629
+ ],
630
+ 'slash-type-1': [
631
+ include('comments-and-spaces'),
632
+ ('/', Keyword.Type, ('#pop', 'type-1')),
633
+ # same remark as above
634
+ default('#pop'),
635
+ ],
636
+
637
+ # we go in this state after having parsed a type-with-slash
638
+ # while trying to parse a type
639
+ # and at this point we must determine if we are parsing an arrow
640
+ # type (in which case we must continue parsing) or not (in which
641
+ # case we stop)
642
+ 'type-lhs-1': [
643
+ include('comments-and-spaces'),
644
+ (r'->', Keyword.Type, ('#pop', 'type')),
645
+ (r'(?=,)', Keyword.Type, ('#pop', 'type-arrow')),
646
+ default('#pop'),
647
+ ],
648
+ 'type-arrow': [
649
+ include('comments-and-spaces'),
650
+ # the look ahead here allows to parse f(x : int, y : float -> truc)
651
+ # correctly
652
+ (r',(?=[^:]*?->)', Keyword.Type, 'type-with-slash'),
653
+ (r'->', Keyword.Type, ('#pop', 'type')),
654
+ # same remark as above
655
+ default('#pop'),
656
+ ],
657
+
658
+ # no need to do precise parsing for tuples and records
659
+ # because they are closed constructions, so we can simply
660
+ # find the closing delimiter
661
+ # note that this function would be not work if the source
662
+ # contained identifiers like `{)` (although it could be patched
663
+ # to support it)
664
+ 'type-tuple': [
665
+ include('comments-and-spaces'),
666
+ (r'[^()/*]+', Keyword.Type),
667
+ (r'[/*]', Keyword.Type),
668
+ (r'\(', Keyword.Type, '#push'),
669
+ (r'\)', Keyword.Type, '#pop'),
670
+ ],
671
+ 'type-record': [
672
+ include('comments-and-spaces'),
673
+ (r'[^{}/*]+', Keyword.Type),
674
+ (r'[/*]', Keyword.Type),
675
+ (r'\{', Keyword.Type, '#push'),
676
+ (r'\}', Keyword.Type, '#pop'),
677
+ ],
678
+
679
+ # 'type-tuple': [
680
+ # include('comments-and-spaces'),
681
+ # (r'\)', Keyword.Type, '#pop'),
682
+ # default(('#pop', 'type-tuple-1', 'type-1')),
683
+ # ],
684
+ # 'type-tuple-1': [
685
+ # include('comments-and-spaces'),
686
+ # (r',?\s*\)', Keyword.Type, '#pop'), # ,) is a valid end of tuple, in (1,)
687
+ # (r',', Keyword.Type, 'type-1'),
688
+ # ],
689
+ # 'type-record':[
690
+ # include('comments-and-spaces'),
691
+ # (r'\}', Keyword.Type, '#pop'),
692
+ # (r'~?(?:\w+|`[^`]*`)', Keyword.Type, 'type-record-field-expr'),
693
+ # ],
694
+ # 'type-record-field-expr': [
695
+ #
696
+ # ],
697
+
698
+ 'nested-comment': [
699
+ (r'[^/*]+', Comment),
700
+ (r'/\*', Comment, '#push'),
701
+ (r'\*/', Comment, '#pop'),
702
+ (r'[/*]', Comment),
703
+ ],
704
+
705
+ # the copy pasting between string and single-string
706
+ # is kinda sad. Is there a way to avoid that??
707
+ 'string': [
708
+ (r'[^\\"{]+', String.Double),
709
+ (r'"', String.Double, '#pop'),
710
+ (r'\{', Operator, 'root'),
711
+ include('escape-sequence'),
712
+ ],
713
+ 'single-string': [
714
+ (r'[^\\\'{]+', String.Double),
715
+ (r'\'', String.Double, '#pop'),
716
+ (r'\{', Operator, 'root'),
717
+ include('escape-sequence'),
718
+ ],
719
+
720
+ # all the html stuff
721
+ # can't really reuse some existing html parser
722
+ # because we must be able to parse embedded expressions
723
+
724
+ # we are in this state after someone parsed the '<' that
725
+ # started the html literal
726
+ 'html-open-tag': [
727
+ (r'[\w\-:]+', String.Single, ('#pop', 'html-attr')),
728
+ (r'>', String.Single, ('#pop', 'html-content')),
729
+ ],
730
+
731
+ # we are in this state after someone parsed the '</' that
732
+ # started the end of the closing tag
733
+ 'html-end-tag': [
734
+ # this is a star, because </> is allowed
735
+ (r'[\w\-:]*>', String.Single, '#pop'),
736
+ ],
737
+
738
+ # we are in this state after having parsed '<ident(:ident)?'
739
+ # we thus parse a possibly empty list of attributes
740
+ 'html-attr': [
741
+ (r'\s+', Text),
742
+ (r'[\w\-:]+=', String.Single, 'html-attr-value'),
743
+ (r'/>', String.Single, '#pop'),
744
+ (r'>', String.Single, ('#pop', 'html-content')),
745
+ ],
746
+
747
+ 'html-attr-value': [
748
+ (r"'", String.Single, ('#pop', 'single-string')),
749
+ (r'"', String.Single, ('#pop', 'string')),
750
+ (r'#'+ident_re, String.Single, '#pop'),
751
+ (r'#(?=\{)', String.Single, ('#pop', 'root')),
752
+ (r'[^"\'{`=<>]+', String.Single, '#pop'),
753
+ (r'\{', Operator, ('#pop', 'root')), # this is a tail call!
754
+ ],
755
+
756
+ # we should probably deal with '\' escapes here
757
+ 'html-content': [
758
+ (r'<!--', Comment, 'html-comment'),
759
+ (r'</', String.Single, ('#pop', 'html-end-tag')),
760
+ (r'<', String.Single, 'html-open-tag'),
761
+ (r'\{', Operator, 'root'),
762
+ (r'[^<{]+', String.Single),
763
+ ],
764
+
765
+ 'html-comment': [
766
+ (r'-->', Comment, '#pop'),
767
+ (r'[^\-]+|-', Comment),
768
+ ],
769
+ }