pygments.rb 1.1.2 → 2.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 (383) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +13 -0
  3. data/.github/workflows/ci.yml +28 -0
  4. data/.github/workflows/release.yml +24 -0
  5. data/.gitignore +5 -5
  6. data/CHANGELOG.adoc +128 -0
  7. data/Gemfile +3 -1
  8. data/LICENSE +1 -1
  9. data/README.adoc +160 -0
  10. data/Rakefile +13 -19
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments.rb +10 -11
  15. data/lib/pygments/lexer.rb +5 -5
  16. data/lib/pygments/mentos.py +23 -110
  17. data/lib/pygments/popen.rb +148 -229
  18. data/lib/pygments/version.rb +2 -2
  19. data/pygments.rb.gemspec +12 -11
  20. data/test/test_pygments.rb +46 -104
  21. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +23 -3
  22. data/vendor/pygments-main/Pygments-2.7.3.dist-info/INSTALLER +1 -0
  23. data/vendor/pygments-main/{LICENSE → Pygments-2.7.3.dist-info/LICENSE} +1 -1
  24. data/vendor/pygments-main/Pygments-2.7.3.dist-info/METADATA +49 -0
  25. data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +482 -0
  26. data/vendor/pygments-main/Pygments-2.7.3.dist-info/REQUESTED +0 -0
  27. data/vendor/pygments-main/Pygments-2.7.3.dist-info/WHEEL +5 -0
  28. data/vendor/pygments-main/Pygments-2.7.3.dist-info/entry_points.txt +3 -0
  29. data/vendor/pygments-main/Pygments-2.7.3.dist-info/top_level.txt +1 -0
  30. data/vendor/pygments-main/bin/pygmentize +8 -0
  31. data/vendor/pygments-main/pygments/__init__.py +6 -11
  32. data/vendor/pygments-main/pygments/__main__.py +18 -0
  33. data/vendor/pygments-main/pygments/cmdline.py +94 -41
  34. data/vendor/pygments-main/pygments/console.py +6 -9
  35. data/vendor/pygments-main/pygments/filter.py +4 -6
  36. data/vendor/pygments-main/pygments/filters/__init__.py +609 -21
  37. data/vendor/pygments-main/pygments/formatter.py +4 -4
  38. data/vendor/pygments-main/pygments/formatters/__init__.py +42 -6
  39. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -3
  40. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  41. data/vendor/pygments-main/pygments/formatters/html.py +223 -135
  42. data/vendor/pygments-main/pygments/formatters/img.py +102 -38
  43. data/vendor/pygments-main/pygments/formatters/irc.py +39 -39
  44. data/vendor/pygments-main/pygments/formatters/latex.py +56 -26
  45. data/vendor/pygments-main/pygments/formatters/other.py +12 -8
  46. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -29
  47. data/vendor/pygments-main/pygments/formatters/svg.py +38 -4
  48. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -31
  49. data/vendor/pygments-main/pygments/formatters/terminal256.py +22 -12
  50. data/vendor/pygments-main/pygments/lexer.py +41 -39
  51. data/vendor/pygments-main/pygments/lexers/__init__.py +62 -15
  52. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -5
  53. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -15
  54. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +11 -12
  55. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1338
  56. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +8 -1
  57. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
  58. data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -33
  59. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -2
  60. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1282 -0
  61. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -20
  63. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -16
  64. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -2
  65. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -3
  66. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -125
  67. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +6 -4
  68. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  69. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +113 -0
  70. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +280 -0
  71. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  72. data/vendor/pygments-main/pygments/lexers/actionscript.py +8 -3
  73. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  74. data/vendor/pygments-main/pygments/lexers/algebra.py +20 -1
  75. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/ampl.py +3 -3
  77. data/vendor/pygments-main/pygments/lexers/apl.py +15 -15
  78. data/vendor/pygments-main/pygments/lexers/archetype.py +3 -3
  79. data/vendor/pygments-main/pygments/lexers/arrow.py +117 -0
  80. data/vendor/pygments-main/pygments/lexers/asm.py +445 -70
  81. data/vendor/pygments-main/pygments/lexers/automation.py +3 -3
  82. data/vendor/pygments-main/pygments/lexers/bare.py +104 -0
  83. data/vendor/pygments-main/pygments/lexers/basic.py +166 -4
  84. data/vendor/pygments-main/pygments/lexers/bibtex.py +13 -9
  85. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +69 -36
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +68 -43
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +20 -21
  90. data/vendor/pygments-main/pygments/lexers/chapel.py +25 -14
  91. data/vendor/pygments-main/pygments/lexers/clean.py +135 -244
  92. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
  93. data/vendor/pygments-main/pygments/lexers/configs.py +188 -37
  94. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/crystal.py +31 -23
  96. data/vendor/pygments-main/pygments/lexers/csound.py +288 -187
  97. data/vendor/pygments-main/pygments/lexers/css.py +18 -16
  98. data/vendor/pygments-main/pygments/lexers/d.py +10 -5
  99. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
  100. data/vendor/pygments-main/pygments/lexers/data.py +240 -97
  101. data/vendor/pygments-main/pygments/lexers/devicetree.py +109 -0
  102. data/vendor/pygments-main/pygments/lexers/diff.py +4 -4
  103. data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -24
  104. data/vendor/pygments-main/pygments/lexers/dsls.py +147 -65
  105. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -18
  106. data/vendor/pygments-main/pygments/lexers/ecl.py +16 -2
  107. data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
  108. data/vendor/pygments-main/pygments/lexers/elm.py +5 -5
  109. data/vendor/pygments-main/pygments/lexers/email.py +151 -0
  110. data/vendor/pygments-main/pygments/lexers/erlang.py +29 -32
  111. data/vendor/pygments-main/pygments/lexers/esoteric.py +54 -25
  112. data/vendor/pygments-main/pygments/lexers/ezhil.py +24 -15
  113. data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
  114. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
  115. data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
  116. data/vendor/pygments-main/pygments/lexers/floscript.py +83 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +41 -40
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +5 -4
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
  120. data/vendor/pygments-main/pygments/lexers/freefem.py +898 -0
  121. data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
  122. data/vendor/pygments-main/pygments/lexers/gdscript.py +346 -0
  123. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  124. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +63 -6
  125. data/vendor/pygments-main/pygments/lexers/graph.py +14 -9
  126. data/vendor/pygments-main/pygments/lexers/graphics.py +272 -25
  127. data/vendor/pygments-main/pygments/lexers/haskell.py +52 -22
  128. data/vendor/pygments-main/pygments/lexers/haxe.py +6 -6
  129. data/vendor/pygments-main/pygments/lexers/hdl.py +176 -86
  130. data/vendor/pygments-main/pygments/lexers/hexdump.py +18 -12
  131. data/vendor/pygments-main/pygments/lexers/html.py +31 -19
  132. data/vendor/pygments-main/pygments/lexers/idl.py +20 -9
  133. data/vendor/pygments-main/pygments/lexers/igor.py +244 -112
  134. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -2
  135. data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
  136. data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -15
  137. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -2
  138. data/vendor/pygments-main/pygments/lexers/j.py +3 -3
  139. data/vendor/pygments-main/pygments/lexers/javascript.py +100 -66
  140. data/vendor/pygments-main/pygments/lexers/julia.py +46 -48
  141. data/vendor/pygments-main/pygments/lexers/jvm.py +265 -165
  142. data/vendor/pygments-main/pygments/lexers/lisp.py +882 -804
  143. data/vendor/pygments-main/pygments/lexers/make.py +10 -6
  144. data/vendor/pygments-main/pygments/lexers/markup.py +213 -43
  145. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  146. data/vendor/pygments-main/pygments/lexers/matlab.py +98 -41
  147. data/vendor/pygments-main/pygments/lexers/mime.py +226 -0
  148. data/vendor/pygments-main/pygments/lexers/ml.py +198 -9
  149. data/vendor/pygments-main/pygments/lexers/modeling.py +26 -18
  150. data/vendor/pygments-main/pygments/lexers/modula2.py +25 -6
  151. data/vendor/pygments-main/pygments/lexers/monte.py +4 -3
  152. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  153. data/vendor/pygments-main/pygments/lexers/ncl.py +85 -244
  154. data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -4
  155. data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
  156. data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
  157. data/vendor/pygments-main/pygments/lexers/oberon.py +17 -1
  158. data/vendor/pygments-main/pygments/lexers/objective.py +16 -16
  159. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
  160. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  161. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
  162. data/vendor/pygments-main/pygments/lexers/parsers.py +23 -58
  163. data/vendor/pygments-main/pygments/lexers/pascal.py +23 -23
  164. data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
  165. data/vendor/pygments-main/pygments/lexers/perl.py +276 -160
  166. data/vendor/pygments-main/pygments/lexers/php.py +64 -10
  167. data/vendor/pygments-main/pygments/lexers/pointless.py +71 -0
  168. data/vendor/pygments-main/pygments/lexers/pony.py +94 -0
  169. data/vendor/pygments-main/pygments/lexers/praat.py +38 -30
  170. data/vendor/pygments-main/pygments/lexers/prolog.py +36 -36
  171. data/vendor/pygments-main/pygments/lexers/promql.py +183 -0
  172. data/vendor/pygments-main/pygments/lexers/python.py +439 -226
  173. data/vendor/pygments-main/pygments/lexers/qvt.py +6 -6
  174. data/vendor/pygments-main/pygments/lexers/r.py +13 -275
  175. data/vendor/pygments-main/pygments/lexers/rdf.py +232 -39
  176. data/vendor/pygments-main/pygments/lexers/rebol.py +8 -8
  177. data/vendor/pygments-main/pygments/lexers/resource.py +2 -2
  178. data/vendor/pygments-main/pygments/lexers/ride.py +139 -0
  179. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  180. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
  181. data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -31
  182. data/vendor/pygments-main/pygments/lexers/ruby.py +22 -24
  183. data/vendor/pygments-main/pygments/lexers/rust.py +86 -71
  184. data/vendor/pygments-main/pygments/lexers/sas.py +7 -7
  185. data/vendor/pygments-main/pygments/lexers/scdoc.py +83 -0
  186. data/vendor/pygments-main/pygments/lexers/scripting.py +75 -13
  187. data/vendor/pygments-main/pygments/lexers/sgf.py +61 -0
  188. data/vendor/pygments-main/pygments/lexers/shell.py +175 -51
  189. data/vendor/pygments-main/pygments/lexers/sieve.py +69 -0
  190. data/vendor/pygments-main/pygments/lexers/slash.py +185 -0
  191. data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -2
  192. data/vendor/pygments-main/pygments/lexers/smv.py +30 -26
  193. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/solidity.py +92 -0
  195. data/vendor/pygments-main/pygments/lexers/special.py +5 -3
  196. data/vendor/pygments-main/pygments/lexers/sql.py +333 -177
  197. data/vendor/pygments-main/pygments/lexers/stata.py +107 -42
  198. data/vendor/pygments-main/pygments/lexers/supercollider.py +6 -1
  199. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
  200. data/vendor/pygments-main/pygments/lexers/templates.py +144 -132
  201. data/vendor/pygments-main/pygments/lexers/teraterm.py +335 -0
  202. data/vendor/pygments-main/pygments/lexers/testing.py +6 -6
  203. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  204. data/vendor/pygments-main/pygments/lexers/textedit.py +4 -4
  205. data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -13
  206. data/vendor/pygments-main/pygments/lexers/theorem.py +69 -53
  207. data/vendor/pygments-main/pygments/lexers/tnt.py +263 -0
  208. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  209. data/vendor/pygments-main/pygments/lexers/typoscript.py +8 -14
  210. data/vendor/pygments-main/pygments/lexers/unicon.py +412 -0
  211. data/vendor/pygments-main/pygments/lexers/urbi.py +14 -1
  212. data/vendor/pygments-main/pygments/lexers/usd.py +90 -0
  213. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  214. data/vendor/pygments-main/pygments/lexers/verification.py +15 -12
  215. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  216. data/vendor/pygments-main/pygments/lexers/webidl.py +299 -0
  217. data/vendor/pygments-main/pygments/lexers/webmisc.py +50 -38
  218. data/vendor/pygments-main/pygments/lexers/whiley.py +11 -12
  219. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/xorg.py +37 -0
  221. data/vendor/pygments-main/pygments/lexers/yang.py +104 -0
  222. data/vendor/pygments-main/pygments/lexers/zig.py +124 -0
  223. data/vendor/pygments-main/pygments/modeline.py +6 -5
  224. data/vendor/pygments-main/pygments/plugin.py +14 -18
  225. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  226. data/vendor/pygments-main/pygments/scanner.py +2 -2
  227. data/vendor/pygments-main/pygments/sphinxext.py +2 -4
  228. data/vendor/pygments-main/pygments/style.py +61 -24
  229. data/vendor/pygments-main/pygments/styles/__init__.py +13 -5
  230. data/vendor/pygments-main/pygments/styles/abap.py +29 -0
  231. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  232. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  233. data/vendor/pygments-main/pygments/styles/arduino.py +2 -2
  234. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  238. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  239. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  240. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  241. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  242. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  243. data/vendor/pygments-main/pygments/styles/inkpot.py +67 -0
  244. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  245. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  246. data/vendor/pygments-main/pygments/styles/monokai.py +4 -3
  247. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  248. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  249. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  250. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  251. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  252. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  253. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +89 -0
  254. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/sas.py +3 -0
  256. data/vendor/pygments-main/pygments/styles/solarized.py +134 -0
  257. data/vendor/pygments-main/pygments/styles/stata_dark.py +41 -0
  258. data/vendor/pygments-main/pygments/styles/stata_light.py +39 -0
  259. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  260. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  261. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  262. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  263. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  264. data/vendor/pygments-main/pygments/token.py +1 -1
  265. data/vendor/pygments-main/pygments/unistring.py +47 -108
  266. data/vendor/pygments-main/pygments/util.py +19 -95
  267. metadata +71 -137
  268. data/CHANGELOG.md +0 -98
  269. data/README.md +0 -121
  270. data/circle.yml +0 -20
  271. data/test/test_data.c +0 -2581
  272. data/test/test_data.py +0 -514
  273. data/test/test_data_generated +0 -2582
  274. data/vendor/custom_lexers/github.py +0 -565
  275. data/vendor/pygments-main/CHANGES +0 -1163
  276. data/vendor/pygments-main/MANIFEST.in +0 -6
  277. data/vendor/pygments-main/Makefile +0 -65
  278. data/vendor/pygments-main/README.rst +0 -39
  279. data/vendor/pygments-main/REVISION +0 -1
  280. data/vendor/pygments-main/TODO +0 -12
  281. data/vendor/pygments-main/doc/Makefile +0 -153
  282. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  283. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  284. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  285. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  286. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  287. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  288. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  289. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  290. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  291. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  292. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  293. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  294. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  295. data/vendor/pygments-main/doc/conf.py +0 -241
  296. data/vendor/pygments-main/doc/docs/api.rst +0 -331
  297. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  298. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  299. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -149
  300. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  301. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  302. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  303. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  304. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  305. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  306. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  307. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -689
  308. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  309. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  310. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  311. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  312. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  313. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  314. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  315. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  316. data/vendor/pygments-main/doc/download.rst +0 -41
  317. data/vendor/pygments-main/doc/faq.rst +0 -139
  318. data/vendor/pygments-main/doc/index.rst +0 -54
  319. data/vendor/pygments-main/doc/languages.rst +0 -154
  320. data/vendor/pygments-main/doc/make.bat +0 -190
  321. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  322. data/vendor/pygments-main/external/autopygmentize +0 -84
  323. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  324. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  325. data/vendor/pygments-main/external/moin-parser.py +0 -112
  326. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  327. data/vendor/pygments-main/external/rst-directive.py +0 -82
  328. data/vendor/pygments-main/pygmentize +0 -8
  329. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  330. data/vendor/pygments-main/pygments/styles/stata.py +0 -37
  331. data/vendor/pygments-main/requirements.txt +0 -5
  332. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  333. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  334. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  335. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  336. data/vendor/pygments-main/scripts/find_error.py +0 -1
  337. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  338. data/vendor/pygments-main/scripts/pylintrc +0 -301
  339. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  340. data/vendor/pygments-main/setup.cfg +0 -10
  341. data/vendor/pygments-main/setup.py +0 -77
  342. data/vendor/pygments-main/tox.ini +0 -7
  343. data/vendor/simplejson/.gitignore +0 -10
  344. data/vendor/simplejson/.travis.yml +0 -5
  345. data/vendor/simplejson/CHANGES.txt +0 -291
  346. data/vendor/simplejson/LICENSE.txt +0 -19
  347. data/vendor/simplejson/MANIFEST.in +0 -5
  348. data/vendor/simplejson/README.rst +0 -19
  349. data/vendor/simplejson/conf.py +0 -179
  350. data/vendor/simplejson/index.rst +0 -628
  351. data/vendor/simplejson/scripts/make_docs.py +0 -18
  352. data/vendor/simplejson/setup.py +0 -104
  353. data/vendor/simplejson/simplejson/__init__.py +0 -510
  354. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  355. data/vendor/simplejson/simplejson/decoder.py +0 -425
  356. data/vendor/simplejson/simplejson/encoder.py +0 -567
  357. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  358. data/vendor/simplejson/simplejson/scanner.py +0 -77
  359. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  360. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  361. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  362. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  363. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  364. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  365. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  366. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  367. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  368. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  369. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  370. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  371. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  372. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  373. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  374. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  375. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  376. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  377. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  378. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  379. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  380. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  381. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  382. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  383. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for graph query languages.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -22,9 +22,9 @@ __all__ = ['CypherLexer']
