pygments.rb 1.2.1 → 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 (381) 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 -6
  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 +11 -21
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments/lexer.rb +5 -5
  15. data/lib/pygments/mentos.py +23 -110
  16. data/lib/pygments/popen.rb +148 -229
  17. data/lib/pygments/version.rb +2 -2
  18. data/lib/pygments.rb +10 -11
  19. data/pygments.rb.gemspec +12 -10
  20. data/test/test_pygments.rb +46 -104
  21. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +21 -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 +38 -29
  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 +9 -8
  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 +68 -41
  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 +28 -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 +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
  58. data/vendor/pygments-main/pygments/lexers/_mapping.py +74 -29
  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 +440 -76
  81. data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
  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 +5 -5
  85. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +17 -2
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +67 -42
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -7
  90. data/vendor/pygments-main/pygments/lexers/chapel.py +23 -13
  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 +187 -36
  94. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/crystal.py +3 -4
  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 +144 -62
  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 +46 -19
  112. data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -13
  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 +62 -5
  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 +48 -21
  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 +1 -1
  131. data/vendor/pygments-main/pygments/lexers/html.py +31 -19
  132. data/vendor/pygments-main/pygments/lexers/idl.py +19 -8
  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 +60 -45
  140. data/vendor/pygments-main/pygments/lexers/julia.py +44 -46
  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 +1 -1
  152. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  153. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
  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 +22 -22
  164. data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
  165. data/vendor/pygments-main/pygments/lexers/perl.py +260 -148
  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 -227
  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 +76 -72
  184. data/vendor/pygments-main/pygments/lexers/sas.py +1 -1
  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 +162 -42
  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 +3 -3
  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 -44
  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 +102 -121
  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 +4 -11
  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 +3 -3
  214. data/vendor/pygments-main/pygments/lexers/verification.py +13 -10
  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 +31 -28
  218. data/vendor/pygments-main/pygments/lexers/whiley.py +5 -5
  219. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/xorg.py +5 -4
  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 +1 -1
  224. data/vendor/pygments-main/pygments/plugin.py +4 -2
  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 +10 -4
  230. data/vendor/pygments-main/pygments/styles/abap.py +1 -1
  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 +1 -1
  254. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/sas.py +1 -1
  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.py → stata_light.py} +14 -15
  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 +15 -92
  267. metadata +68 -136
  268. data/CHANGELOG.md +0 -111
  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 -1186
  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 -354
  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 -166
  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 -728
  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 -101
  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/requirements.txt +0 -5
  331. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  332. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  333. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  334. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  335. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  336. data/vendor/pygments-main/scripts/pylintrc +0 -301
  337. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  338. data/vendor/pygments-main/setup.cfg +0 -10
  339. data/vendor/pygments-main/setup.py +0 -77
  340. data/vendor/pygments-main/tox.ini +0 -7
  341. data/vendor/simplejson/.gitignore +0 -10
  342. data/vendor/simplejson/.travis.yml +0 -5
  343. data/vendor/simplejson/CHANGES.txt +0 -291
  344. data/vendor/simplejson/LICENSE.txt +0 -19
  345. data/vendor/simplejson/MANIFEST.in +0 -5
  346. data/vendor/simplejson/README.rst +0 -19
  347. data/vendor/simplejson/conf.py +0 -179
  348. data/vendor/simplejson/index.rst +0 -628
  349. data/vendor/simplejson/scripts/make_docs.py +0 -18
  350. data/vendor/simplejson/setup.py +0 -104
  351. data/vendor/simplejson/simplejson/__init__.py +0 -510
  352. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  353. data/vendor/simplejson/simplejson/decoder.py +0 -425
  354. data/vendor/simplejson/simplejson/encoder.py +0 -567
  355. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  356. data/vendor/simplejson/simplejson/scanner.py +0 -77
  357. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  358. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  359. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  360. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  361. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  362. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  363. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  364. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  365. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  366. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  367. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  368. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  369. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  370. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  371. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  372. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  373. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  374. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  375. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  376. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  377. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  378. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  379. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  380. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  381. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for computer graphics and plotting related languages.
7
7
 
8
- :copyright: Copyright 2006-2017 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-2017 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
 
@@ -66,17 +66,22 @@ class HaskellLexer(RegexLexer):
66
66
  (r"(')[" + uni.Lu + r"][\w\']*", Keyword.Type),
67
67
  (r"(')\[[^\]]*\]", Keyword.Type), # tuples and lists get special treatment in GHC
68
68
  (r"(')\([^)]*\)", Keyword.Type), # ..
