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