22
22
  class CypherLexer(RegexLexer):
23
23
  """
24
24
  For `Cypher Query Language
25
- <http://docs.neo4j.org/chunked/milestone/cypher-query-lang.html>`_
25
+ <https://neo4j.com/docs/developer-manual/3.3/cypher/>`_
26
26
 
27
- For the Cypher version in Neo4J 2.0
27
+ For the Cypher version in Neo4j 3.3
28
28
 
29
29
  .. versionadded:: 2.0
30
30
  """
@@ -49,14 +49,19 @@ class CypherLexer(RegexLexer):
49
49
  ],
50
50
  'keywords': [
51
51
  (r'(create|order|match|limit|set|skip|start|return|with|where|'
52
- r'delete|foreach|not|by)\b', Keyword),
52
+ r'delete|foreach|not|by|true|false)\b', Keyword),
53
53
  ],
54
54
  'clauses': [
55
- # TODO: many missing ones, see http://docs.neo4j.org/refcard/2.0/
56
- (r'(all|any|as|asc|create|create\s+unique|delete|'
57
- r'desc|distinct|foreach|in|is\s+null|limit|match|none|'
58
- r'order\s+by|return|set|skip|single|start|union|where|with)\b',
59
- Keyword),
55
+ # based on https://neo4j.com/docs/cypher-refcard/3.3/
56
+ (r'(all|any|as|asc|ascending|assert|call|case|create|'
57
+ r'create\s+index|create\s+unique|delete|desc|descending|'
58
+ r'distinct|drop\s+constraint\s+on|drop\s+index\s+on|end|'
59
+ r'ends\s+with|fieldterminator|foreach|in|is\s+node\s+key|'
60
+ r'is\s+null|is\s+unique|limit|load\s+csv\s+from|match|merge|none|'
61
+ r'not|null|on\s+match|on\s+create|optional\s+match|order\s+by|'
62
+ r'remove|return|set|skip|single|start|starts\s+with|then|union|'
63
+ r'union\s+all|unwind|using\s+periodic\s+commit|yield|where|when|'
64
+ r'with)\b', Keyword),
60
65
  ],
