pygments.rb 2.3.1 → 2.4.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 (324) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.rubocop.yml +7 -0
  4. data/CHANGELOG.adoc +4 -0
  5. data/README.adoc +1 -1
  6. data/bench.rb +1 -1
  7. data/lib/pygments/popen.rb +3 -7
  8. data/lib/pygments/version.rb +1 -1
  9. data/pygments.rb.gemspec +2 -2
  10. data/test/test_pygments.rb +0 -19
  11. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/AUTHORS +21 -1
  12. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/LICENSE +1 -1
  13. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/METADATA +19 -11
  14. data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +614 -0
  15. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/WHEEL +1 -1
  16. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/entry_points.txt +0 -1
  17. data/vendor/pygments-main/bin/pygmentize +1 -1
  18. data/vendor/pygments-main/pygments/__init__.py +20 -22
  19. data/vendor/pygments-main/pygments/__main__.py +1 -1
  20. data/vendor/pygments-main/pygments/cmdline.py +74 -8
  21. data/vendor/pygments-main/pygments/console.py +1 -1
  22. data/vendor/pygments-main/pygments/filter.py +1 -1
  23. data/vendor/pygments-main/pygments/filters/__init__.py +6 -3
  24. data/vendor/pygments-main/pygments/formatter.py +41 -11
  25. data/vendor/pygments-main/pygments/formatters/__init__.py +21 -16
  26. data/vendor/pygments-main/pygments/formatters/_mapping.py +5 -65
  27. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  28. data/vendor/pygments-main/pygments/formatters/groff.py +170 -0
  29. data/vendor/pygments-main/pygments/formatters/html.py +54 -32
  30. data/vendor/pygments-main/pygments/formatters/img.py +9 -5
  31. data/vendor/pygments-main/pygments/formatters/irc.py +6 -33
  32. data/vendor/pygments-main/pygments/formatters/latex.py +24 -14
  33. data/vendor/pygments-main/pygments/formatters/other.py +1 -1
  34. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +1 -1
  35. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
  36. data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
  37. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -3
  38. data/vendor/pygments-main/pygments/formatters/terminal256.py +2 -4
  39. data/vendor/pygments-main/pygments/lexer.py +101 -32
  40. data/vendor/pygments-main/pygments/lexers/__init__.py +50 -29
  41. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +103 -0
  42. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  43. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  44. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
  45. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +21 -6
  46. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +558 -0
  47. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +10 -0
  48. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  49. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +4932 -0
  50. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +11 -18
  51. data/vendor/pygments-main/pygments/lexers/_mapping.py +71 -82
  52. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  53. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +58 -4
  54. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  55. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +408 -1835
  56. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +70 -8
  57. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +666 -0
  58. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1609 -0
  59. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3 -3
  60. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +9 -18
  61. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +185 -94
  62. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  63. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  64. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  65. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  66. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  67. data/vendor/pygments-main/pygments/lexers/actionscript.py +15 -14
  68. data/vendor/pygments-main/pygments/lexers/ada.py +144 -0
  69. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  70. data/vendor/pygments-main/pygments/lexers/algebra.py +72 -9
  71. data/vendor/pygments-main/pygments/lexers/ambient.py +8 -7
  72. data/vendor/pygments-main/pygments/lexers/amdgpu.py +4 -3
  73. data/vendor/pygments-main/pygments/lexers/ampl.py +10 -8
  74. data/vendor/pygments-main/pygments/lexers/apdlexer.py +164 -20
  75. data/vendor/pygments-main/pygments/lexers/apl.py +6 -5
  76. data/vendor/pygments-main/pygments/lexers/archetype.py +23 -21
  77. data/vendor/pygments-main/pygments/lexers/arrow.py +10 -9
  78. data/vendor/pygments-main/pygments/lexers/arturo.py +250 -0
  79. data/vendor/pygments-main/pygments/lexers/asc.py +9 -5
  80. data/vendor/pygments-main/pygments/lexers/asm.py +68 -63
  81. data/vendor/pygments-main/pygments/lexers/automation.py +7 -5
  82. data/vendor/pygments-main/pygments/lexers/bare.py +20 -21
  83. data/vendor/pygments-main/pygments/lexers/basic.py +45 -41
  84. data/vendor/pygments-main/pygments/lexers/bdd.py +58 -0
  85. data/vendor/pygments-main/pygments/lexers/berry.py +99 -0
  86. data/vendor/pygments-main/pygments/lexers/bibtex.py +6 -6
  87. data/vendor/pygments-main/pygments/lexers/boa.py +4 -8
  88. data/vendor/pygments-main/pygments/lexers/business.py +18 -18
  89. data/vendor/pygments-main/pygments/lexers/c_cpp.py +80 -40
  90. data/vendor/pygments-main/pygments/lexers/c_like.py +21 -19
  91. data/vendor/pygments-main/pygments/lexers/capnproto.py +6 -8
  92. data/vendor/pygments-main/pygments/lexers/carbon.py +96 -0
  93. data/vendor/pygments-main/pygments/lexers/cddl.py +16 -33
  94. data/vendor/pygments-main/pygments/lexers/chapel.py +14 -9
  95. data/vendor/pygments-main/pygments/lexers/clean.py +3 -2
  96. data/vendor/pygments-main/pygments/lexers/comal.py +80 -0
  97. data/vendor/pygments-main/pygments/lexers/compiled.py +3 -2
  98. data/vendor/pygments-main/pygments/lexers/configs.py +235 -120
  99. data/vendor/pygments-main/pygments/lexers/console.py +5 -4
  100. data/vendor/pygments-main/pygments/lexers/cplint.py +44 -0
  101. data/vendor/pygments-main/pygments/lexers/crystal.py +22 -23
  102. data/vendor/pygments-main/pygments/lexers/csound.py +19 -17
  103. data/vendor/pygments-main/pygments/lexers/css.py +67 -159
  104. data/vendor/pygments-main/pygments/lexers/d.py +15 -12
  105. data/vendor/pygments-main/pygments/lexers/dalvik.py +14 -11
  106. data/vendor/pygments-main/pygments/lexers/data.py +119 -49
  107. data/vendor/pygments-main/pygments/lexers/dax.py +136 -0
  108. data/vendor/pygments-main/pygments/lexers/devicetree.py +9 -8
  109. data/vendor/pygments-main/pygments/lexers/diff.py +23 -19
  110. data/vendor/pygments-main/pygments/lexers/dotnet.py +216 -81
  111. data/vendor/pygments-main/pygments/lexers/dsls.py +86 -64
  112. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -15
  113. data/vendor/pygments-main/pygments/lexers/ecl.py +46 -38
  114. data/vendor/pygments-main/pygments/lexers/eiffel.py +15 -10
  115. data/vendor/pygments-main/pygments/lexers/elm.py +12 -8
  116. data/vendor/pygments-main/pygments/lexers/elpi.py +165 -0
  117. data/vendor/pygments-main/pygments/lexers/email.py +21 -39
  118. data/vendor/pygments-main/pygments/lexers/erlang.py +21 -22
  119. data/vendor/pygments-main/pygments/lexers/esoteric.py +28 -30
  120. data/vendor/pygments-main/pygments/lexers/ezhil.py +10 -9
  121. data/vendor/pygments-main/pygments/lexers/factor.py +104 -83
  122. data/vendor/pygments-main/pygments/lexers/fantom.py +31 -29
  123. data/vendor/pygments-main/pygments/lexers/felix.py +18 -14
  124. data/vendor/pygments-main/pygments/lexers/fift.py +67 -0
  125. data/vendor/pygments-main/pygments/lexers/floscript.py +7 -7
  126. data/vendor/pygments-main/pygments/lexers/forth.py +8 -6
  127. data/vendor/pygments-main/pygments/lexers/fortran.py +16 -11
  128. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
  129. data/vendor/pygments-main/pygments/lexers/freefem.py +7 -10
  130. data/vendor/pygments-main/pygments/lexers/func.py +108 -0
  131. data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
  132. data/vendor/pygments-main/pygments/lexers/futhark.py +12 -17
  133. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +1 -2
  134. data/vendor/pygments-main/pygments/lexers/gdscript.py +76 -233
  135. data/vendor/pygments-main/pygments/lexers/go.py +12 -14
  136. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +22 -26
  137. data/vendor/pygments-main/pygments/lexers/graph.py +36 -15
  138. data/vendor/pygments-main/pygments/lexers/graphics.py +37 -38
  139. data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -1
  140. data/vendor/pygments-main/pygments/lexers/gsql.py +39 -27
  141. data/vendor/pygments-main/pygments/lexers/haskell.py +73 -71
  142. data/vendor/pygments-main/pygments/lexers/haxe.py +13 -11
  143. data/vendor/pygments-main/pygments/lexers/hdl.py +31 -34
  144. data/vendor/pygments-main/pygments/lexers/hexdump.py +21 -21
  145. data/vendor/pygments-main/pygments/lexers/html.py +11 -19
  146. data/vendor/pygments-main/pygments/lexers/idl.py +10 -5
  147. data/vendor/pygments-main/pygments/lexers/igor.py +3 -2
  148. data/vendor/pygments-main/pygments/lexers/inferno.py +9 -8
  149. data/vendor/pygments-main/pygments/lexers/installers.py +39 -33
  150. data/vendor/pygments-main/pygments/lexers/int_fiction.py +35 -20
  151. data/vendor/pygments-main/pygments/lexers/iolang.py +9 -9
  152. data/vendor/pygments-main/pygments/lexers/j.py +20 -13
  153. data/vendor/pygments-main/pygments/lexers/javascript.py +183 -149
  154. data/vendor/pygments-main/pygments/lexers/jmespath.py +68 -0
  155. data/vendor/pygments-main/pygments/lexers/jslt.py +4 -3
  156. data/vendor/pygments-main/pygments/lexers/jsonnet.py +168 -0
  157. data/vendor/pygments-main/pygments/lexers/julia.py +44 -32
  158. data/vendor/pygments-main/pygments/lexers/jvm.py +161 -140
  159. data/vendor/pygments-main/pygments/lexers/kuin.py +93 -59
  160. data/vendor/pygments-main/pygments/lexers/lilypond.py +226 -0
  161. data/vendor/pygments-main/pygments/lexers/lisp.py +244 -107
  162. data/vendor/pygments-main/pygments/lexers/macaulay2.py +1739 -0
  163. data/vendor/pygments-main/pygments/lexers/make.py +21 -16
  164. data/vendor/pygments-main/pygments/lexers/markup.py +752 -11
  165. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  166. data/vendor/pygments-main/pygments/lexers/matlab.py +18 -3
  167. data/vendor/pygments-main/pygments/lexers/maxima.py +85 -0
  168. data/vendor/pygments-main/pygments/lexers/meson.py +10 -25
  169. data/vendor/pygments-main/pygments/lexers/mime.py +2 -2
  170. data/vendor/pygments-main/pygments/lexers/minecraft.py +394 -0
  171. data/vendor/pygments-main/pygments/lexers/mips.py +128 -0
  172. data/vendor/pygments-main/pygments/lexers/ml.py +9 -6
  173. data/vendor/pygments-main/pygments/lexers/modeling.py +12 -8
  174. data/vendor/pygments-main/pygments/lexers/modula2.py +3 -2
  175. data/vendor/pygments-main/pygments/lexers/monte.py +3 -2
  176. data/vendor/pygments-main/pygments/lexers/mosel.py +1 -1
  177. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
  178. data/vendor/pygments-main/pygments/lexers/nimrod.py +62 -20
  179. data/vendor/pygments-main/pygments/lexers/nit.py +3 -2
  180. data/vendor/pygments-main/pygments/lexers/nix.py +5 -5
  181. data/vendor/pygments-main/pygments/lexers/oberon.py +2 -2
  182. data/vendor/pygments-main/pygments/lexers/objective.py +6 -4
  183. data/vendor/pygments-main/pygments/lexers/ooc.py +3 -2
  184. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  185. data/vendor/pygments-main/pygments/lexers/parasail.py +3 -2
  186. data/vendor/pygments-main/pygments/lexers/parsers.py +23 -21
  187. data/vendor/pygments-main/pygments/lexers/pascal.py +196 -198
  188. data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
  189. data/vendor/pygments-main/pygments/lexers/perl.py +17 -15
  190. data/vendor/pygments-main/pygments/lexers/phix.py +364 -0
  191. data/vendor/pygments-main/pygments/lexers/php.py +35 -20
  192. data/vendor/pygments-main/pygments/lexers/pointless.py +3 -2
  193. data/vendor/pygments-main/pygments/lexers/pony.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/praat.py +41 -38
  195. data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
  196. data/vendor/pygments-main/pygments/lexers/prolog.py +7 -8
  197. data/vendor/pygments-main/pygments/lexers/promql.py +5 -12
  198. data/vendor/pygments-main/pygments/lexers/python.py +145 -119
  199. data/vendor/pygments-main/pygments/lexers/q.py +188 -0
  200. data/vendor/pygments-main/pygments/lexers/qlik.py +117 -0
  201. data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
  202. data/vendor/pygments-main/pygments/lexers/r.py +4 -4
  203. data/vendor/pygments-main/pygments/lexers/rdf.py +3 -3
  204. data/vendor/pygments-main/pygments/lexers/rebol.py +1 -12
  205. data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
  206. data/vendor/pygments-main/pygments/lexers/ride.py +3 -2
  207. data/vendor/pygments-main/pygments/lexers/rita.py +43 -0
  208. data/vendor/pygments-main/pygments/lexers/rnc.py +3 -2
  209. data/vendor/pygments-main/pygments/lexers/roboconf.py +3 -3
  210. data/vendor/pygments-main/pygments/lexers/robotframework.py +6 -5
  211. data/vendor/pygments-main/pygments/lexers/ruby.py +24 -24
  212. data/vendor/pygments-main/pygments/lexers/rust.py +3 -2
  213. data/vendor/pygments-main/pygments/lexers/sas.py +2 -2
  214. data/vendor/pygments-main/pygments/lexers/savi.py +170 -0
  215. data/vendor/pygments-main/pygments/lexers/scdoc.py +4 -7
  216. data/vendor/pygments-main/pygments/lexers/scripting.py +24 -21
  217. data/vendor/pygments-main/pygments/lexers/sgf.py +6 -6
  218. data/vendor/pygments-main/pygments/lexers/shell.py +29 -21
  219. data/vendor/pygments-main/pygments/lexers/sieve.py +14 -4
  220. data/vendor/pygments-main/pygments/lexers/slash.py +1 -1
  221. data/vendor/pygments-main/pygments/lexers/smalltalk.py +5 -3
  222. data/vendor/pygments-main/pygments/lexers/smithy.py +5 -6
  223. data/vendor/pygments-main/pygments/lexers/smv.py +1 -1
  224. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  225. data/vendor/pygments-main/pygments/lexers/solidity.py +3 -7
  226. data/vendor/pygments-main/pygments/lexers/sophia.py +103 -0
  227. data/vendor/pygments-main/pygments/lexers/special.py +2 -5
  228. data/vendor/pygments-main/pygments/lexers/spice.py +71 -0
  229. data/vendor/pygments-main/pygments/lexers/sql.py +212 -17
  230. data/vendor/pygments-main/pygments/lexers/srcinfo.py +62 -0
  231. data/vendor/pygments-main/pygments/lexers/stata.py +4 -3
  232. data/vendor/pygments-main/pygments/lexers/supercollider.py +4 -3
  233. data/vendor/pygments-main/pygments/lexers/tal.py +74 -0
  234. data/vendor/pygments-main/pygments/lexers/tcl.py +21 -16
  235. data/vendor/pygments-main/pygments/lexers/teal.py +9 -8
  236. data/vendor/pygments-main/pygments/lexers/templates.py +62 -29
  237. data/vendor/pygments-main/pygments/lexers/teraterm.py +12 -20
  238. data/vendor/pygments-main/pygments/lexers/testing.py +6 -2
  239. data/vendor/pygments-main/pygments/lexers/text.py +3 -2
  240. data/vendor/pygments-main/pygments/lexers/textedit.py +41 -7
  241. data/vendor/pygments-main/pygments/lexers/textfmts.py +7 -5
  242. data/vendor/pygments-main/pygments/lexers/theorem.py +42 -36
  243. data/vendor/pygments-main/pygments/lexers/thingsdb.py +2 -4
  244. data/vendor/pygments-main/pygments/lexers/tlb.py +57 -0
  245. data/vendor/pygments-main/pygments/lexers/tnt.py +3 -4
  246. data/vendor/pygments-main/pygments/lexers/trafficscript.py +2 -4
  247. data/vendor/pygments-main/pygments/lexers/typoscript.py +2 -3
  248. data/vendor/pygments-main/pygments/lexers/ul4.py +267 -0
  249. data/vendor/pygments-main/pygments/lexers/unicon.py +1 -1
  250. data/vendor/pygments-main/pygments/lexers/urbi.py +4 -4
  251. data/vendor/pygments-main/pygments/lexers/usd.py +2 -1
  252. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  253. data/vendor/pygments-main/pygments/lexers/verification.py +4 -3
  254. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  255. data/vendor/pygments-main/pygments/lexers/webassembly.py +5 -5
  256. data/vendor/pygments-main/pygments/lexers/webidl.py +2 -1
  257. data/vendor/pygments-main/pygments/lexers/webmisc.py +90 -71
  258. data/vendor/pygments-main/pygments/lexers/wgsl.py +407 -0
  259. data/vendor/pygments-main/pygments/lexers/whiley.py +2 -1
  260. data/vendor/pygments-main/pygments/lexers/wowtoc.py +120 -0
  261. data/vendor/pygments-main/pygments/lexers/wren.py +99 -0
  262. data/vendor/pygments-main/pygments/lexers/x10.py +5 -6
  263. data/vendor/pygments-main/pygments/lexers/xorg.py +3 -2
  264. data/vendor/pygments-main/pygments/lexers/yang.py +6 -5
  265. data/vendor/pygments-main/pygments/lexers/zig.py +3 -2
  266. data/vendor/pygments-main/pygments/modeline.py +1 -1
  267. data/vendor/pygments-main/pygments/plugin.py +28 -9
  268. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  269. data/vendor/pygments-main/pygments/scanner.py +2 -2
  270. data/vendor/pygments-main/pygments/sphinxext.py +63 -1
  271. data/vendor/pygments-main/pygments/style.py +7 -1
  272. data/vendor/pygments-main/pygments/styles/__init__.py +19 -5
  273. data/vendor/pygments-main/pygments/styles/abap.py +2 -2
  274. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  275. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  276. data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
  277. data/vendor/pygments-main/pygments/styles/autumn.py +1 -3
  278. data/vendor/pygments-main/pygments/styles/borland.py +1 -3
  279. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  280. data/vendor/pygments-main/pygments/styles/colorful.py +1 -3
  281. data/vendor/pygments-main/pygments/styles/default.py +13 -14
  282. data/vendor/pygments-main/pygments/styles/dracula.py +102 -0
  283. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  284. data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
  285. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +75 -0
  286. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  287. data/vendor/pygments-main/pygments/styles/gh_dark.py +107 -0
  288. data/vendor/pygments-main/pygments/styles/gruvbox.py +4 -2
  289. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  290. data/vendor/pygments-main/pygments/styles/inkpot.py +3 -2
  291. data/vendor/pygments-main/pygments/styles/lilypond.py +56 -0
  292. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -3
  293. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  294. data/vendor/pygments-main/pygments/styles/material.py +1 -2
  295. data/vendor/pygments-main/pygments/styles/monokai.py +3 -3
  296. data/vendor/pygments-main/pygments/styles/murphy.py +1 -3
  297. data/vendor/pygments-main/pygments/styles/native.py +11 -11
  298. data/vendor/pygments-main/pygments/styles/nord.py +150 -0
  299. data/vendor/pygments-main/pygments/styles/onedark.py +59 -0
  300. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -6
  301. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -6
  302. data/vendor/pygments-main/pygments/styles/pastie.py +1 -3
  303. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  304. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +3 -3
  305. data/vendor/pygments-main/pygments/styles/rrt.py +3 -2
  306. data/vendor/pygments-main/pygments/styles/sas.py +2 -4
  307. data/vendor/pygments-main/pygments/styles/solarized.py +1 -1
  308. data/vendor/pygments-main/pygments/styles/staroffice.py +26 -0
  309. data/vendor/pygments-main/pygments/styles/stata_dark.py +4 -6
  310. data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
  311. data/vendor/pygments-main/pygments/styles/tango.py +2 -3
  312. data/vendor/pygments-main/pygments/styles/trac.py +1 -3
  313. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  314. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  315. data/vendor/pygments-main/pygments/styles/xcode.py +1 -3
  316. data/vendor/pygments-main/pygments/styles/zenburn.py +4 -6
  317. data/vendor/pygments-main/pygments/token.py +2 -1
  318. data/vendor/pygments-main/pygments/unistring.py +4 -6
  319. data/vendor/pygments-main/pygments/util.py +27 -5
  320. metadata +59 -14
  321. data/vendor/pygments-main/Pygments-2.10.0.dist-info/RECORD +0 -524
  322. /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/INSTALLER +0 -0
  323. /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/REQUESTED +0 -0
  324. /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/top_level.txt +0 -0
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for ActionScript and MXML.
6
6
 