69
+ (r"(')[:!#$%&*+.\\/<=>?@^|~-]+", Keyword.Type), # promoted type operators
69
70
  # Operators
70
71
  (r'\\(?![:!#$%&*+.\\/<=>?@^|~-]+)', Name.Function), # lambda operator
71
72
  (r'(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)', Operator.Word), # specials
72
73
  (r':[:!#$%&*+.\\/<=>?@^|~-]*', Keyword.Type), # Constructor operators
73
74
  (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator), # Other operators
74
75
  # Numbers
75
- (r'\d+[eE][+-]?\d+', Number.Float),
76
- (r'\d+\.\d+([eE][+-]?\d+)?', Number.Float),
77
- (r'0[oO][0-7]+', Number.Oct),
78
- (r'0[xX][\da-fA-F]+', Number.Hex),
79
- (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),
80
85
  # Character/String Literals
81
86
  (r"'", String.Char, 'character'),
82
87
  (r'"', String, 'string'),
@@ -154,6 +159,28 @@ class HaskellLexer(RegexLexer):
154
159
  }
155
160
 
156
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
+
157
184
  class IdrisLexer(RegexLexer):
158
185
  """
159
186
  A lexer for the dependently typed programming language Idris.
@@ -171,6 +198,7 @@ class IdrisLexer(RegexLexer):
171
198
  'if', 'in', 'infix[lr]?', 'instance', 'rewrite', 'auto',
172
199
  'namespace', 'codata', 'mutual', 'private', 'public', 'abstract',
173
200
  'total', 'partial',
201
+ 'interface', 'implementation', 'export', 'covering', 'constructor',
174
202
  'let', 'proof', 'of', 'then', 'static', 'where', '_', 'with',
175
203
  'pattern', 'term', 'syntax', 'prefix',
176
204
  'postulate', 'parameters', 'record', 'dsl', 'impossible', 'implicit',
@@ -187,7 +215,7 @@ class IdrisLexer(RegexLexer):
187
215
  tokens = {
188
216
  'root': [
189
217
  # Comments
190
- (r'^(\s*)(%%%s)' % '|'.join(directives),
218
+ (r'^(\s*)(%%(%s))' % '|'.join(directives),
191
219
  bygroups(Text, Keyword.Reserved)),
192
220
  (r'(\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$', bygroups(Text, Comment.Single)),
193
221
  (r'(\s*)(\|{3}.*?)$', bygroups(Text, Comment.Single)),
@@ -299,10 +327,10 @@ class AgdaLexer(RegexLexer):
299
327
  # Identifiers
300
328
  (r'\b(%s)(?!\')\b' % '|'.join(reserved), Keyword.Reserved),
301
329
  (r'(import|module)(\s+)', bygroups(Keyword.Reserved, Text), 'module'),
302
- (r'\b(Set|Prop)\b', Keyword.Type),
330
+ (r'\b(Set|Prop)[\u2080-\u2089]*\b', Keyword.Type),
303
331
  # Special Symbols
304
332
  (r'(\(|\)|\{|\})', Operator),
305
- (u'(\\.{1,3}|\\||\u039B|\u2200|\u2192|:|=|->)', Operator.Word),
333
+ (r'(\.{1,3}|\||\u03BB|\u2200|\u2192|:|=|->)', Operator.Word),
306
334
  # Numbers
307
335
  (r'\d+[eE][+-]?\d+', Number.Float),
308
336
  (r'\d+\.\d+([eE][+-]?\d+)?', Number.Float),
@@ -418,8 +446,8 @@ class CryptolLexer(RegexLexer):
418
446
  (r'[A-Z]\w*', Keyword.Type),
419
447
  (r'(_[\w\']+|[a-z][\w\']*)', Name.Function),
420
448
  # TODO: these don't match the comments in docs, remove.
421
- #(r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single),
422
- #(r'{-', Comment.Multiline, 'comment'),
449
+ # (r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single),
450
+ # (r'{-', Comment.Multiline, 'comment'),
423
451
  (r',', Punctuation),
424
452
  (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator),
425
453
  # (HACK, but it makes sense to push two instances, believe me)
@@ -455,10 +483,10 @@ class CryptolLexer(RegexLexer):
455
483
  ],
456
484
  }
457
485
 
458
- EXTRA_KEYWORDS = set(('join', 'split', 'reverse', 'transpose', 'width',
459
- 'length', 'tail', '<<', '>>', '<<<', '>>>', 'const',
460
- 'reg', 'par', 'seq', 'ASSERT', 'undefined', 'error',
461
- 'trace'))
486
+ EXTRA_KEYWORDS = {'join', 'split', 'reverse', 'transpose', 'width',
487
+ 'length', 'tail', '<<', '>>', '<<<', '>>>', 'const',
488
+ 'reg', 'par', 'seq', 'ASSERT', 'undefined', 'error',
489
+ 'trace'}
462
490
 
463
491
  def get_tokens_unprocessed(self, text):
464
492
  stack = ['root']
@@ -531,8 +559,7 @@ class LiterateLexer(Lexer):
531
559
  latex += line
532
560
  insertions.append((len(code),
533
561
  list(lxlexer.get_tokens_unprocessed(latex))))
534
- for item in do_insertions(insertions, self.baselexer.get_tokens_unprocessed(code)):
535
- yield item
562
+ yield from do_insertions(insertions, self.baselexer.get_tokens_unprocessed(code))
536
563
 
537
564
 
538
565
  class LiterateHaskellLexer(LiterateLexer):
@@ -677,10 +704,10 @@ class KokaLexer(RegexLexer):
677
704
  symbols = r'[$%&*+@!/\\^~=.:\-?|<>]+'
678
705
 
679
706
  # symbol boundary: an operator keyword should not be followed by any of these
680
- sboundary = '(?!'+symbols+')'
707
+ sboundary = '(?!' + symbols + ')'
681
708
 
682
709
  # name boundary: a keyword should not be followed by any of these
683
- boundary = '(?![\w/])'
710
+ boundary = r'(?![\w/])'
684
711
 
685
712
  # koka token abstractions
686
713
  tokenType = Name.Attribute
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for Haxe and related stuff.
7
7
 
8
- :copyright: Copyright 2006-2017 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
 
@@ -43,7 +43,7 @@ class HaxeLexer(ExtendedRegexLexer):
43
43
  typeid = r'_*[A-Z]\w*'
44
44
 
45
45
  # combined ident and dollar and idtype
46
- ident = r'(?:_*[a-z]\w*|_+[0-9]\w*|' + typeid + '|_+|\$\w+)'
46
+ ident = r'(?:_*[a-z]\w*|_+[0-9]\w*|' + typeid + r'|_+|\$\w+)'
47
47
 
48
48
  binop = (r'(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|'
49
49
  r'!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|'
@@ -182,7 +182,7 @@ class HaxeLexer(ExtendedRegexLexer):
182
182
  (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float),
183
183
  (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float),
184
184
  (r'[0-9]+\.[0-9]+', Number.Float),
185
- (r'[0-9]+\.(?!' + ident + '|\.\.)', Number.Float),
185
+ (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float),
186
186
 
187
187
  # Int
188
188
  (r'0x[0-9a-fA-F]+', Number.Hex),
@@ -219,7 +219,7 @@ class HaxeLexer(ExtendedRegexLexer):
219
219
  (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'preproc-expr-chain')),
220
220
  (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'preproc-expr-chain')),
221
221
  (r'[0-9]+\.[0-9]+', Number.Float, ('#pop', 'preproc-expr-chain')),
222
- (r'[0-9]+\.(?!' + ident + '|\.\.)', Number.Float, ('#pop', 'preproc-expr-chain')),
222
+ (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float, ('#pop', 'preproc-expr-chain')),
223
223
 
224
224
  # Int
225
225
  (r'0x[0-9a-fA-F]+', Number.Hex, ('#pop', 'preproc-expr-chain')),
@@ -456,7 +456,7 @@ class HaxeLexer(ExtendedRegexLexer):
456
456
  (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'expr-chain')),
457
457
  (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'expr-chain')),
458
458
  (r'[0-9]+\.[0-9]+', Number.Float, ('#pop', 'expr-chain')),
459
- (r'[0-9]+\.(?!' + ident + '|\.\.)', Number.Float, ('#pop', 'expr-chain')),
459
+ (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float, ('#pop', 'expr-chain')),
460
460
 
461
461
  # Int
462
462
  (r'0x[0-9a-fA-F]+', Number.Hex, ('#pop', 'expr-chain')),
@@ -711,7 +711,7 @@ class HaxeLexer(ExtendedRegexLexer):
711
711
  (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float, '#pop'),
712
712
  (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float, '#pop'),
713
713
  (r'[0-9]+\.[0-9]+', Number.Float, '#pop'),
714
- (r'[0-9]+\.(?!' + ident + '|\.\.)', Number.Float, '#pop'),
714
+ (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float, '#pop'),
715
715
 
716
716
  # Int
717
717
  (r'0x[0-9a-fA-F]+', Number.Hex, '#pop'),