61
66
  'relations': [
62
67
  (r'(-\[)(.*?)(\]->)', bygroups(Operator, using(this), Operator)),
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for computer graphics and plotting related languages.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -15,7 +15,7 @@ from pygments.token import Text, Comment, Operator, Keyword, Name, \
15
15
  Number, Punctuation, String
16
16
 
17
17
  __all__ = ['GLShaderLexer', 'PostScriptLexer', 'AsymptoteLexer', 'GnuplotLexer',
18
- 'PovrayLexer']
18
+ 'PovrayLexer', 'HLSLShaderLexer']
19
19
 
20
20
 
21
21
  class GLShaderLexer(RegexLexer):
@@ -46,28 +46,102 @@ class GLShaderLexer(RegexLexer):
46
46
  (r'0[0-7]*', Number.Oct),
47
47
  (r'[1-9][0-9]*', Number.Integer),
48
48
  (words((
49
- 'attribute', 'const', 'uniform', 'varying', 'centroid', 'break',
50
- 'continue', 'do', 'for', 'while', 'if', 'else', 'in', 'out',
51
- 'inout', 'float', 'int', 'void', 'bool', 'true', 'false',
52
- 'invariant', 'discard', 'return', 'mat2', 'mat3' 'mat4',
53
- 'mat2x2', 'mat3x2', 'mat4x2', 'mat2x3', 'mat3x3', 'mat4x3',
54
- 'mat2x4', 'mat3x4', 'mat4x4', 'vec2', 'vec3', 'vec4',
55
- 'ivec2', 'ivec3', 'ivec4', 'bvec2', 'bvec3', 'bvec4',
56
- 'sampler1D', 'sampler2D', 'sampler3D' 'samplerCube',
57
- 'sampler1DShadow', 'sampler2DShadow', 'struct'),
49
+ # Storage qualifiers
50
+ 'attribute', 'const', 'uniform', 'varying',
51
+ 'buffer', 'shared', 'in', 'out',
52
+ # Layout qualifiers
53
+ 'layout',
54
+ # Interpolation qualifiers
55
+ 'flat', 'smooth', 'noperspective',
56
+ # Auxiliary qualifiers
57
+ 'centroid', 'sample', 'patch',
58
+ # Parameter qualifiers. Some double as Storage qualifiers
59
+ 'inout',
60
+ # Precision qualifiers
61
+ 'lowp', 'mediump', 'highp', 'precision',
62
+ # Invariance qualifiers
63
+ 'invariant',
64
+ # Precise qualifiers
65
+ 'precise',
66
+ # Memory qualifiers
67
+ 'coherent', 'volatile', 'restrict', 'readonly', 'writeonly',
68
+ # Statements
69
+ 'break', 'continue', 'do', 'for', 'while', 'switch',
70
+ 'case', 'default', 'if', 'else', 'subroutine',
71
+ 'discard', 'return', 'struct'),
58
72
  prefix=r'\b', suffix=r'\b'),