7
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -12,7 +12,7 @@ import re
12
12
 
13
13
  from pygments.lexer import RegexLexer, bygroups, using, this, words, default
14
14
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
15
- Number, Punctuation
15
+ Number, Punctuation, Whitespace
16
16
 
17
17
  __all__ = ['ActionScriptLexer', 'ActionScript3Lexer', 'MxmlLexer']
18
18
 
@@ -33,7 +33,7 @@ class ActionScriptLexer(RegexLexer):
33
33
  flags = re.DOTALL
34
34
  tokens = {
35
35
  'root': [
36
- (r'\s+', Text),
36
+ (r'\s+', Whitespace),
37
37
  (r'//.*?\n', Comment.Single),
38
38
  (r'/\*.*?\*/', Comment.Multiline),
39
39
  (r'/(\\\\|\\[^\\]|[^/\\\n])*/[gim]*', String.Regex),
@@ -123,6 +123,7 @@ class ActionScript3Lexer(RegexLexer):
123
123
  """
124
124
 
125
125
  name = 'ActionScript 3'
126
+ url = 'https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html'
126
127
  aliases = ['actionscript3', 'as3']
127
128
  filenames = ['*.as']
128
129
  mimetypes = ['application/x-actionscript3', 'text/x-actionscript3',
@@ -134,18 +135,18 @@ class ActionScript3Lexer(RegexLexer):
134
135
  flags = re.DOTALL | re.MULTILINE
135
136
  tokens = {
136
137
  'root': [
137
- (r'\s+', Text),
138
+ (r'\s+', Whitespace),
138
139
  (r'(function\s+)(' + identifier + r')(\s*)(\()',
139
140
  bygroups(Keyword.Declaration, Name.Function, Text, Operator),
140
141
  'funcparams'),
141
142
  (r'(var|const)(\s+)(' + identifier + r')(\s*)(:)(\s*)(' +
142
143
  typeidentifier + r')',
143
- bygroups(Keyword.Declaration, Text, Name, Text, Punctuation, Text,
144
+ bygroups(Keyword.Declaration, Whitespace, Name, Whitespace, Punctuation, Whitespace,
144
145
  Keyword.Type)),
145
146
  (r'(import|package)(\s+)((?:' + identifier + r'|\.)+)(\s*)',
146
- bygroups(Keyword, Text, Name.Namespace, Text)),
147
+ bygroups(Keyword, Whitespace, Name.Namespace, Whitespace)),
147
148
  (r'(new)(\s+)(' + typeidentifier + r')(\s*)(\()',
148
- bygroups(Keyword, Text, Keyword.Type, Text, Operator)),
149
+ bygroups(Keyword, Whitespace, Keyword.Type, Whitespace, Operator)),
149
150
  (r'//.*?\n', Comment.Single),
150
151
  (r'/\*.*?\*/', Comment.Multiline),
151
152
  (r'/(\\\\|\\[^\\]|[^\\\n])*/[gisx]*', String.Regex),
@@ -173,22 +174,22 @@ class ActionScript3Lexer(RegexLexer):
173
174
  (r'[~^*!%&<>|+=:;,/?\\{}\[\]().-]+', Operator),
174
175
  ],
175
176
  'funcparams': [
176
- (r'\s+', Text),
177
+ (r'\s+', Whitespace),
177
178
  (r'(\s*)(\.\.\.)?(' + identifier + r')(\s*)(:)(\s*)(' +
178
179
  typeidentifier + r'|\*)(\s*)',
179
- bygroups(Text, Punctuation, Name, Text, Operator, Text,
180
- Keyword.Type, Text), 'defval'),
180
+ bygroups(Whitespace, Punctuation, Name, Whitespace, Operator, Whitespace,
181
+ Keyword.Type, Whitespace), 'defval'),
181
182
  (r'\)', Operator, 'type')
182
183
  ],
183
184
  'type': [
184
185
  (r'(\s*)(:)(\s*)(' + typeidentifier + r'|\*)',
185
- bygroups(Text, Operator, Text, Keyword.Type), '#pop:2'),
186
+ bygroups(Whitespace, Operator, Whitespace, Keyword.Type), '#pop:2'),
186
187
  (r'\s+', Text, '#pop:2'),
187
188
  default('#pop:2')
188
189
  ],
189
190
  'defval': [
190
191
  (r'(=)(\s*)([^(),]+)(\s*)(,?)',
191
- bygroups(Operator, Text, using(this), Text, Operator), '#pop'),
192
+ bygroups(Operator, Whitespace, using(this), Whitespace, Operator), '#pop'),
192
193
  (r',', Operator, '#pop'),
193
194
  default('#pop')
194
195
  ]
@@ -231,12 +232,12 @@ class MxmlLexer(RegexLexer):
231
232
  ('-', Comment),
232
233
  ],
233
234
  'tag': [
234
- (r'\s+', Text),
235
+ (r'\s+', Whitespace),
235
236
  (r'[\w.:-]+\s*=', Name.Attribute, 'attr'),
236
237
  (r'/?\s*>', Name.Tag, '#pop'),
237
238
  ],
238
239
  'attr': [
239
- (r'\s+', Text),
240
+ (r'\s+', Whitespace),
240
241
  ('".*?"', String, '#pop'),
241
242
  ("'.*?'", String, '#pop'),
242
243
  (r'[^\s>]+', String, '#pop'),
@@ -0,0 +1,144 @@
1
+ """
2
+ pygments.lexers.ada
3
+ ~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexers for Ada family languages.
6
+
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ import re
12
+
13
+ from pygments.lexer import RegexLexer, include, bygroups, words, using, this, \
14
+ default
15
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
16
+ Number, Punctuation
17
+ from pygments.lexers._ada_builtins import KEYWORD_LIST, BUILTIN_LIST
18
+
19
+ __all__ = ['AdaLexer']
20
+
21
+
22
+ class AdaLexer(RegexLexer):
23
+ """
24
+ For Ada source code.
25
+
26
+ .. versionadded:: 1.3
27
+ """
28
+
29
+ name = 'Ada'
30
+ aliases = ['ada', 'ada95', 'ada2005']
31
+ filenames = ['*.adb', '*.ads', '*.ada']
32
+ mimetypes = ['text/x-ada']
33
+
34
+ flags = re.MULTILINE | re.IGNORECASE
35
+
36
+ tokens = {
37
+ 'root': [
38
+ (r'[^\S\n]+', Text),
39
+ (r'--.*?\n', Comment.Single),
40
+ (r'[^\S\n]+', Text),
41
+ (r'function|procedure|entry', Keyword.Declaration, 'subprogram'),
42
+ (r'(subtype|type)(\s+)(\w+)',
43
+ bygroups(Keyword.Declaration, Text, Keyword.Type), 'type_def'),
44
+ (r'task|protected', Keyword.Declaration),
45
+ (r'(subtype)(\s+)', bygroups(Keyword.Declaration, Text)),
46
+ (r'(end)(\s+)', bygroups(Keyword.Reserved, Text), 'end'),
47
+ (r'(pragma)(\s+)(\w+)', bygroups(Keyword.Reserved, Text,
48
+ Comment.Preproc)),
49
+ (r'(true|false|null)\b', Keyword.Constant),
50
+ # builtin types
51
+ (words(BUILTIN_LIST, suffix=r'\b'), Keyword.Type),
52
+ (r'(and(\s+then)?|in|mod|not|or(\s+else)|rem)\b', Operator.Word),
53
+ (r'generic|private', Keyword.Declaration),
54
+ (r'package', Keyword.Declaration, 'package'),
55
+ (r'array\b', Keyword.Reserved, 'array_def'),
56
+ (r'(with|use)(\s+)', bygroups(Keyword.Namespace, Text), 'import'),
57
+ (r'(\w+)(\s*)(:)(\s*)(constant)',
58
+ bygroups(Name.Constant, Text, Punctuation, Text,
59
+ Keyword.Reserved)),
60
+ (r'<<\w+>>', Name.Label),
61
+ (r'(\w+)(\s*)(:)(\s*)(declare|begin|loop|for|while)',
62
+ bygroups(Name.Label, Text, Punctuation, Text, Keyword.Reserved)),
63
+ # keywords
64
+ (words(KEYWORD_LIST, prefix=r'\b', suffix=r'\b'),
65
+ Keyword.Reserved),
66
+ (r'"[^"]*"', String),
67
+ include('attribute'),
68
+ include('numbers'),
69
+ (r"'[^']'", String.Character),
70
+ (r'(\w+)(\s*|[(,])', bygroups(Name, using(this))),
71
+ (r"(<>|=>|:=|@|[\[\]]|[()|:;,.'])", Punctuation),
72
+ (r'[*<>+=/&-]', Operator),
73
+ (r'\n+', Text),
74
+ ],
75
+ 'numbers': [
76
+ (r'[0-9_]+#[0-9a-f_\.]+#', Number.Hex),
77
+ (r'[0-9_]+\.[0-9_]*', Number.Float),
78
+ (r'[0-9_]+', Number.Integer),
79
+ ],
80
+ 'attribute': [
81
+ (r"(')(\w+)", bygroups(Punctuation, Name.Attribute)),
82
+ ],
83
+ 'subprogram': [
84
+ (r'\(', Punctuation, ('#pop', 'formal_part')),
85
+ (r';', Punctuation, '#pop'),
86
+ (r'is\b', Keyword.Reserved, '#pop'),
87
+ (r'"[^"]+"|\w+', Name.Function),
88
+ include('root'),
89
+ ],
90
+ 'end': [
91
+ ('(if|case|record|loop|select)', Keyword.Reserved),
92
+ (r'"[^"]+"|[\w.]+', Name.Function),
93
+ (r'\s+', Text),
94
+ (';', Punctuation, '#pop'),
95
+ ],
96
+ 'type_def': [
97
+ (r';', Punctuation, '#pop'),
98
+ (r'\(', Punctuation, 'formal_part'),
99
+ (r'\[', Punctuation, 'formal_part'),
100
+ (r'with|and|use', Keyword.Reserved),
101
+ (r'array\b', Keyword.Reserved, ('#pop', 'array_def')),
102
+ (r'record\b', Keyword.Reserved, ('record_def')),
103
+ (r'(null record)(;)', bygroups(Keyword.Reserved, Punctuation), '#pop'),
104
+ include('root'),
105
+ ],
106
+ 'array_def': [
107
+ (r';', Punctuation, '#pop'),
108
+ (r'(\w+)(\s+)(range)', bygroups(Keyword.Type, Text, Keyword.Reserved)),
109
+ include('root'),
110
+ ],
111
+ 'record_def': [
112
+ (r'end record', Keyword.Reserved, '#pop'),
113
+ include('root'),
114
+ ],
115
+ 'import': [
116
+ # TODO: use Name.Namespace if appropriate. This needs
117
+ # work to disinguish imports from aspects.
118
+ (r'[\w.]+', Name, '#pop'),
119
+ default('#pop'),
120
+ ],
121
+ 'formal_part': [
122
+ (r'\)', Punctuation, '#pop'),
123
+ (r'\]', Punctuation, '#pop'),
124
+ (r'\w+', Name.Variable),
125
+ (r',|:[^=]', Punctuation),
126
+ (r'(in|not|null|out|access)\b', Keyword.Reserved),
127
+ include('root'),
128
+ ],
129
+ 'package': [
130
+ ('body', Keyword.Declaration),
131
+ (r'is\s+new|renames', Keyword.Reserved),
132
+ ('is', Keyword.Reserved, '#pop'),
133
+ (';', Punctuation, '#pop'),
134
+ (r'\(', Punctuation, 'package_instantiation'),
135
+ (r'([\w.]+)', Name.Class),
136
+ include('root'),
137
+ ],
138
+ 'package_instantiation': [
139
+ (r'("[^"]+"|\w+)(\s+)(=>)', bygroups(Name.Variable, Text, Punctuation)),
140
+ (r'[\w.\'"]', Text),
141
+ (r'\)', Punctuation, '#pop'),
142
+ include('root'),
143
+ ],
144
+ }
@@ -4,7 +4,7 @@
4
4
 
5
5
  Just export lexer classes previously contained in this module.
6
6
 
7
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,26 +4,28 @@
4
4
 
5
5
  Lexers for computer algebra systems.
6
6
 
7
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
11
11
  import re
12
12
 
13
- from pygments.lexer import RegexLexer, bygroups, words
13
+ from pygments.lexer import Lexer, RegexLexer, bygroups, do_insertions, words
14
14
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
15
- Number, Punctuation
15
+ Number, Punctuation, Generic, Whitespace
16
16
 
17
- __all__ = ['GAPLexer', 'MathematicaLexer', 'MuPADLexer', 'BCLexer']
17
+ __all__ = ['GAPLexer', 'GAPConsoleLexer', 'MathematicaLexer', 'MuPADLexer',
18
+ 'BCLexer']
18
19
 
19
20
 
20
21
  class GAPLexer(RegexLexer):
21
22
  """
22
- For `GAP <http://www.gap-system.org>`_ source code.
23
+ For GAP source code.
23
24
 
24
25
  .. versionadded:: 2.0
25
26
  """
26
27
  name = 'GAP'
28
+ url = 'http://www.gap-system.org'
27
29
  aliases = ['gap']
28
30
  filenames = ['*.g', '*.gd', '*.gi', '*.gap']
29
31
 
@@ -87,13 +89,71 @@ class GAPLexer(RegexLexer):
87
89
  return min(score, 1.0)
88
90
 
89
91
 
92
+ class GAPConsoleLexer(Lexer):
93
+ """
94
+ For GAP console sessions. Modeled after JuliaConsoleLexer.
95
+
96
+ .. versionadded:: 2.14
97
+ """
98
+ name = 'GAP session'
99
+ aliases = ['gap-console', 'gap-repl']
100
+ filenames = ['*.tst']
101
+
102
+ def get_tokens_unprocessed(self, text):
103
+ gaplexer = GAPLexer(**self.options)
104
+ start = 0
105
+ curcode = ''
106
+ insertions = []
107
+ output = False
108
+ error = False
109
+
110
+ for line in text.splitlines(keepends=True):
111
+ if line.startswith('gap> ') or line.startswith('brk> '):
112
+ insertions.append((len(curcode), [(0, Generic.Prompt, line[:5])]))
113
+ curcode += line[5:]
114
+ output = False
115
+ error = False
116
+ elif not output and line.startswith('> '):
117
+ insertions.append((len(curcode), [(0, Generic.Prompt, line[:2])]))
118
+ curcode += line[2:]
119
+ else:
120
+ if curcode:
121
+ yield from do_insertions(
122
+ insertions, gaplexer.get_tokens_unprocessed(curcode))
123
+ curcode = ''
124
+ insertions = []
125
+ if line.startswith('Error, ') or error:
126
+ yield start, Generic.Error, line
127
+ error = True
128
+ else:
129
+ yield start, Generic.Output, line
130
+ output = True
131
+ start += len(line)
132
+
133
+ if curcode:
134
+ yield from do_insertions(
135
+ insertions, gaplexer.get_tokens_unprocessed(curcode))
136
+
137
+ # the following is needed to distinguish Scilab and GAP .tst files
138
+ def analyse_text(text):
139
+ # GAP prompts are a dead give away, although hypothetical;y a
140
+ # file in another language could be trying to compare a variable
141
+ # "gap" as in "gap> 0.1". But that this should happen at the
142
+ # start of a line seems unlikely...
143
+ if re.search(r"^gap> ", text):
144
+ return 0.9
145
+ else:
146
+ return 0.0
147
+
148
+
90
149
  class MathematicaLexer(RegexLexer):
91
150
  """
92
- Lexer for `Mathematica <http://www.wolfram.com/mathematica/>`_ source code.
151
+ Lexer for Mathematica source code.
93
152
 
94
153
  .. versionadded:: 2.0
95
154
  """
96
155
  name = 'Mathematica'
156
+ url = 'http://www.wolfram.com/mathematica/'
97
157
  aliases = ['mathematica', 'mma', 'nb']
98
158
  filenames = ['*.nb', '*.cdf', '*.nbp', '*.ma']
99
159
  mimetypes = ['application/mathematica',
@@ -136,12 +196,13 @@ class MathematicaLexer(RegexLexer):
136
196
 
137
197
  class MuPADLexer(RegexLexer):
138
198
  """
139
- A `MuPAD <http://www.mupad.com>`_ lexer.
199
+ A MuPAD lexer.
140
200
  Contributed by Christopher Creutzig <christopher@creutzig.de>.
141
201
 
142
202
  .. versionadded:: 0.8
143
203
  """
144
204
  name = 'MuPAD'
205
+ url = 'http://www.mupad.com'
145
206
  aliases = ['mupad']
146
207
  filenames = ['*.mu']
147
208
 
@@ -194,10 +255,11 @@ class MuPADLexer(RegexLexer):
194
255
  (?:::[a-zA-Z_#][\w#]*|`[^`]*`)*''', Name.Variable),
195
256
  (r'[0-9]+(?:\.[0-9]*)?(?:e[0-9]+)?', Number),
196
257
  (r'\.[0-9]+(?:e[0-9]+)?', Number),
258
+ (r'\s+', Whitespace),
197
259
  (r'.', Text)
198
260
  ],
199
261
  'comment': [
200
- (r'[^*/]', Comment.Multiline),
262
+ (r'[^/*]+', Comment.Multiline),
201
263
  (r'/\*', Comment.Multiline, '#push'),
202
264
  (r'\*/', Comment.Multiline, '#pop'),
203
265
  (r'[*/]', Comment.Multiline)
@@ -207,11 +269,12 @@ class MuPADLexer(RegexLexer):
207
269
 
208
270
  class BCLexer(RegexLexer):
209
271
  """
210
- A `BC <https://www.gnu.org/software/bc/>`_ lexer.
272
+ A BC lexer.
211
273
 
212
274
  .. versionadded:: 2.1
213
275
  """
214
276
  name = 'BC'
277
+ url = 'https://www.gnu.org/software/bc/'
215
278
  aliases = ['bc']
216
279
  filenames = ['*.bc']
217
280
 
@@ -4,26 +4,27 @@
4
4
 
5
5
  Lexers for AmbientTalk language.
6
6
 
7
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
11
11
  import re
12
12
 
13
- from pygments.lexer import RegexLexer, include, words
14
- from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
15
- Number, Punctuation
13
+ from pygments.lexer import RegexLexer, include, words, bygroups
14
+ from pygments.token import Comment, Operator, Keyword, Name, String, \
15
+ Number, Punctuation, Whitespace
16
16
 
17
17
  __all__ = ['AmbientTalkLexer']
18
18
 
19
19
 
20
20
  class AmbientTalkLexer(RegexLexer):
21
21
  """
22
- Lexer for `AmbientTalk <https://code.google.com/p/ambienttalk>`_ source code.
22
+ Lexer for AmbientTalk source code.
23
23
 
24
24
  .. versionadded:: 2.0
25
25
  """
26
26
  name = 'AmbientTalk'
27
+ url = 'https://code.google.com/p/ambienttalk'
27
28
  filenames = ['*.at']
28
29
  aliases = ['ambienttalk', 'ambienttalk/2', 'at']
29
30
  mimetypes = ['text/x-ambienttalk']
@@ -36,7 +37,7 @@ class AmbientTalkLexer(RegexLexer):
36
37
  'mirroredBy:', 'is:'))
37
38
  tokens = {
38
39
  'root': [
39
- (r'\s+', Text),
40
+ (r'\s+', Whitespace),
40
41
  (r'//.*?\n', Comment.Single),
41
42
  (r'/\*.*?\*/', Comment.Multiline),
42
43
  (r'(def|deftype|import|alias|exclude)\b', Keyword),
@@ -69,7 +70,7 @@ class AmbientTalkLexer(RegexLexer):
69
70
  ],
70
71
  'arglist': [
71
72
  (r'\|', Punctuation, '#pop'),
72
- (r'\s*(,)\s*', Punctuation),
73
+ (r'(\s*)(,)(\s*)', bygroups(Whitespace, Punctuation, Whitespace)),
73
74
  (r'[a-zA-Z_]\w*', Name.Variable),
74
75
  ],
75
76
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for the AMDGPU ISA assembly.
6
6
 
7
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -35,11 +35,12 @@ class AMDGPULexer(RegexLexer):
35
35
  (r'(([a-z_0-9])*:([a-z_0-9])*)', Name.Attribute),
36
36
  (r'(\[|\]|\(|\)|,|\:|\&)', Text),
37
37
  (r'([;#]|//).*?\n', Comment.Single),
38
- (r'((s_)?(ds|buffer|flat|image)_[a-z0-9_]+)', Keyword.Reserved),
38
+ (r'((s_)?(scratch|ds|buffer|flat|image)_[a-z0-9_]+)', Keyword.Reserved),
39
39
  (r'(_lo|_hi)', Name.Variable),
40
40
  (r'(vmcnt|lgkmcnt|expcnt)', Name.Attribute),
41
+ (r'(attr[0-9].[a-z])', Name.Attribute),
41
42
  (words((
42
- 'op', 'vaddr', 'vdata', 'soffset', 'srsrc', 'format',
43
+ 'op', 'vaddr', 'vdata', 'off', 'soffset', 'srsrc', 'format',
43
44
  'offset', 'offen', 'idxen', 'glc', 'dlc', 'slc', 'tfe', 'lds',
44
45
  'lit', 'unorm'), suffix=r'\b'), Name.Attribute),
45
46
  (r'(label_[a-z0-9]+)', Keyword),
@@ -4,31 +4,32 @@
4
4
 
5
5
  Lexers for the AMPL language.
6
6
 
7
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
11
11
  from pygments.lexer import RegexLexer, bygroups, using, this, words
12
12
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
13
- Number, Punctuation
13
+ Number, Punctuation, Whitespace
14
14
 
15
15
  __all__ = ['AmplLexer']
16
16
 
17
17
 
18
18
  class AmplLexer(RegexLexer):
19
19
  """
20
- For `AMPL <http://ampl.com/>`_ source code.
20
+ For AMPL source code.
21
21
 
22
22
  .. versionadded:: 2.2
23
23
  """
24
24
  name = 'Ampl'
25
+ url = 'http://ampl.com/'
25
26
  aliases = ['ampl']
26
27
  filenames = ['*.run']
27
28
 
28
29
  tokens = {
29
30
  'root': [
30
31
  (r'\n', Text),
31
- (r'\s+', Text.Whitespace),
32
+ (r'\s+', Whitespace),
32
33
  (r'#.*?\n', Comment.Single),
33
34
  (r'/[*](.|\n)*?[*]/', Comment.Multiline),
34
35
  (words((
@@ -53,12 +54,13 @@ class AmplLexer(RegexLexer):
53
54
  bygroups(Name.Variable, Punctuation, Keyword.Reserved)),
54
55
  (r'(set|param|var|arc|minimize|maximize|subject to|s\.t\.|subj to|'
55
56
  r'node|table|suffix|read table|write table)(\s+)(\w+)',
56
- bygroups(Keyword.Declaration, Text, Name.Variable)),
57
+ bygroups(Keyword.Declaration, Whitespace, Name.Variable)),
57
58
  (r'(param)(\s*)(:)(\s*)(\w+)(\s*)(:)(\s*)((\w|\s)+)',
58
- bygroups(Keyword.Declaration, Text, Punctuation, Text,
59
- Name.Variable, Text, Punctuation, Text, Name.Variable)),
59
+ bygroups(Keyword.Declaration, Whitespace, Punctuation, Whitespace,
60
+ Name.Variable, Whitespace, Punctuation, Whitespace, Name.Variable)),
60
61
  (r'(let|fix|unfix)(\s*)((?:\{.*\})?)(\s*)(\w+)',
61
- bygroups(Keyword.Declaration, Text, using(this), Text, Name.Variable)),
62
+ bygroups(Keyword.Declaration, Whitespace, using(this), Whitespace,
63
+ Name.Variable)),
62
64
  (words((
63
65
  'abs', 'acos', 'acosh', 'alias', 'asin', 'asinh', 'atan', 'atan2',
64
66
  'atanh', 'ceil', 'ctime', 'cos', 'exp', 'floor', 'log', 'log10',