pygments.rb 1.1.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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