59
73
  Keyword),
60
74
  (words((
61
- 'asm', 'class', 'union', 'enum', 'typedef', 'template', 'this',
62
- 'packed', 'goto', 'switch', 'default', 'inline', 'noinline',
63
- 'volatile', 'public', 'static', 'extern', 'external', 'interface',
64
- 'long', 'short', 'double', 'half', 'fixed', 'unsigned', 'lowp',
65
- 'mediump', 'highp', 'precision', 'input', 'output',
66
- 'hvec2', 'hvec3', 'hvec4', 'dvec2', 'dvec3', 'dvec4',
67
- 'fvec2', 'fvec3', 'fvec4', 'sampler2DRect', 'sampler3DRect',
68
- 'sampler2DRectShadow', 'sizeof', 'cast', 'namespace', 'using'),
75
+ # Boolean values
76
+ 'true', 'false'),
69
77
  prefix=r'\b', suffix=r'\b'),
70
- Keyword), # future use
78
+ Keyword.Constant),
79
+ (words((
80
+ # Miscellaneous types
81
+ 'void', 'atomic_uint',
82
+ # Floating-point scalars and vectors
83
+ 'float', 'vec2', 'vec3', 'vec4',
84
+ 'double', 'dvec2', 'dvec3', 'dvec4',
85
+ # Integer scalars and vectors
86
+ 'int', 'ivec2', 'ivec3', 'ivec4',
87
+ 'uint', 'uvec2', 'uvec3', 'uvec4',
88
+ # Boolean scalars and vectors
89
+ 'bool', 'bvec2', 'bvec3', 'bvec4',
90
+ # Matrices
91
+ 'mat2', 'mat3', 'mat4', 'dmat2', 'dmat3', 'dmat4',
92
+ 'mat2x2', 'mat2x3', 'mat2x4', 'dmat2x2', 'dmat2x3', 'dmat2x4',
93
+ 'mat3x2', 'mat3x3', 'mat3x4', 'dmat3x2', 'dmat3x3',
94
+ 'dmat3x4', 'mat4x2', 'mat4x3', 'mat4x4', 'dmat4x2', 'dmat4x3', 'dmat4x4',
95
+ # Floating-point samplers
96
+ 'sampler1D', 'sampler2D', 'sampler3D', 'samplerCube',
97
+ 'sampler1DArray', 'sampler2DArray', 'samplerCubeArray',
98
+ 'sampler2DRect', 'samplerBuffer',
99
+ 'sampler2DMS', 'sampler2DMSArray',
100
+ # Shadow samplers
101
+ 'sampler1DShadow', 'sampler2DShadow', 'samplerCubeShadow',
102
+ 'sampler1DArrayShadow', 'sampler2DArrayShadow',
103
+ 'samplerCubeArrayShadow', 'sampler2DRectShadow',
104
+ # Signed integer samplers
105
+ 'isampler1D', 'isampler2D', 'isampler3D', 'isamplerCube',
106
+ 'isampler1DArray', 'isampler2DArray', 'isamplerCubeArray',
107
+ 'isampler2DRect', 'isamplerBuffer',
108
+ 'isampler2DMS', 'isampler2DMSArray',
109
+ # Unsigned integer samplers
110
+ 'usampler1D', 'usampler2D', 'usampler3D', 'usamplerCube',
111
+ 'usampler1DArray', 'usampler2DArray', 'usamplerCubeArray',
112
+ 'usampler2DRect', 'usamplerBuffer',
113
+ 'usampler2DMS', 'usampler2DMSArray',
114
+ # Floating-point image types
115
+ 'image1D', 'image2D', 'image3D', 'imageCube',
116
+ 'image1DArray', 'image2DArray', 'imageCubeArray',
117
+ 'image2DRect', 'imageBuffer',
118
+ 'image2DMS', 'image2DMSArray',
119
+ # Signed integer image types
120
+ 'iimage1D', 'iimage2D', 'iimage3D', 'iimageCube',
121
+ 'iimage1DArray', 'iimage2DArray', 'iimageCubeArray',
122
+ 'iimage2DRect', 'iimageBuffer',
123
+ 'iimage2DMS', 'iimage2DMSArray',
124
+ # Unsigned integer image types
125
+ 'uimage1D', 'uimage2D', 'uimage3D', 'uimageCube',
126
+ 'uimage1DArray', 'uimage2DArray', 'uimageCubeArray',
127
+ 'uimage2DRect', 'uimageBuffer',
128
+ 'uimage2DMS', 'uimage2DMSArray'),
129
+ prefix=r'\b', suffix=r'\b'),
130
+ Keyword.Type),
131
+ (words((
132
+ # Reserved for future use.
133
+ 'common', 'partition', 'active', 'asm', 'class',
134
+ 'union', 'enum', 'typedef', 'template', 'this',
135
+ 'resource', 'goto', 'inline', 'noinline', 'public',
136
+ 'static', 'extern', 'external', 'interface', 'long',
137
+ 'short', 'half', 'fixed', 'unsigned', 'superp', 'input',
138
+ 'output', 'hvec2', 'hvec3', 'hvec4', 'fvec2', 'fvec3',
139
+ 'fvec4', 'sampler3DRect', 'filter', 'sizeof', 'cast',
140
+ 'namespace', 'using'),
141
+ prefix=r'\b', suffix=r'\b'),
142
+ Keyword.Reserved),
143
+ # All names beginning with "gl_" are reserved.
144
+ (r'gl_\w*', Name.Builtin),
71
145
  (r'[a-zA-Z_]\w*', Name),
72
146
  (r'\.', Punctuation),
73
147
  (r'\s+', Text),
@@ -75,6 +149,160 @@ class GLShaderLexer(RegexLexer):
75
149
  }
76
150
 
77
151
 
152
+ class HLSLShaderLexer(RegexLexer):
153
+ """
154
+ HLSL (Microsoft Direct3D Shader) lexer.
155
+
156
+ .. versionadded:: 2.3
157
+ """
158
+ name = 'HLSL'
159
+ aliases = ['hlsl']
160
+ filenames = ['*.hlsl', '*.hlsli']
161
+ mimetypes = ['text/x-hlsl']
162
+
163
+ tokens = {
164
+ 'root': [
165
+ (r'^#.*', Comment.Preproc),
166
+ (r'//.*', Comment.Single),
167
+ (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
168
+ (r'\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?',
169
+ Operator),
170
+ (r'[?:]', Operator), # quick hack for ternary
171
+ (r'\bdefined\b', Operator),
172
+ (r'[;{}(),.\[\]]', Punctuation),
173
+ # FIXME when e is present, no decimal point needed
174
+ (r'[+-]?\d*\.\d+([eE][-+]?\d+)?f?', Number.Float),
175
+ (r'[+-]?\d+\.\d*([eE][-+]?\d+)?f?', Number.Float),
176
+ (r'0[xX][0-9a-fA-F]*', Number.Hex),
177
+ (r'0[0-7]*', Number.Oct),
178
+ (r'[1-9][0-9]*', Number.Integer),
179
+ (r'"', String, 'string'),
180
+ (words((
181
+ 'asm','asm_fragment','break','case','cbuffer','centroid','class',
182
+ 'column_major','compile','compile_fragment','const','continue',
183
+ 'default','discard','do','else','export','extern','for','fxgroup',
184
+ 'globallycoherent','groupshared','if','in','inline','inout',
185
+ 'interface','line','lineadj','linear','namespace','nointerpolation',
186
+ 'noperspective','NULL','out','packoffset','pass','pixelfragment',
187
+ 'point','precise','return','register','row_major','sample',
188
+ 'sampler','shared','stateblock','stateblock_state','static',
189
+ 'struct','switch','tbuffer','technique','technique10',
190
+ 'technique11','texture','typedef','triangle','triangleadj',
191
+ 'uniform','vertexfragment','volatile','while'),
192
+ prefix=r'\b', suffix=r'\b'),
193
+ Keyword),
194
+ (words(('true','false'), prefix=r'\b', suffix=r'\b'),
195
+ Keyword.Constant),
196
+ (words((
197
+ 'auto','catch','char','const_cast','delete','dynamic_cast','enum',
198
+ 'explicit','friend','goto','long','mutable','new','operator',
199
+ 'private','protected','public','reinterpret_cast','short','signed',
200
+ 'sizeof','static_cast','template','this','throw','try','typename',
201
+ 'union','unsigned','using','virtual'),
202
+ prefix=r'\b', suffix=r'\b'),
203
+ Keyword.Reserved),
204
+ (words((
205
+ 'dword','matrix','snorm','string','unorm','unsigned','void','vector',
206
+ 'BlendState','Buffer','ByteAddressBuffer','ComputeShader',
207
+ 'DepthStencilState','DepthStencilView','DomainShader',
208
+ 'GeometryShader','HullShader','InputPatch','LineStream',
209
+ 'OutputPatch','PixelShader','PointStream','RasterizerState',
210
+ 'RenderTargetView','RasterizerOrderedBuffer',
211
+ 'RasterizerOrderedByteAddressBuffer',
212
+ 'RasterizerOrderedStructuredBuffer','RasterizerOrderedTexture1D',
213
+ 'RasterizerOrderedTexture1DArray','RasterizerOrderedTexture2D',
214
+ 'RasterizerOrderedTexture2DArray','RasterizerOrderedTexture3D',
215
+ 'RWBuffer','RWByteAddressBuffer','RWStructuredBuffer',
216
+ 'RWTexture1D','RWTexture1DArray','RWTexture2D','RWTexture2DArray',
217
+ 'RWTexture3D','SamplerState','SamplerComparisonState',
218
+ 'StructuredBuffer','Texture1D','Texture1DArray','Texture2D',
219
+ 'Texture2DArray','Texture2DMS','Texture2DMSArray','Texture3D',
220
+ 'TextureCube','TextureCubeArray','TriangleStream','VertexShader'),
221
+ prefix=r'\b', suffix=r'\b'),
222
+ Keyword.Type),
223
+ (words((
224
+ 'bool','double','float','int','half','min16float','min10float',
225
+ 'min16int','min12int','min16uint','uint'),
226
+ prefix=r'\b', suffix=r'([1-4](x[1-4])?)?\b'),
227
+ Keyword.Type), # vector and matrix types
228
+ (words((
229
+ 'abort','abs','acos','all','AllMemoryBarrier',
230
+ 'AllMemoryBarrierWithGroupSync','any','AppendStructuredBuffer',
231
+ 'asdouble','asfloat','asin','asint','asuint','asuint','atan',
232
+ 'atan2','ceil','CheckAccessFullyMapped','clamp','clip',
233
+ 'CompileShader','ConsumeStructuredBuffer','cos','cosh','countbits',
234
+ 'cross','D3DCOLORtoUBYTE4','ddx','ddx_coarse','ddx_fine','ddy',
235
+ 'ddy_coarse','ddy_fine','degrees','determinant',
236
+ 'DeviceMemoryBarrier','DeviceMemoryBarrierWithGroupSync','distance',
237
+ 'dot','dst','errorf','EvaluateAttributeAtCentroid',
238
+ 'EvaluateAttributeAtSample','EvaluateAttributeSnapped','exp',
239
+ 'exp2','f16tof32','f32tof16','faceforward','firstbithigh',
240
+ 'firstbitlow','floor','fma','fmod','frac','frexp','fwidth',
241
+ 'GetRenderTargetSampleCount','GetRenderTargetSamplePosition',
242
+ 'GlobalOrderedCountIncrement','GroupMemoryBarrier',
243
+ 'GroupMemoryBarrierWithGroupSync','InterlockedAdd','InterlockedAnd',
244
+ 'InterlockedCompareExchange','InterlockedCompareStore',
245
+ 'InterlockedExchange','InterlockedMax','InterlockedMin',
246
+ 'InterlockedOr','InterlockedXor','isfinite','isinf','isnan',
247
+ 'ldexp','length','lerp','lit','log','log10','log2','mad','max',
248
+ 'min','modf','msad4','mul','noise','normalize','pow','printf',
249
+ 'Process2DQuadTessFactorsAvg','Process2DQuadTessFactorsMax',
250
+ 'Process2DQuadTessFactorsMin','ProcessIsolineTessFactors',
251
+ 'ProcessQuadTessFactorsAvg','ProcessQuadTessFactorsMax',
252
+ 'ProcessQuadTessFactorsMin','ProcessTriTessFactorsAvg',
253
+ 'ProcessTriTessFactorsMax','ProcessTriTessFactorsMin',
254
+ 'QuadReadLaneAt','QuadSwapX','QuadSwapY','radians','rcp',
255
+ 'reflect','refract','reversebits','round','rsqrt','saturate',
256
+ 'sign','sin','sincos','sinh','smoothstep','sqrt','step','tan',
257
+ 'tanh','tex1D','tex1D','tex1Dbias','tex1Dgrad','tex1Dlod',
258
+ 'tex1Dproj','tex2D','tex2D','tex2Dbias','tex2Dgrad','tex2Dlod',
259
+ 'tex2Dproj','tex3D','tex3D','tex3Dbias','tex3Dgrad','tex3Dlod',
260
+ 'tex3Dproj','texCUBE','texCUBE','texCUBEbias','texCUBEgrad',
261
+ 'texCUBElod','texCUBEproj','transpose','trunc','WaveAllBitAnd',
262
+ 'WaveAllMax','WaveAllMin','WaveAllBitOr','WaveAllBitXor',
263
+ 'WaveAllEqual','WaveAllProduct','WaveAllSum','WaveAllTrue',
264
+ 'WaveAnyTrue','WaveBallot','WaveGetLaneCount','WaveGetLaneIndex',
265
+ 'WaveGetOrderedIndex','WaveIsHelperLane','WaveOnce',
266
+ 'WavePrefixProduct','WavePrefixSum','WaveReadFirstLane',
267
+ 'WaveReadLaneAt'),
268
+ prefix=r'\b', suffix=r'\b'),
269
+ Name.Builtin), # built-in functions
270
+ (words((
271
+ 'SV_ClipDistance','SV_ClipDistance0','SV_ClipDistance1',
272
+ 'SV_Culldistance','SV_CullDistance0','SV_CullDistance1',
273
+ 'SV_Coverage','SV_Depth','SV_DepthGreaterEqual',
274
+ 'SV_DepthLessEqual','SV_DispatchThreadID','SV_DomainLocation',
275
+ 'SV_GroupID','SV_GroupIndex','SV_GroupThreadID','SV_GSInstanceID',
276
+ 'SV_InnerCoverage','SV_InsideTessFactor','SV_InstanceID',
277
+ 'SV_IsFrontFace','SV_OutputControlPointID','SV_Position',
278
+ 'SV_PrimitiveID','SV_RenderTargetArrayIndex','SV_SampleIndex',
279
+ 'SV_StencilRef','SV_TessFactor','SV_VertexID',
280
+ 'SV_ViewportArrayIndex'),
281
+ prefix=r'\b', suffix=r'\b'),
282
+ Name.Decorator), # system-value semantics
283
+ (r'\bSV_Target[0-7]?\b', Name.Decorator),
284
+ (words((
285
+ 'allow_uav_condition','branch','call','domain','earlydepthstencil',
286
+ 'fastopt','flatten','forcecase','instance','loop','maxtessfactor',
287
+ 'numthreads','outputcontrolpoints','outputtopology','partitioning',
288
+ 'patchconstantfunc','unroll'),
289
+ prefix=r'\b', suffix=r'\b'),
290
+ Name.Decorator), # attributes
291
+ (r'[a-zA-Z_]\w*', Name),
292
+ (r'\\$', Comment.Preproc), # backslash at end of line -- usually macro continuation
293
+ (r'\s+', Text),
294
+ ],
295
+ 'string': [
296
+ (r'"', String, '#pop'),
297
+ (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|'
298
+ r'u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})', String.Escape),
299
+ (r'[^\\"\n]+', String), # all other characters
300
+ (r'\\\n', String), # line continuation
301
+ (r'\\', String), # stray backslash
302
+ ],
303
+ }
304
+
305
+
78
306
  class PostScriptLexer(RegexLexer):
79
307
  """
80
308
  Lexer for PostScript files.
@@ -233,8 +461,8 @@ class AsymptoteLexer(RegexLexer):
233
461
  r'bounds|coord|frame|guide|horner|int|linefit|marginT|pair|pen|'
234
462
  r'picture|position|real|revolution|slice|splitface|ticksgridT|'
235
463
  r'tickvalues|tree|triple|vertex|void)\b', Keyword.Type),
236
- ('[a-zA-Z_]\w*:(?!:)', Name.Label),
237
- ('[a-zA-Z_]\w*', Name),
464
+ (r'[a-zA-Z_]\w*:(?!:)', Name.Label),
465
+ (r'[a-zA-Z_]\w*', Name),
238
466
  ],
239
467
  'root': [
240
468
  include('whitespace'),
@@ -334,9 +562,9 @@ class GnuplotLexer(RegexLexer):
334
562
  (_shortened_many('pwd$', 're$read', 'res$et', 'scr$eendump',
335
563
  'she$ll', 'test$'),
336
564
  Keyword, 'noargs'),
337
- ('([a-zA-Z_]\w*)(\s*)(=)',
565
+ (r'([a-zA-Z_]\w*)(\s*)(=)',
338
566
  bygroups(Name.Variable, Text, Operator), 'genericargs'),
339
- ('([a-zA-Z_]\w*)(\s*\(.*?\)\s*)(=)',
567
+ (r'([a-zA-Z_]\w*)(\s*\(.*?\)\s*)(=)',
340
568
  bygroups(Name.Function, Text, Operator), 'genericargs'),
341
569
  (r'@[a-zA-Z_]\w*', Name.Constant), # macros
342
570
  (r';', Keyword),
@@ -382,7 +610,7 @@ class GnuplotLexer(RegexLexer):
382
610
  (r'(\d+\.\d*|\.\d+)', Number.Float),
383
611
  (r'-?\d+', Number.Integer),
384
612
  ('[,.~!%^&*+=|?:<>/-]', Operator),
385
- ('[{}()\[\]]', Punctuation),
613
+ (r'[{}()\[\]]', Punctuation),
386
614
  (r'(eq|ne)\b', Operator.Word),
387
615
  (r'([a-zA-Z_]\w*)(\s*)(\()',
388
616
  bygroups(Name.Function, Text, Punctuation)),
@@ -551,3 +779,22 @@ class PovrayLexer(RegexLexer):
551
779
  (r'\s+', Text),
552
780
  ]
553
781
  }
782
+
783
+ def analyse_text(text):
784
+ """POVRAY is similar to JSON/C, but the combination of camera and
785
+ light_source is probably not very likely elsewhere. HLSL or GLSL
786
+ are similar (GLSL even has #version), but they miss #declare, and
787
+ light_source/camera are not keywords anywhere else -- it's fair
788
+ to assume though that any POVRAY scene must have a camera and
789
+ lightsource."""
790
+ result = 0
791
+ if '#version' in text:
792
+ result += 0.05
793
+ if '#declare' in text:
794
+ result += 0.05
795
+ if 'camera' in text:
796
+ result += 0.05
797
+ if 'light_source' in text:
798
+ result += 0.1
799
+
800
+ return result
@@ -5,19 +5,19 @@
5
5
 
6
6
  Lexers for Haskell and related languages.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
12
12
  import re
13
13
 
14
14
  from pygments.lexer import Lexer, RegexLexer, bygroups, do_insertions, \
15
- default, include
15
+ default, include, inherit
16
16
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
17
17
  Number, Punctuation, Generic
18
18
  from pygments import unistring as uni
19
19
 
20
- __all__ = ['HaskellLexer', 'IdrisLexer', 'AgdaLexer', 'CryptolLexer',
20
+ __all__ = ['HaskellLexer', 'HspecLexer', 'IdrisLexer', 'AgdaLexer', 'CryptolLexer',
21
21
  'LiterateHaskellLexer', 'LiterateIdrisLexer', 'LiterateAgdaLexer',
22
22
  'LiterateCryptolLexer', 'KokaLexer']
23
23
 
@@ -39,7 +39,7 @@ class HaskellLexer(RegexLexer):
39
39
  flags = re.MULTILINE | re.UNICODE
40
40
 
41
41
  reserved = ('case', 'class', 'data', 'default', 'deriving', 'do', 'else',
42
- 'if', 'in', 'infix[lr]?', 'instance',
42
+ 'family', 'if', 'in', 'infix[lr]?', 'instance',
43
43
  'let', 'newtype', 'of', 'then', 'type', 'where', '_')
44
44
  ascii = ('NUL', 'SOH', '[SE]TX', 'EOT', 'ENQ', 'ACK',
45
45
  'BEL', 'BS', 'HT', 'LF', 'VT', 'FF', 'CR', 'S[OI]', 'DLE',
@@ -63,17 +63,25 @@ class HaskellLexer(RegexLexer):
63
63
  (r'^[_' + uni.Ll + r'][\w\']*', Name.Function),
64
64
  (r"'?[_" + uni.Ll + r"][\w']*", Name),
65
65
  (r"('')?[" + uni.Lu + r"][\w\']*", Keyword.Type),
66
+ (r"(')[" + uni.Lu + r"][\w\']*", Keyword.Type),
67
+ (r"(')\[[^\]]*\]", Keyword.Type), # tuples and lists get special treatment in GHC
68
+ (r"(')\([^)]*\)", Keyword.Type), # ..
69
+ (r"(')[:!#$%&*+.\\/<=>?@^|~-]+", Keyword.Type), # promoted type operators
66
70
  # Operators
67
71
  (r'\\(?![:!#$%&*+.\\/<=>?@^|~-]+)', Name.Function), # lambda operator
68
72
  (r'(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)', Operator.Word), # specials
69
73
  (r':[:!#$%&*+.\\/<=>?@^|~-]*', Keyword.Type), # Constructor operators
70
74
  (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator), # Other operators
71
75
  # Numbers
72
- (r'\d+[eE][+-]?\d+', Number.Float),
73
- (r'\d+\.\d+([eE][+-]?\d+)?', Number.Float),
74
- (r'0[oO][0-7]+', Number.Oct),
75
- (r'0[xX][\da-fA-F]+', Number.Hex),
76
- (r'\d+', Number.Integer),
76
+ (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*', Number.Float),
77
+ (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*'
78
+ r'(_*[pP][+-]?\d(_*\d)*)?', Number.Float),
79
+ (r'\d(_*\d)*_*[eE][+-]?\d(_*\d)*', Number.Float),
80
+ (r'\d(_*\d)*\.\d(_*\d)*(_*[eE][+-]?\d(_*\d)*)?', Number.Float),
81
+ (r'0[bB]_*[01](_*[01])*', Number.Bin),
82
+ (r'0[oO]_*[0-7](_*[0-7])*', Number.Oct),
83
+ (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*', Number.Hex),
84
+ (r'\d(_*\d)*', Number.Integer),
77
85
  # Character/String Literals
78
86
  (r"'", String.Char, 'character'),
79
87
  (r'"', String, 'string'),
@@ -151,6 +159,28 @@ class HaskellLexer(RegexLexer):
151
159
  }
152
160
 
153
161
 
162
+ class HspecLexer(HaskellLexer):
163
+ """
164
+ A Haskell lexer with support for Hspec constructs.
165
+
166
+ .. versionadded:: 2.4.0
167
+ """
168
+
169
+ name = 'Hspec'
170
+ aliases = ['hspec']
171
+ filenames = []
172
+ mimetypes = []
173
+
174
+ tokens = {
175
+ 'root': [
176
+ (r'(it\s*)("[^"]*")', bygroups(Text, String.Doc)),
177
+ (r'(describe\s*)("[^"]*")', bygroups(Text, String.Doc)),
178
+ (r'(context\s*)("[^"]*")', bygroups(Text, String.Doc)),
179
+ inherit,
180
+ ],
181
+ }
182
+
183
+
154
184
  class IdrisLexer(RegexLexer):
155
185
  """
156
186
  A lexer for the dependently typed programming language Idris.
@@ -168,6 +198,7 @@ class IdrisLexer(RegexLexer):
168
198
  'if', 'in', 'infix[lr]?', 'instance', 'rewrite', 'auto',
169
199
  'namespace', 'codata', 'mutual', 'private', 'public', 'abstract',
170
200
  'total', 'partial',
201
+ 'interface', 'implementation', 'export', 'covering', 'constructor',
171
202
  'let', 'proof', 'of', 'then', 'static', 'where', '_', 'with',
172
203
  'pattern', 'term', 'syntax', 'prefix',
173
204
  'postulate', 'parameters', 'record', 'dsl', 'impossible', 'implicit',
@@ -184,7 +215,7 @@ class IdrisLexer(RegexLexer):
184
215
  tokens = {
185
216
  'root': [
186
217
  # Comments
187
- (r'^(\s*)(%%%s)' % '|'.join(directives),
218
+ (r'^(\s*)(%%(%s))' % '|'.join(directives),
188
219
  bygroups(Text, Keyword.Reserved)),
189
220
  (r'(\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$', bygroups(Text, Comment.Single)),
190
221
  (r'(\s*)(\|{3}.*?)$', bygroups(Text, Comment.Single)),
@@ -296,10 +327,10 @@ class AgdaLexer(RegexLexer):
296
327
  # Identifiers
297
328
  (r'\b(%s)(?!\')\b' % '|'.join(reserved), Keyword.Reserved),
298
329
  (r'(import|module)(\s+)', bygroups(Keyword.Reserved, Text), 'module'),
299
- (r'\b(Set|Prop)\b', Keyword.Type),
330
+ (r'\b(Set|Prop)[\u2080-\u2089]*\b', Keyword.Type),
300
331
  # Special Symbols
301
332
  (r'(\(|\)|\{|\})', Operator),
302
- (u'(\\.{1,3}|\\||\u039B|\u2200|\u2192|:|=|->)', Operator.Word),
333
+ (r'(\.{1,3}|\||\u03BB|\u2200|\u2192|:|=|->)', Operator.Word),
303
334
  # Numbers
304
335
  (r'\d+[eE][+-]?\d+', Number.Float),
305
336
  (r'\d+\.\d+([eE][+-]?\d+)?', Number.Float),
@@ -415,8 +446,8 @@ class CryptolLexer(RegexLexer):
415
446
  (r'[A-Z]\w*', Keyword.Type),
416
447
  (r'(_[\w\']+|[a-z][\w\']*)', Name.Function),
417
448
  # TODO: these don't match the comments in docs, remove.
418
- #(r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single),
419
- #(r'{-', Comment.Multiline, 'comment'),
449
+ # (r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single),
450
+ # (r'{-', Comment.Multiline, 'comment'),
420
451
  (r',', Punctuation),
421
452
  (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator),
422
453
  # (HACK, but it makes sense to push two instances, believe me)
@@ -452,10 +483,10 @@ class CryptolLexer(RegexLexer):
452
483
  ],
453
484
  }
454
485
 
455
- EXTRA_KEYWORDS = set(('join', 'split', 'reverse', 'transpose', 'width',
456
- 'length', 'tail', '<<', '>>', '<<<', '>>>', 'const',
457
- 'reg', 'par', 'seq', 'ASSERT', 'undefined', 'error',
458
- 'trace'))
486
+ EXTRA_KEYWORDS = {'join', 'split', 'reverse', 'transpose', 'width',
487
+ 'length', 'tail', '<<', '>>', '<<<', '>>>', 'const',
488
+ 'reg', 'par', 'seq', 'ASSERT', 'undefined', 'error',
489
+ 'trace'}
459
490
 
460
491
  def get_tokens_unprocessed(self, text):
461
492
  stack = ['root']
@@ -528,8 +559,7 @@ class LiterateLexer(Lexer):
528
559
  latex += line
529
560
  insertions.append((len(code),
530
561
  list(lxlexer.get_tokens_unprocessed(latex))))
531
- for item in do_insertions(insertions, self.baselexer.get_tokens_unprocessed(code)):
532
- yield item
562
+ yield from do_insertions(insertions, self.baselexer.get_tokens_unprocessed(code))
533
563
 
534
564
 
535
565
  class LiterateHaskellLexer(LiterateLexer):
@@ -674,10 +704,10 @@ class KokaLexer(RegexLexer):
674
704
  symbols = r'[$%&*+@!/\\^~=.:\-?|<>]+'
675
705
 
676
706
  # symbol boundary: an operator keyword should not be followed by any of these
677
- sboundary = '(?!'+symbols+')'
707
+ sboundary = '(?!' + symbols + ')'
678
708
 
679
709
  # name boundary: a keyword should not be followed by any of these
680
- boundary = '(?![\w/])'
710
+ boundary = r'(?![\w/])'
681
711
 
682
712
  # koka token abstractions
683
713
  tokenType = Name.Attribute