pygments.rb 2.4.1 → 4.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 (699) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +8 -8
  3. data/.github/workflows/release.yml +5 -5
  4. data/.gitignore +2 -0
  5. data/.rubocop.yml +1 -2
  6. data/CHANGELOG.adoc +15 -1
  7. data/README.adoc +2 -2
  8. data/Rakefile +1 -1
  9. data/bench.rb +3 -3
  10. data/lib/pygments/version.rb +1 -1
  11. data/pygments.rb.gemspec +3 -3
  12. data/test/test_pygments.rb +0 -4
  13. data/vendor/pygments-main/bin/pygmentize +1 -1
  14. data/vendor/pygments-main/pygments/__init__.py +2 -2
  15. data/vendor/pygments-main/pygments/__main__.py +1 -1
  16. data/vendor/pygments-main/pygments/__pycache__/__init__.cpython-313.pyc +0 -0
  17. data/vendor/pygments-main/pygments/__pycache__/__main__.cpython-313.pyc +0 -0
  18. data/vendor/pygments-main/pygments/__pycache__/cmdline.cpython-313.pyc +0 -0
  19. data/vendor/pygments-main/pygments/__pycache__/console.cpython-313.pyc +0 -0
  20. data/vendor/pygments-main/pygments/__pycache__/filter.cpython-313.pyc +0 -0
  21. data/vendor/pygments-main/pygments/__pycache__/formatter.cpython-313.pyc +0 -0
  22. data/vendor/pygments-main/pygments/__pycache__/lexer.cpython-313.pyc +0 -0
  23. data/vendor/pygments-main/pygments/__pycache__/modeline.cpython-313.pyc +0 -0
  24. data/vendor/pygments-main/pygments/__pycache__/plugin.cpython-313.pyc +0 -0
  25. data/vendor/pygments-main/pygments/__pycache__/regexopt.cpython-313.pyc +0 -0
  26. data/vendor/pygments-main/pygments/__pycache__/scanner.cpython-313.pyc +0 -0
  27. data/vendor/pygments-main/pygments/__pycache__/sphinxext.cpython-313.pyc +0 -0
  28. data/vendor/pygments-main/pygments/__pycache__/style.cpython-313.pyc +0 -0
  29. data/vendor/pygments-main/pygments/__pycache__/token.cpython-313.pyc +0 -0
  30. data/vendor/pygments-main/pygments/__pycache__/unistring.cpython-313.pyc +0 -0
  31. data/vendor/pygments-main/pygments/__pycache__/util.cpython-313.pyc +0 -0
  32. data/vendor/pygments-main/pygments/cmdline.py +12 -12
  33. data/vendor/pygments-main/pygments/console.py +5 -5
  34. data/vendor/pygments-main/pygments/filter.py +2 -3
  35. data/vendor/pygments-main/pygments/filters/__init__.py +4 -4
  36. data/vendor/pygments-main/pygments/filters/__pycache__/__init__.cpython-313.pyc +0 -0
  37. data/vendor/pygments-main/pygments/formatter.py +6 -1
  38. data/vendor/pygments-main/pygments/formatters/__init__.py +7 -8
  39. data/vendor/pygments-main/pygments/formatters/__pycache__/__init__.cpython-313.pyc +0 -0
  40. data/vendor/pygments-main/pygments/formatters/__pycache__/_mapping.cpython-313.pyc +0 -0
  41. data/vendor/pygments-main/pygments/formatters/__pycache__/bbcode.cpython-313.pyc +0 -0
  42. data/vendor/pygments-main/pygments/formatters/__pycache__/groff.cpython-313.pyc +0 -0
  43. data/vendor/pygments-main/pygments/formatters/__pycache__/html.cpython-313.pyc +0 -0
  44. data/vendor/pygments-main/pygments/formatters/__pycache__/img.cpython-313.pyc +0 -0
  45. data/vendor/pygments-main/pygments/formatters/__pycache__/irc.cpython-313.pyc +0 -0
  46. data/vendor/pygments-main/pygments/formatters/__pycache__/latex.cpython-313.pyc +0 -0
  47. data/vendor/pygments-main/pygments/formatters/__pycache__/other.cpython-313.pyc +0 -0
  48. data/vendor/pygments-main/pygments/formatters/__pycache__/pangomarkup.cpython-313.pyc +0 -0
  49. data/vendor/pygments-main/pygments/formatters/__pycache__/rtf.cpython-313.pyc +0 -0
  50. data/vendor/pygments-main/pygments/formatters/__pycache__/svg.cpython-313.pyc +0 -0
  51. data/vendor/pygments-main/pygments/formatters/__pycache__/terminal.cpython-313.pyc +0 -0
  52. data/vendor/pygments-main/pygments/formatters/__pycache__/terminal256.cpython-313.pyc +0 -0
  53. data/vendor/pygments-main/pygments/formatters/bbcode.py +2 -2
  54. data/vendor/pygments-main/pygments/formatters/groff.py +3 -3
  55. data/vendor/pygments-main/pygments/formatters/html.py +47 -41
  56. data/vendor/pygments-main/pygments/formatters/img.py +53 -12
  57. data/vendor/pygments-main/pygments/formatters/irc.py +1 -1
  58. data/vendor/pygments-main/pygments/formatters/latex.py +24 -27
  59. data/vendor/pygments-main/pygments/formatters/other.py +3 -4
  60. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +2 -2
  61. data/vendor/pygments-main/pygments/formatters/rtf.py +228 -25
  62. data/vendor/pygments-main/pygments/formatters/svg.py +17 -20
  63. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  64. data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
  65. data/vendor/pygments-main/pygments/lexer.py +51 -33
  66. data/vendor/pygments-main/pygments/lexers/__init__.py +12 -12
  67. data/vendor/pygments-main/pygments/lexers/__pycache__/__init__.cpython-313.pyc +0 -0
  68. data/vendor/pygments-main/pygments/lexers/__pycache__/_ada_builtins.cpython-313.pyc +0 -0
  69. data/vendor/pygments-main/pygments/lexers/__pycache__/_asy_builtins.cpython-313.pyc +0 -0
  70. data/vendor/pygments-main/pygments/lexers/__pycache__/_cl_builtins.cpython-313.pyc +0 -0
  71. data/vendor/pygments-main/pygments/lexers/__pycache__/_cocoa_builtins.cpython-313.pyc +0 -0
  72. data/vendor/pygments-main/pygments/lexers/__pycache__/_csound_builtins.cpython-313.pyc +0 -0
  73. data/vendor/pygments-main/pygments/lexers/__pycache__/_css_builtins.cpython-313.pyc +0 -0
  74. data/vendor/pygments-main/pygments/lexers/__pycache__/_googlesql_builtins.cpython-313.pyc +0 -0
  75. data/vendor/pygments-main/pygments/lexers/__pycache__/_julia_builtins.cpython-313.pyc +0 -0
  76. data/vendor/pygments-main/pygments/lexers/__pycache__/_lasso_builtins.cpython-313.pyc +0 -0
  77. data/vendor/pygments-main/pygments/lexers/__pycache__/_lilypond_builtins.cpython-313.pyc +0 -0
  78. data/vendor/pygments-main/pygments/lexers/__pycache__/_lua_builtins.cpython-313.pyc +0 -0
  79. data/vendor/pygments-main/pygments/lexers/__pycache__/_luau_builtins.cpython-313.pyc +0 -0
  80. data/vendor/pygments-main/pygments/lexers/__pycache__/_mapping.cpython-313.pyc +0 -0
  81. data/vendor/pygments-main/pygments/lexers/__pycache__/_mql_builtins.cpython-313.pyc +0 -0
  82. data/vendor/pygments-main/pygments/lexers/__pycache__/_mysql_builtins.cpython-313.pyc +0 -0
  83. data/vendor/pygments-main/pygments/lexers/__pycache__/_openedge_builtins.cpython-313.pyc +0 -0
  84. data/vendor/pygments-main/pygments/lexers/__pycache__/_php_builtins.cpython-313.pyc +0 -0
  85. data/vendor/pygments-main/pygments/lexers/__pycache__/_postgres_builtins.cpython-313.pyc +0 -0
  86. data/vendor/pygments-main/pygments/lexers/__pycache__/_qlik_builtins.cpython-313.pyc +0 -0
  87. data/vendor/pygments-main/pygments/lexers/__pycache__/_scheme_builtins.cpython-313.pyc +0 -0
  88. data/vendor/pygments-main/pygments/lexers/__pycache__/_scilab_builtins.cpython-313.pyc +0 -0
  89. data/vendor/pygments-main/pygments/lexers/__pycache__/_sourcemod_builtins.cpython-313.pyc +0 -0
  90. data/vendor/pygments-main/pygments/lexers/__pycache__/_sql_builtins.cpython-313.pyc +0 -0
  91. data/vendor/pygments-main/pygments/lexers/__pycache__/_stan_builtins.cpython-313.pyc +0 -0
  92. data/vendor/pygments-main/pygments/lexers/__pycache__/_stata_builtins.cpython-313.pyc +0 -0
  93. data/vendor/pygments-main/pygments/lexers/__pycache__/_tsql_builtins.cpython-313.pyc +0 -0
  94. data/vendor/pygments-main/pygments/lexers/__pycache__/_usd_builtins.cpython-313.pyc +0 -0
  95. data/vendor/pygments-main/pygments/lexers/__pycache__/_vbscript_builtins.cpython-313.pyc +0 -0
  96. data/vendor/pygments-main/pygments/lexers/__pycache__/_vim_builtins.cpython-313.pyc +0 -0
  97. data/vendor/pygments-main/pygments/lexers/__pycache__/actionscript.cpython-313.pyc +0 -0
  98. data/vendor/pygments-main/pygments/lexers/__pycache__/ada.cpython-313.pyc +0 -0
  99. data/vendor/pygments-main/pygments/lexers/__pycache__/agile.cpython-313.pyc +0 -0
  100. data/vendor/pygments-main/pygments/lexers/__pycache__/algebra.cpython-313.pyc +0 -0
  101. data/vendor/pygments-main/pygments/lexers/__pycache__/ambient.cpython-313.pyc +0 -0
  102. data/vendor/pygments-main/pygments/lexers/__pycache__/amdgpu.cpython-313.pyc +0 -0
  103. data/vendor/pygments-main/pygments/lexers/__pycache__/ampl.cpython-313.pyc +0 -0
  104. data/vendor/pygments-main/pygments/lexers/__pycache__/apdlexer.cpython-313.pyc +0 -0
  105. data/vendor/pygments-main/pygments/lexers/__pycache__/apl.cpython-313.pyc +0 -0
  106. data/vendor/pygments-main/pygments/lexers/__pycache__/archetype.cpython-313.pyc +0 -0
  107. data/vendor/pygments-main/pygments/lexers/__pycache__/arrow.cpython-313.pyc +0 -0
  108. data/vendor/pygments-main/pygments/lexers/__pycache__/arturo.cpython-313.pyc +0 -0
  109. data/vendor/pygments-main/pygments/lexers/__pycache__/asc.cpython-313.pyc +0 -0
  110. data/vendor/pygments-main/pygments/lexers/__pycache__/asm.cpython-313.pyc +0 -0
  111. data/vendor/pygments-main/pygments/lexers/__pycache__/asn1.cpython-313.pyc +0 -0
  112. data/vendor/pygments-main/pygments/lexers/__pycache__/automation.cpython-313.pyc +0 -0
  113. data/vendor/pygments-main/pygments/lexers/__pycache__/bare.cpython-313.pyc +0 -0
  114. data/vendor/pygments-main/pygments/lexers/__pycache__/basic.cpython-313.pyc +0 -0
  115. data/vendor/pygments-main/pygments/lexers/__pycache__/bdd.cpython-313.pyc +0 -0
  116. data/vendor/pygments-main/pygments/lexers/__pycache__/berry.cpython-313.pyc +0 -0
  117. data/vendor/pygments-main/pygments/lexers/__pycache__/bibtex.cpython-313.pyc +0 -0
  118. data/vendor/pygments-main/pygments/lexers/__pycache__/blueprint.cpython-313.pyc +0 -0
  119. data/vendor/pygments-main/pygments/lexers/__pycache__/boa.cpython-313.pyc +0 -0
  120. data/vendor/pygments-main/pygments/lexers/__pycache__/bqn.cpython-313.pyc +0 -0
  121. data/vendor/pygments-main/pygments/lexers/__pycache__/business.cpython-313.pyc +0 -0
  122. data/vendor/pygments-main/pygments/lexers/__pycache__/c_cpp.cpython-313.pyc +0 -0
  123. data/vendor/pygments-main/pygments/lexers/__pycache__/c_like.cpython-313.pyc +0 -0
  124. data/vendor/pygments-main/pygments/lexers/__pycache__/capnproto.cpython-313.pyc +0 -0
  125. data/vendor/pygments-main/pygments/lexers/__pycache__/carbon.cpython-313.pyc +0 -0
  126. data/vendor/pygments-main/pygments/lexers/__pycache__/cddl.cpython-313.pyc +0 -0
  127. data/vendor/pygments-main/pygments/lexers/__pycache__/chapel.cpython-313.pyc +0 -0
  128. data/vendor/pygments-main/pygments/lexers/__pycache__/clean.cpython-313.pyc +0 -0
  129. data/vendor/pygments-main/pygments/lexers/__pycache__/codeql.cpython-313.pyc +0 -0
  130. data/vendor/pygments-main/pygments/lexers/__pycache__/comal.cpython-313.pyc +0 -0
  131. data/vendor/pygments-main/pygments/lexers/__pycache__/compiled.cpython-313.pyc +0 -0
  132. data/vendor/pygments-main/pygments/lexers/__pycache__/configs.cpython-313.pyc +0 -0
  133. data/vendor/pygments-main/pygments/lexers/__pycache__/console.cpython-313.pyc +0 -0
  134. data/vendor/pygments-main/pygments/lexers/__pycache__/cplint.cpython-313.pyc +0 -0
  135. data/vendor/pygments-main/pygments/lexers/__pycache__/crystal.cpython-313.pyc +0 -0
  136. data/vendor/pygments-main/pygments/lexers/__pycache__/csound.cpython-313.pyc +0 -0
  137. data/vendor/pygments-main/pygments/lexers/__pycache__/css.cpython-313.pyc +0 -0
  138. data/vendor/pygments-main/pygments/lexers/__pycache__/d.cpython-313.pyc +0 -0
  139. data/vendor/pygments-main/pygments/lexers/__pycache__/dalvik.cpython-313.pyc +0 -0
  140. data/vendor/pygments-main/pygments/lexers/__pycache__/data.cpython-313.pyc +0 -0
  141. data/vendor/pygments-main/pygments/lexers/__pycache__/dax.cpython-313.pyc +0 -0
  142. data/vendor/pygments-main/pygments/lexers/__pycache__/devicetree.cpython-313.pyc +0 -0
  143. data/vendor/pygments-main/pygments/lexers/__pycache__/diff.cpython-313.pyc +0 -0
  144. data/vendor/pygments-main/pygments/lexers/__pycache__/dns.cpython-313.pyc +0 -0
  145. data/vendor/pygments-main/pygments/lexers/__pycache__/dotnet.cpython-313.pyc +0 -0
  146. data/vendor/pygments-main/pygments/lexers/__pycache__/dsls.cpython-313.pyc +0 -0
  147. data/vendor/pygments-main/pygments/lexers/__pycache__/dylan.cpython-313.pyc +0 -0
  148. data/vendor/pygments-main/pygments/lexers/__pycache__/ecl.cpython-313.pyc +0 -0
  149. data/vendor/pygments-main/pygments/lexers/__pycache__/eiffel.cpython-313.pyc +0 -0
  150. data/vendor/pygments-main/pygments/lexers/__pycache__/elm.cpython-313.pyc +0 -0
  151. data/vendor/pygments-main/pygments/lexers/__pycache__/elpi.cpython-313.pyc +0 -0
  152. data/vendor/pygments-main/pygments/lexers/__pycache__/email.cpython-313.pyc +0 -0
  153. data/vendor/pygments-main/pygments/lexers/__pycache__/erlang.cpython-313.pyc +0 -0
  154. data/vendor/pygments-main/pygments/lexers/__pycache__/esoteric.cpython-313.pyc +0 -0
  155. data/vendor/pygments-main/pygments/lexers/__pycache__/ezhil.cpython-313.pyc +0 -0
  156. data/vendor/pygments-main/pygments/lexers/__pycache__/factor.cpython-313.pyc +0 -0
  157. data/vendor/pygments-main/pygments/lexers/__pycache__/fantom.cpython-313.pyc +0 -0
  158. data/vendor/pygments-main/pygments/lexers/__pycache__/felix.cpython-313.pyc +0 -0
  159. data/vendor/pygments-main/pygments/lexers/__pycache__/fift.cpython-313.pyc +0 -0
  160. data/vendor/pygments-main/pygments/lexers/__pycache__/floscript.cpython-313.pyc +0 -0
  161. data/vendor/pygments-main/pygments/lexers/__pycache__/forth.cpython-313.pyc +0 -0
  162. data/vendor/pygments-main/pygments/lexers/__pycache__/fortran.cpython-313.pyc +0 -0
  163. data/vendor/pygments-main/pygments/lexers/__pycache__/foxpro.cpython-313.pyc +0 -0
  164. data/vendor/pygments-main/pygments/lexers/__pycache__/freefem.cpython-313.pyc +0 -0
  165. data/vendor/pygments-main/pygments/lexers/__pycache__/func.cpython-313.pyc +0 -0
  166. data/vendor/pygments-main/pygments/lexers/__pycache__/functional.cpython-313.pyc +0 -0
  167. data/vendor/pygments-main/pygments/lexers/__pycache__/futhark.cpython-313.pyc +0 -0
  168. data/vendor/pygments-main/pygments/lexers/__pycache__/gcodelexer.cpython-313.pyc +0 -0
  169. data/vendor/pygments-main/pygments/lexers/__pycache__/gdscript.cpython-313.pyc +0 -0
  170. data/vendor/pygments-main/pygments/lexers/__pycache__/gleam.cpython-313.pyc +0 -0
  171. data/vendor/pygments-main/pygments/lexers/__pycache__/go.cpython-313.pyc +0 -0
  172. data/vendor/pygments-main/pygments/lexers/__pycache__/grammar_notation.cpython-313.pyc +0 -0
  173. data/vendor/pygments-main/pygments/lexers/__pycache__/graph.cpython-313.pyc +0 -0
  174. data/vendor/pygments-main/pygments/lexers/__pycache__/graphics.cpython-313.pyc +0 -0
  175. data/vendor/pygments-main/pygments/lexers/__pycache__/graphql.cpython-313.pyc +0 -0
  176. data/vendor/pygments-main/pygments/lexers/__pycache__/graphviz.cpython-313.pyc +0 -0
  177. data/vendor/pygments-main/pygments/lexers/__pycache__/gsql.cpython-313.pyc +0 -0
  178. data/vendor/pygments-main/pygments/lexers/__pycache__/hare.cpython-313.pyc +0 -0
  179. data/vendor/pygments-main/pygments/lexers/__pycache__/haskell.cpython-313.pyc +0 -0
  180. data/vendor/pygments-main/pygments/lexers/__pycache__/haxe.cpython-313.pyc +0 -0
  181. data/vendor/pygments-main/pygments/lexers/__pycache__/hdl.cpython-313.pyc +0 -0
  182. data/vendor/pygments-main/pygments/lexers/__pycache__/hexdump.cpython-313.pyc +0 -0
  183. data/vendor/pygments-main/pygments/lexers/__pycache__/html.cpython-313.pyc +0 -0
  184. data/vendor/pygments-main/pygments/lexers/__pycache__/idl.cpython-313.pyc +0 -0
  185. data/vendor/pygments-main/pygments/lexers/__pycache__/igor.cpython-313.pyc +0 -0
  186. data/vendor/pygments-main/pygments/lexers/__pycache__/inferno.cpython-313.pyc +0 -0
  187. data/vendor/pygments-main/pygments/lexers/__pycache__/installers.cpython-313.pyc +0 -0
  188. data/vendor/pygments-main/pygments/lexers/__pycache__/int_fiction.cpython-313.pyc +0 -0
  189. data/vendor/pygments-main/pygments/lexers/__pycache__/iolang.cpython-313.pyc +0 -0
  190. data/vendor/pygments-main/pygments/lexers/__pycache__/j.cpython-313.pyc +0 -0
  191. data/vendor/pygments-main/pygments/lexers/__pycache__/javascript.cpython-313.pyc +0 -0
  192. data/vendor/pygments-main/pygments/lexers/__pycache__/jmespath.cpython-313.pyc +0 -0
  193. data/vendor/pygments-main/pygments/lexers/__pycache__/jslt.cpython-313.pyc +0 -0
  194. data/vendor/pygments-main/pygments/lexers/__pycache__/json5.cpython-313.pyc +0 -0
  195. data/vendor/pygments-main/pygments/lexers/__pycache__/jsonnet.cpython-313.pyc +0 -0
  196. data/vendor/pygments-main/pygments/lexers/__pycache__/jsx.cpython-313.pyc +0 -0
  197. data/vendor/pygments-main/pygments/lexers/__pycache__/julia.cpython-313.pyc +0 -0
  198. data/vendor/pygments-main/pygments/lexers/__pycache__/jvm.cpython-313.pyc +0 -0
  199. data/vendor/pygments-main/pygments/lexers/__pycache__/kuin.cpython-313.pyc +0 -0
  200. data/vendor/pygments-main/pygments/lexers/__pycache__/kusto.cpython-313.pyc +0 -0
  201. data/vendor/pygments-main/pygments/lexers/__pycache__/ldap.cpython-313.pyc +0 -0
  202. data/vendor/pygments-main/pygments/lexers/__pycache__/lean.cpython-313.pyc +0 -0
  203. data/vendor/pygments-main/pygments/lexers/__pycache__/lilypond.cpython-313.pyc +0 -0
  204. data/vendor/pygments-main/pygments/lexers/__pycache__/lisp.cpython-313.pyc +0 -0
  205. data/vendor/pygments-main/pygments/lexers/__pycache__/macaulay2.cpython-313.pyc +0 -0
  206. data/vendor/pygments-main/pygments/lexers/__pycache__/make.cpython-313.pyc +0 -0
  207. data/vendor/pygments-main/pygments/lexers/__pycache__/maple.cpython-313.pyc +0 -0
  208. data/vendor/pygments-main/pygments/lexers/__pycache__/markup.cpython-313.pyc +0 -0
  209. data/vendor/pygments-main/pygments/lexers/__pycache__/math.cpython-313.pyc +0 -0
  210. data/vendor/pygments-main/pygments/lexers/__pycache__/matlab.cpython-313.pyc +0 -0
  211. data/vendor/pygments-main/pygments/lexers/__pycache__/maxima.cpython-313.pyc +0 -0
  212. data/vendor/pygments-main/pygments/lexers/__pycache__/meson.cpython-313.pyc +0 -0
  213. data/vendor/pygments-main/pygments/lexers/__pycache__/mime.cpython-313.pyc +0 -0
  214. data/vendor/pygments-main/pygments/lexers/__pycache__/minecraft.cpython-313.pyc +0 -0
  215. data/vendor/pygments-main/pygments/lexers/__pycache__/mips.cpython-313.pyc +0 -0
  216. data/vendor/pygments-main/pygments/lexers/__pycache__/ml.cpython-313.pyc +0 -0
  217. data/vendor/pygments-main/pygments/lexers/__pycache__/modeling.cpython-313.pyc +0 -0
  218. data/vendor/pygments-main/pygments/lexers/__pycache__/modula2.cpython-313.pyc +0 -0
  219. data/vendor/pygments-main/pygments/lexers/__pycache__/mojo.cpython-313.pyc +0 -0
  220. data/vendor/pygments-main/pygments/lexers/__pycache__/monte.cpython-313.pyc +0 -0
  221. data/vendor/pygments-main/pygments/lexers/__pycache__/mosel.cpython-313.pyc +0 -0
  222. data/vendor/pygments-main/pygments/lexers/__pycache__/ncl.cpython-313.pyc +0 -0
  223. data/vendor/pygments-main/pygments/lexers/__pycache__/nimrod.cpython-313.pyc +0 -0
  224. data/vendor/pygments-main/pygments/lexers/__pycache__/nit.cpython-313.pyc +0 -0
  225. data/vendor/pygments-main/pygments/lexers/__pycache__/nix.cpython-313.pyc +0 -0
  226. data/vendor/pygments-main/pygments/lexers/__pycache__/numbair.cpython-313.pyc +0 -0
  227. data/vendor/pygments-main/pygments/lexers/__pycache__/oberon.cpython-313.pyc +0 -0
  228. data/vendor/pygments-main/pygments/lexers/__pycache__/objective.cpython-313.pyc +0 -0
  229. data/vendor/pygments-main/pygments/lexers/__pycache__/ooc.cpython-313.pyc +0 -0
  230. data/vendor/pygments-main/pygments/lexers/__pycache__/openscad.cpython-313.pyc +0 -0
  231. data/vendor/pygments-main/pygments/lexers/__pycache__/other.cpython-313.pyc +0 -0
  232. data/vendor/pygments-main/pygments/lexers/__pycache__/parasail.cpython-313.pyc +0 -0
  233. data/vendor/pygments-main/pygments/lexers/__pycache__/parsers.cpython-313.pyc +0 -0
  234. data/vendor/pygments-main/pygments/lexers/__pycache__/pascal.cpython-313.pyc +0 -0
  235. data/vendor/pygments-main/pygments/lexers/__pycache__/pawn.cpython-313.pyc +0 -0
  236. data/vendor/pygments-main/pygments/lexers/__pycache__/pddl.cpython-313.pyc +0 -0
  237. data/vendor/pygments-main/pygments/lexers/__pycache__/perl.cpython-313.pyc +0 -0
  238. data/vendor/pygments-main/pygments/lexers/__pycache__/phix.cpython-313.pyc +0 -0
  239. data/vendor/pygments-main/pygments/lexers/__pycache__/php.cpython-313.pyc +0 -0
  240. data/vendor/pygments-main/pygments/lexers/__pycache__/pointless.cpython-313.pyc +0 -0
  241. data/vendor/pygments-main/pygments/lexers/__pycache__/pony.cpython-313.pyc +0 -0
  242. data/vendor/pygments-main/pygments/lexers/__pycache__/praat.cpython-313.pyc +0 -0
  243. data/vendor/pygments-main/pygments/lexers/__pycache__/procfile.cpython-313.pyc +0 -0
  244. data/vendor/pygments-main/pygments/lexers/__pycache__/prolog.cpython-313.pyc +0 -0
  245. data/vendor/pygments-main/pygments/lexers/__pycache__/promql.cpython-313.pyc +0 -0
  246. data/vendor/pygments-main/pygments/lexers/__pycache__/prql.cpython-313.pyc +0 -0
  247. data/vendor/pygments-main/pygments/lexers/__pycache__/ptx.cpython-313.pyc +0 -0
  248. data/vendor/pygments-main/pygments/lexers/__pycache__/python.cpython-313.pyc +0 -0
  249. data/vendor/pygments-main/pygments/lexers/__pycache__/q.cpython-313.pyc +0 -0
  250. data/vendor/pygments-main/pygments/lexers/__pycache__/qlik.cpython-313.pyc +0 -0
  251. data/vendor/pygments-main/pygments/lexers/__pycache__/qvt.cpython-313.pyc +0 -0
  252. data/vendor/pygments-main/pygments/lexers/__pycache__/r.cpython-313.pyc +0 -0
  253. data/vendor/pygments-main/pygments/lexers/__pycache__/rdf.cpython-313.pyc +0 -0
  254. data/vendor/pygments-main/pygments/lexers/__pycache__/rebol.cpython-313.pyc +0 -0
  255. data/vendor/pygments-main/pygments/lexers/__pycache__/rego.cpython-313.pyc +0 -0
  256. data/vendor/pygments-main/pygments/lexers/__pycache__/resource.cpython-313.pyc +0 -0
  257. data/vendor/pygments-main/pygments/lexers/__pycache__/ride.cpython-313.pyc +0 -0
  258. data/vendor/pygments-main/pygments/lexers/__pycache__/rita.cpython-313.pyc +0 -0
  259. data/vendor/pygments-main/pygments/lexers/__pycache__/rnc.cpython-313.pyc +0 -0
  260. data/vendor/pygments-main/pygments/lexers/__pycache__/roboconf.cpython-313.pyc +0 -0
  261. data/vendor/pygments-main/pygments/lexers/__pycache__/robotframework.cpython-313.pyc +0 -0
  262. data/vendor/pygments-main/pygments/lexers/__pycache__/ruby.cpython-313.pyc +0 -0
  263. data/vendor/pygments-main/pygments/lexers/__pycache__/rust.cpython-313.pyc +0 -0
  264. data/vendor/pygments-main/pygments/lexers/__pycache__/sas.cpython-313.pyc +0 -0
  265. data/vendor/pygments-main/pygments/lexers/__pycache__/savi.cpython-313.pyc +0 -0
  266. data/vendor/pygments-main/pygments/lexers/__pycache__/scdoc.cpython-313.pyc +0 -0
  267. data/vendor/pygments-main/pygments/lexers/__pycache__/scripting.cpython-313.pyc +0 -0
  268. data/vendor/pygments-main/pygments/lexers/__pycache__/sgf.cpython-313.pyc +0 -0
  269. data/vendor/pygments-main/pygments/lexers/__pycache__/shell.cpython-313.pyc +0 -0
  270. data/vendor/pygments-main/pygments/lexers/__pycache__/sieve.cpython-313.pyc +0 -0
  271. data/vendor/pygments-main/pygments/lexers/__pycache__/slash.cpython-313.pyc +0 -0
  272. data/vendor/pygments-main/pygments/lexers/__pycache__/smalltalk.cpython-313.pyc +0 -0
  273. data/vendor/pygments-main/pygments/lexers/__pycache__/smithy.cpython-313.pyc +0 -0
  274. data/vendor/pygments-main/pygments/lexers/__pycache__/smv.cpython-313.pyc +0 -0
  275. data/vendor/pygments-main/pygments/lexers/__pycache__/snobol.cpython-313.pyc +0 -0
  276. data/vendor/pygments-main/pygments/lexers/__pycache__/solidity.cpython-313.pyc +0 -0
  277. data/vendor/pygments-main/pygments/lexers/__pycache__/soong.cpython-313.pyc +0 -0
  278. data/vendor/pygments-main/pygments/lexers/__pycache__/sophia.cpython-313.pyc +0 -0
  279. data/vendor/pygments-main/pygments/lexers/__pycache__/special.cpython-313.pyc +0 -0
  280. data/vendor/pygments-main/pygments/lexers/__pycache__/spice.cpython-313.pyc +0 -0
  281. data/vendor/pygments-main/pygments/lexers/__pycache__/sql.cpython-313.pyc +0 -0
  282. data/vendor/pygments-main/pygments/lexers/__pycache__/srcinfo.cpython-313.pyc +0 -0
  283. data/vendor/pygments-main/pygments/lexers/__pycache__/stata.cpython-313.pyc +0 -0
  284. data/vendor/pygments-main/pygments/lexers/__pycache__/supercollider.cpython-313.pyc +0 -0
  285. data/vendor/pygments-main/pygments/lexers/__pycache__/tablegen.cpython-313.pyc +0 -0
  286. data/vendor/pygments-main/pygments/lexers/__pycache__/tact.cpython-313.pyc +0 -0
  287. data/vendor/pygments-main/pygments/lexers/__pycache__/tal.cpython-313.pyc +0 -0
  288. data/vendor/pygments-main/pygments/lexers/__pycache__/tcl.cpython-313.pyc +0 -0
  289. data/vendor/pygments-main/pygments/lexers/__pycache__/teal.cpython-313.pyc +0 -0
  290. data/vendor/pygments-main/pygments/lexers/__pycache__/templates.cpython-313.pyc +0 -0
  291. data/vendor/pygments-main/pygments/lexers/__pycache__/teraterm.cpython-313.pyc +0 -0
  292. data/vendor/pygments-main/pygments/lexers/__pycache__/testing.cpython-313.pyc +0 -0
  293. data/vendor/pygments-main/pygments/lexers/__pycache__/text.cpython-313.pyc +0 -0
  294. data/vendor/pygments-main/pygments/lexers/__pycache__/textedit.cpython-313.pyc +0 -0
  295. data/vendor/pygments-main/pygments/lexers/__pycache__/textfmts.cpython-313.pyc +0 -0
  296. data/vendor/pygments-main/pygments/lexers/__pycache__/theorem.cpython-313.pyc +0 -0
  297. data/vendor/pygments-main/pygments/lexers/__pycache__/thingsdb.cpython-313.pyc +0 -0
  298. data/vendor/pygments-main/pygments/lexers/__pycache__/tlb.cpython-313.pyc +0 -0
  299. data/vendor/pygments-main/pygments/lexers/__pycache__/tls.cpython-313.pyc +0 -0
  300. data/vendor/pygments-main/pygments/lexers/__pycache__/tnt.cpython-313.pyc +0 -0
  301. data/vendor/pygments-main/pygments/lexers/__pycache__/trafficscript.cpython-313.pyc +0 -0
  302. data/vendor/pygments-main/pygments/lexers/__pycache__/typoscript.cpython-313.pyc +0 -0
  303. data/vendor/pygments-main/pygments/lexers/__pycache__/typst.cpython-313.pyc +0 -0
  304. data/vendor/pygments-main/pygments/lexers/__pycache__/ul4.cpython-313.pyc +0 -0
  305. data/vendor/pygments-main/pygments/lexers/__pycache__/unicon.cpython-313.pyc +0 -0
  306. data/vendor/pygments-main/pygments/lexers/__pycache__/urbi.cpython-313.pyc +0 -0
  307. data/vendor/pygments-main/pygments/lexers/__pycache__/usd.cpython-313.pyc +0 -0
  308. data/vendor/pygments-main/pygments/lexers/__pycache__/varnish.cpython-313.pyc +0 -0
  309. data/vendor/pygments-main/pygments/lexers/__pycache__/verification.cpython-313.pyc +0 -0
  310. data/vendor/pygments-main/pygments/lexers/__pycache__/verifpal.cpython-313.pyc +0 -0
  311. data/vendor/pygments-main/pygments/lexers/__pycache__/vip.cpython-313.pyc +0 -0
  312. data/vendor/pygments-main/pygments/lexers/__pycache__/vyper.cpython-313.pyc +0 -0
  313. data/vendor/pygments-main/pygments/lexers/__pycache__/web.cpython-313.pyc +0 -0
  314. data/vendor/pygments-main/pygments/lexers/__pycache__/webassembly.cpython-313.pyc +0 -0
  315. data/vendor/pygments-main/pygments/lexers/__pycache__/webidl.cpython-313.pyc +0 -0
  316. data/vendor/pygments-main/pygments/lexers/__pycache__/webmisc.cpython-313.pyc +0 -0
  317. data/vendor/pygments-main/pygments/lexers/__pycache__/wgsl.cpython-313.pyc +0 -0
  318. data/vendor/pygments-main/pygments/lexers/__pycache__/whiley.cpython-313.pyc +0 -0
  319. data/vendor/pygments-main/pygments/lexers/__pycache__/wowtoc.cpython-313.pyc +0 -0
  320. data/vendor/pygments-main/pygments/lexers/__pycache__/wren.cpython-313.pyc +0 -0
  321. data/vendor/pygments-main/pygments/lexers/__pycache__/x10.cpython-313.pyc +0 -0
  322. data/vendor/pygments-main/pygments/lexers/__pycache__/xorg.cpython-313.pyc +0 -0
  323. data/vendor/pygments-main/pygments/lexers/__pycache__/yang.cpython-313.pyc +0 -0
  324. data/vendor/pygments-main/pygments/lexers/__pycache__/yara.cpython-313.pyc +0 -0
  325. data/vendor/pygments-main/pygments/lexers/__pycache__/zig.cpython-313.pyc +0 -0
  326. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +1 -1
  327. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  328. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  329. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
  330. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
  331. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +1 -1
  332. data/vendor/pygments-main/pygments/lexers/_googlesql_builtins.py +918 -0
  333. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +1 -1
  334. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  335. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +1 -1
  336. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +5 -5
  337. data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +62 -0
  338. data/vendor/pygments-main/pygments/lexers/_mapping.py +56 -13
  339. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  340. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +3 -3
  341. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  342. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +3 -3
  343. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +5 -5
  344. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +1 -1
  345. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1 -1
  346. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +4 -4
  347. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +3 -3
  348. data/vendor/pygments-main/pygments/lexers/_sql_builtins.py +106 -0
  349. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -1
  350. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  351. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  352. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  353. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  354. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  355. data/vendor/pygments-main/pygments/lexers/actionscript.py +6 -8
  356. data/vendor/pygments-main/pygments/lexers/ada.py +3 -3
  357. data/vendor/pygments-main/pygments/lexers/agile.py +3 -1
  358. data/vendor/pygments-main/pygments/lexers/algebra.py +10 -13
  359. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  360. data/vendor/pygments-main/pygments/lexers/amdgpu.py +3 -3
  361. data/vendor/pygments-main/pygments/lexers/ampl.py +2 -3
  362. data/vendor/pygments-main/pygments/lexers/apdlexer.py +4 -3
  363. data/vendor/pygments-main/pygments/lexers/apl.py +2 -3
  364. data/vendor/pygments-main/pygments/lexers/archetype.py +8 -12
  365. data/vendor/pygments-main/pygments/lexers/arrow.py +2 -3
  366. data/vendor/pygments-main/pygments/lexers/arturo.py +2 -3
  367. data/vendor/pygments-main/pygments/lexers/asc.py +4 -4
  368. data/vendor/pygments-main/pygments/lexers/asm.py +48 -34
  369. data/vendor/pygments-main/pygments/lexers/asn1.py +178 -0
  370. data/vendor/pygments-main/pygments/lexers/automation.py +6 -8
  371. data/vendor/pygments-main/pygments/lexers/bare.py +2 -3
  372. data/vendor/pygments-main/pygments/lexers/basic.py +48 -57
  373. data/vendor/pygments-main/pygments/lexers/bdd.py +3 -4
  374. data/vendor/pygments-main/pygments/lexers/berry.py +4 -4
  375. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -5
  376. data/vendor/pygments-main/pygments/lexers/blueprint.py +173 -0
  377. data/vendor/pygments-main/pygments/lexers/boa.py +4 -4
  378. data/vendor/pygments-main/pygments/lexers/bqn.py +112 -0
  379. data/vendor/pygments-main/pygments/lexers/business.py +21 -22
  380. data/vendor/pygments-main/pygments/lexers/c_cpp.py +9 -4
  381. data/vendor/pygments-main/pygments/lexers/c_like.py +99 -27
  382. data/vendor/pygments-main/pygments/lexers/capnproto.py +2 -3
  383. data/vendor/pygments-main/pygments/lexers/carbon.py +10 -11
  384. data/vendor/pygments-main/pygments/lexers/cddl.py +8 -9
  385. data/vendor/pygments-main/pygments/lexers/chapel.py +2 -3
  386. data/vendor/pygments-main/pygments/lexers/clean.py +2 -1
  387. data/vendor/pygments-main/pygments/lexers/codeql.py +80 -0
  388. data/vendor/pygments-main/pygments/lexers/comal.py +2 -1
  389. data/vendor/pygments-main/pygments/lexers/compiled.py +2 -1
  390. data/vendor/pygments-main/pygments/lexers/configs.py +353 -110
  391. data/vendor/pygments-main/pygments/lexers/console.py +5 -5
  392. data/vendor/pygments-main/pygments/lexers/cplint.py +2 -3
  393. data/vendor/pygments-main/pygments/lexers/crystal.py +4 -5
  394. data/vendor/pygments-main/pygments/lexers/csound.py +6 -8
  395. data/vendor/pygments-main/pygments/lexers/css.py +6 -6
  396. data/vendor/pygments-main/pygments/lexers/d.py +4 -3
  397. data/vendor/pygments-main/pygments/lexers/dalvik.py +2 -3
  398. data/vendor/pygments-main/pygments/lexers/data.py +8 -12
  399. data/vendor/pygments-main/pygments/lexers/dax.py +2 -3
  400. data/vendor/pygments-main/pygments/lexers/devicetree.py +2 -3
  401. data/vendor/pygments-main/pygments/lexers/diff.py +7 -6
  402. data/vendor/pygments-main/pygments/lexers/dns.py +109 -0
  403. data/vendor/pygments-main/pygments/lexers/dotnet.py +58 -26
  404. data/vendor/pygments-main/pygments/lexers/dsls.py +24 -35
  405. data/vendor/pygments-main/pygments/lexers/dylan.py +9 -17
  406. data/vendor/pygments-main/pygments/lexers/ecl.py +2 -3
  407. data/vendor/pygments-main/pygments/lexers/eiffel.py +3 -4
  408. data/vendor/pygments-main/pygments/lexers/elm.py +3 -4
  409. data/vendor/pygments-main/pygments/lexers/elpi.py +45 -35
  410. data/vendor/pygments-main/pygments/lexers/email.py +3 -3
  411. data/vendor/pygments-main/pygments/lexers/erlang.py +22 -24
  412. data/vendor/pygments-main/pygments/lexers/esoteric.py +11 -12
  413. data/vendor/pygments-main/pygments/lexers/ezhil.py +2 -3
  414. data/vendor/pygments-main/pygments/lexers/factor.py +2 -3
  415. data/vendor/pygments-main/pygments/lexers/fantom.py +3 -3
  416. data/vendor/pygments-main/pygments/lexers/felix.py +9 -10
  417. data/vendor/pygments-main/pygments/lexers/fift.py +2 -1
  418. data/vendor/pygments-main/pygments/lexers/floscript.py +2 -3
  419. data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
  420. data/vendor/pygments-main/pygments/lexers/fortran.py +6 -7
  421. data/vendor/pygments-main/pygments/lexers/foxpro.py +3 -3
  422. data/vendor/pygments-main/pygments/lexers/freefem.py +2 -3
  423. data/vendor/pygments-main/pygments/lexers/func.py +3 -1
  424. data/vendor/pygments-main/pygments/lexers/functional.py +2 -1
  425. data/vendor/pygments-main/pygments/lexers/futhark.py +6 -7
  426. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +3 -3
  427. data/vendor/pygments-main/pygments/lexers/gdscript.py +2 -1
  428. data/vendor/pygments-main/pygments/lexers/gleam.py +74 -0
  429. data/vendor/pygments-main/pygments/lexers/go.py +3 -4
  430. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +6 -9
  431. data/vendor/pygments-main/pygments/lexers/graph.py +12 -9
  432. data/vendor/pygments-main/pygments/lexers/graphics.py +13 -17
  433. data/vendor/pygments-main/pygments/lexers/graphql.py +176 -0
  434. data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -3
  435. data/vendor/pygments-main/pygments/lexers/gsql.py +2 -3
  436. data/vendor/pygments-main/pygments/lexers/hare.py +73 -0
  437. data/vendor/pygments-main/pygments/lexers/haskell.py +29 -34
  438. data/vendor/pygments-main/pygments/lexers/haxe.py +3 -5
  439. data/vendor/pygments-main/pygments/lexers/hdl.py +8 -7
  440. data/vendor/pygments-main/pygments/lexers/hexdump.py +3 -3
  441. data/vendor/pygments-main/pygments/lexers/html.py +79 -14
  442. data/vendor/pygments-main/pygments/lexers/idl.py +2 -3
  443. data/vendor/pygments-main/pygments/lexers/igor.py +306 -291
  444. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
  445. data/vendor/pygments-main/pygments/lexers/installers.py +58 -33
  446. data/vendor/pygments-main/pygments/lexers/int_fiction.py +150 -162
  447. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
  448. data/vendor/pygments-main/pygments/lexers/j.py +2 -3
  449. data/vendor/pygments-main/pygments/lexers/javascript.py +22 -19
  450. data/vendor/pygments-main/pygments/lexers/jmespath.py +2 -1
  451. data/vendor/pygments-main/pygments/lexers/jslt.py +2 -3
  452. data/vendor/pygments-main/pygments/lexers/json5.py +83 -0
  453. data/vendor/pygments-main/pygments/lexers/jsonnet.py +4 -3
  454. data/vendor/pygments-main/pygments/lexers/jsx.py +100 -0
  455. data/vendor/pygments-main/pygments/lexers/julia.py +5 -5
  456. data/vendor/pygments-main/pygments/lexers/jvm.py +99 -117
  457. data/vendor/pygments-main/pygments/lexers/kuin.py +2 -3
  458. data/vendor/pygments-main/pygments/lexers/kusto.py +93 -0
  459. data/vendor/pygments-main/pygments/lexers/ldap.py +155 -0
  460. data/vendor/pygments-main/pygments/lexers/lean.py +241 -0
  461. data/vendor/pygments-main/pygments/lexers/lilypond.py +2 -3
  462. data/vendor/pygments-main/pygments/lexers/lisp.py +373 -65
  463. data/vendor/pygments-main/pygments/lexers/macaulay2.py +175 -100
  464. data/vendor/pygments-main/pygments/lexers/make.py +7 -5
  465. data/vendor/pygments-main/pygments/lexers/maple.py +291 -0
  466. data/vendor/pygments-main/pygments/lexers/markup.py +242 -91
  467. data/vendor/pygments-main/pygments/lexers/math.py +2 -1
  468. data/vendor/pygments-main/pygments/lexers/matlab.py +14 -15
  469. data/vendor/pygments-main/pygments/lexers/maxima.py +2 -3
  470. data/vendor/pygments-main/pygments/lexers/meson.py +2 -3
  471. data/vendor/pygments-main/pygments/lexers/mime.py +4 -4
  472. data/vendor/pygments-main/pygments/lexers/minecraft.py +24 -27
  473. data/vendor/pygments-main/pygments/lexers/mips.py +3 -1
  474. data/vendor/pygments-main/pygments/lexers/ml.py +59 -61
  475. data/vendor/pygments-main/pygments/lexers/modeling.py +19 -22
  476. data/vendor/pygments-main/pygments/lexers/modula2.py +2 -3
  477. data/vendor/pygments-main/pygments/lexers/mojo.py +707 -0
  478. data/vendor/pygments-main/pygments/lexers/monte.py +2 -3
  479. data/vendor/pygments-main/pygments/lexers/mosel.py +3 -3
  480. data/vendor/pygments-main/pygments/lexers/ncl.py +4 -3
  481. data/vendor/pygments-main/pygments/lexers/nimrod.py +7 -8
  482. data/vendor/pygments-main/pygments/lexers/nit.py +2 -3
  483. data/vendor/pygments-main/pygments/lexers/nix.py +40 -31
  484. data/vendor/pygments-main/pygments/lexers/numbair.py +63 -0
  485. data/vendor/pygments-main/pygments/lexers/oberon.py +3 -3
  486. data/vendor/pygments-main/pygments/lexers/objective.py +25 -17
  487. data/vendor/pygments-main/pygments/lexers/ooc.py +4 -5
  488. data/vendor/pygments-main/pygments/lexers/openscad.py +96 -0
  489. data/vendor/pygments-main/pygments/lexers/other.py +2 -1
  490. data/vendor/pygments-main/pygments/lexers/parasail.py +2 -3
  491. data/vendor/pygments-main/pygments/lexers/parsers.py +41 -44
  492. data/vendor/pygments-main/pygments/lexers/pascal.py +6 -3
  493. data/vendor/pygments-main/pygments/lexers/pawn.py +5 -5
  494. data/vendor/pygments-main/pygments/lexers/pddl.py +82 -0
  495. data/vendor/pygments-main/pygments/lexers/perl.py +3 -3
  496. data/vendor/pygments-main/pygments/lexers/phix.py +2 -3
  497. data/vendor/pygments-main/pygments/lexers/php.py +4 -5
  498. data/vendor/pygments-main/pygments/lexers/pointless.py +2 -3
  499. data/vendor/pygments-main/pygments/lexers/pony.py +3 -3
  500. data/vendor/pygments-main/pygments/lexers/praat.py +2 -3
  501. data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
  502. data/vendor/pygments-main/pygments/lexers/prolog.py +23 -9
  503. data/vendor/pygments-main/pygments/lexers/promql.py +2 -1
  504. data/vendor/pygments-main/pygments/lexers/prql.py +251 -0
  505. data/vendor/pygments-main/pygments/lexers/ptx.py +119 -0
  506. data/vendor/pygments-main/pygments/lexers/python.py +49 -46
  507. data/vendor/pygments-main/pygments/lexers/q.py +5 -6
  508. data/vendor/pygments-main/pygments/lexers/qlik.py +3 -3
  509. data/vendor/pygments-main/pygments/lexers/qvt.py +5 -3
  510. data/vendor/pygments-main/pygments/lexers/r.py +14 -8
  511. data/vendor/pygments-main/pygments/lexers/rdf.py +21 -15
  512. data/vendor/pygments-main/pygments/lexers/rebol.py +7 -7
  513. data/vendor/pygments-main/pygments/lexers/rego.py +57 -0
  514. data/vendor/pygments-main/pygments/lexers/resource.py +5 -6
  515. data/vendor/pygments-main/pygments/lexers/ride.py +4 -5
  516. data/vendor/pygments-main/pygments/lexers/rita.py +2 -3
  517. data/vendor/pygments-main/pygments/lexers/rnc.py +2 -3
  518. data/vendor/pygments-main/pygments/lexers/roboconf.py +5 -5
  519. data/vendor/pygments-main/pygments/lexers/robotframework.py +2 -3
  520. data/vendor/pygments-main/pygments/lexers/ruby.py +8 -13
  521. data/vendor/pygments-main/pygments/lexers/rust.py +9 -10
  522. data/vendor/pygments-main/pygments/lexers/sas.py +3 -3
  523. data/vendor/pygments-main/pygments/lexers/savi.py +131 -130
  524. data/vendor/pygments-main/pygments/lexers/scdoc.py +13 -7
  525. data/vendor/pygments-main/pygments/lexers/scripting.py +385 -55
  526. data/vendor/pygments-main/pygments/lexers/sgf.py +2 -3
  527. data/vendor/pygments-main/pygments/lexers/shell.py +111 -129
  528. data/vendor/pygments-main/pygments/lexers/sieve.py +3 -3
  529. data/vendor/pygments-main/pygments/lexers/slash.py +4 -5
  530. data/vendor/pygments-main/pygments/lexers/smalltalk.py +3 -5
  531. data/vendor/pygments-main/pygments/lexers/smithy.py +2 -3
  532. data/vendor/pygments-main/pygments/lexers/smv.py +3 -3
  533. data/vendor/pygments-main/pygments/lexers/snobol.py +3 -3
  534. data/vendor/pygments-main/pygments/lexers/solidity.py +3 -3
  535. data/vendor/pygments-main/pygments/lexers/soong.py +78 -0
  536. data/vendor/pygments-main/pygments/lexers/sophia.py +3 -4
  537. data/vendor/pygments-main/pygments/lexers/special.py +9 -3
  538. data/vendor/pygments-main/pygments/lexers/spice.py +15 -16
  539. data/vendor/pygments-main/pygments/lexers/sql.py +224 -142
  540. data/vendor/pygments-main/pygments/lexers/srcinfo.py +3 -3
  541. data/vendor/pygments-main/pygments/lexers/stata.py +2 -3
  542. data/vendor/pygments-main/pygments/lexers/supercollider.py +2 -3
  543. data/vendor/pygments-main/pygments/lexers/tablegen.py +177 -0
  544. data/vendor/pygments-main/pygments/lexers/tact.py +303 -0
  545. data/vendor/pygments-main/pygments/lexers/tal.py +13 -10
  546. data/vendor/pygments-main/pygments/lexers/tcl.py +2 -3
  547. data/vendor/pygments-main/pygments/lexers/teal.py +2 -3
  548. data/vendor/pygments-main/pygments/lexers/templates.py +133 -74
  549. data/vendor/pygments-main/pygments/lexers/teraterm.py +2 -3
  550. data/vendor/pygments-main/pygments/lexers/testing.py +4 -5
  551. data/vendor/pygments-main/pygments/lexers/text.py +3 -2
  552. data/vendor/pygments-main/pygments/lexers/textedit.py +9 -6
  553. data/vendor/pygments-main/pygments/lexers/textfmts.py +20 -15
  554. data/vendor/pygments-main/pygments/lexers/theorem.py +41 -115
  555. data/vendor/pygments-main/pygments/lexers/thingsdb.py +50 -26
  556. data/vendor/pygments-main/pygments/lexers/tlb.py +3 -1
  557. data/vendor/pygments-main/pygments/lexers/tls.py +54 -0
  558. data/vendor/pygments-main/pygments/lexers/tnt.py +2 -3
  559. data/vendor/pygments-main/pygments/lexers/trafficscript.py +3 -3
  560. data/vendor/pygments-main/pygments/lexers/typoscript.py +6 -7
  561. data/vendor/pygments-main/pygments/lexers/typst.py +160 -0
  562. data/vendor/pygments-main/pygments/lexers/ul4.py +47 -5
  563. data/vendor/pygments-main/pygments/lexers/unicon.py +9 -7
  564. data/vendor/pygments-main/pygments/lexers/urbi.py +3 -3
  565. data/vendor/pygments-main/pygments/lexers/usd.py +6 -11
  566. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  567. data/vendor/pygments-main/pygments/lexers/verification.py +4 -5
  568. data/vendor/pygments-main/pygments/lexers/verifpal.py +65 -0
  569. data/vendor/pygments-main/pygments/lexers/vip.py +150 -0
  570. data/vendor/pygments-main/pygments/lexers/vyper.py +140 -0
  571. data/vendor/pygments-main/pygments/lexers/web.py +2 -1
  572. data/vendor/pygments-main/pygments/lexers/webassembly.py +2 -3
  573. data/vendor/pygments-main/pygments/lexers/webidl.py +2 -3
  574. data/vendor/pygments-main/pygments/lexers/webmisc.py +11 -15
  575. data/vendor/pygments-main/pygments/lexers/wgsl.py +6 -7
  576. data/vendor/pygments-main/pygments/lexers/whiley.py +2 -3
  577. data/vendor/pygments-main/pygments/lexers/wowtoc.py +3 -3
  578. data/vendor/pygments-main/pygments/lexers/wren.py +3 -4
  579. data/vendor/pygments-main/pygments/lexers/x10.py +6 -7
  580. data/vendor/pygments-main/pygments/lexers/xorg.py +2 -1
  581. data/vendor/pygments-main/pygments/lexers/yang.py +2 -3
  582. data/vendor/pygments-main/pygments/lexers/yara.py +69 -0
  583. data/vendor/pygments-main/pygments/lexers/zig.py +2 -1
  584. data/vendor/pygments-main/pygments/modeline.py +4 -4
  585. data/vendor/pygments-main/pygments/plugin.py +3 -19
  586. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  587. data/vendor/pygments-main/pygments/scanner.py +1 -1
  588. data/vendor/pygments-main/pygments/sphinxext.py +38 -8
  589. data/vendor/pygments-main/pygments/style.py +8 -2
  590. data/vendor/pygments-main/pygments/styles/__init__.py +17 -59
  591. data/vendor/pygments-main/pygments/styles/__pycache__/__init__.cpython-313.pyc +0 -0
  592. data/vendor/pygments-main/pygments/styles/__pycache__/_mapping.cpython-313.pyc +0 -0
  593. data/vendor/pygments-main/pygments/styles/__pycache__/abap.cpython-313.pyc +0 -0
  594. data/vendor/pygments-main/pygments/styles/__pycache__/algol.cpython-313.pyc +0 -0
  595. data/vendor/pygments-main/pygments/styles/__pycache__/algol_nu.cpython-313.pyc +0 -0
  596. data/vendor/pygments-main/pygments/styles/__pycache__/arduino.cpython-313.pyc +0 -0
  597. data/vendor/pygments-main/pygments/styles/__pycache__/autumn.cpython-313.pyc +0 -0
  598. data/vendor/pygments-main/pygments/styles/__pycache__/borland.cpython-313.pyc +0 -0
  599. data/vendor/pygments-main/pygments/styles/__pycache__/bw.cpython-313.pyc +0 -0
  600. data/vendor/pygments-main/pygments/styles/__pycache__/coffee.cpython-313.pyc +0 -0
  601. data/vendor/pygments-main/pygments/styles/__pycache__/colorful.cpython-313.pyc +0 -0
  602. data/vendor/pygments-main/pygments/styles/__pycache__/default.cpython-313.pyc +0 -0
  603. data/vendor/pygments-main/pygments/styles/__pycache__/dracula.cpython-313.pyc +0 -0
  604. data/vendor/pygments-main/pygments/styles/__pycache__/emacs.cpython-313.pyc +0 -0
  605. data/vendor/pygments-main/pygments/styles/__pycache__/friendly.cpython-313.pyc +0 -0
  606. data/vendor/pygments-main/pygments/styles/__pycache__/friendly_grayscale.cpython-313.pyc +0 -0
  607. data/vendor/pygments-main/pygments/styles/__pycache__/fruity.cpython-313.pyc +0 -0
  608. data/vendor/pygments-main/pygments/styles/__pycache__/gh_dark.cpython-313.pyc +0 -0
  609. data/vendor/pygments-main/pygments/styles/__pycache__/gruvbox.cpython-313.pyc +0 -0
  610. data/vendor/pygments-main/pygments/styles/__pycache__/igor.cpython-313.pyc +0 -0
  611. data/vendor/pygments-main/pygments/styles/__pycache__/inkpot.cpython-313.pyc +0 -0
  612. data/vendor/pygments-main/pygments/styles/__pycache__/lightbulb.cpython-313.pyc +0 -0
  613. data/vendor/pygments-main/pygments/styles/__pycache__/lilypond.cpython-313.pyc +0 -0
  614. data/vendor/pygments-main/pygments/styles/__pycache__/lovelace.cpython-313.pyc +0 -0
  615. data/vendor/pygments-main/pygments/styles/__pycache__/manni.cpython-313.pyc +0 -0
  616. data/vendor/pygments-main/pygments/styles/__pycache__/material.cpython-313.pyc +0 -0
  617. data/vendor/pygments-main/pygments/styles/__pycache__/monokai.cpython-313.pyc +0 -0
  618. data/vendor/pygments-main/pygments/styles/__pycache__/murphy.cpython-313.pyc +0 -0
  619. data/vendor/pygments-main/pygments/styles/__pycache__/native.cpython-313.pyc +0 -0
  620. data/vendor/pygments-main/pygments/styles/__pycache__/nord.cpython-313.pyc +0 -0
  621. data/vendor/pygments-main/pygments/styles/__pycache__/onedark.cpython-313.pyc +0 -0
  622. data/vendor/pygments-main/pygments/styles/__pycache__/paraiso_dark.cpython-313.pyc +0 -0
  623. data/vendor/pygments-main/pygments/styles/__pycache__/paraiso_light.cpython-313.pyc +0 -0
  624. data/vendor/pygments-main/pygments/styles/__pycache__/pastie.cpython-313.pyc +0 -0
  625. data/vendor/pygments-main/pygments/styles/__pycache__/perldoc.cpython-313.pyc +0 -0
  626. data/vendor/pygments-main/pygments/styles/__pycache__/rainbow_dash.cpython-313.pyc +0 -0
  627. data/vendor/pygments-main/pygments/styles/__pycache__/rrt.cpython-313.pyc +0 -0
  628. data/vendor/pygments-main/pygments/styles/__pycache__/sas.cpython-313.pyc +0 -0
  629. data/vendor/pygments-main/pygments/styles/__pycache__/solarized.cpython-313.pyc +0 -0
  630. data/vendor/pygments-main/pygments/styles/__pycache__/staroffice.cpython-313.pyc +0 -0
  631. data/vendor/pygments-main/pygments/styles/__pycache__/stata_dark.cpython-313.pyc +0 -0
  632. data/vendor/pygments-main/pygments/styles/__pycache__/stata_light.cpython-313.pyc +0 -0
  633. data/vendor/pygments-main/pygments/styles/__pycache__/tango.cpython-313.pyc +0 -0
  634. data/vendor/pygments-main/pygments/styles/__pycache__/trac.cpython-313.pyc +0 -0
  635. data/vendor/pygments-main/pygments/styles/__pycache__/vim.cpython-313.pyc +0 -0
  636. data/vendor/pygments-main/pygments/styles/__pycache__/vs.cpython-313.pyc +0 -0
  637. data/vendor/pygments-main/pygments/styles/__pycache__/xcode.cpython-313.pyc +0 -0
  638. data/vendor/pygments-main/pygments/styles/__pycache__/zenburn.cpython-313.pyc +0 -0
  639. data/vendor/pygments-main/pygments/styles/_mapping.py +54 -0
  640. data/vendor/pygments-main/pygments/styles/abap.py +5 -1
  641. data/vendor/pygments-main/pygments/styles/algol.py +5 -1
  642. data/vendor/pygments-main/pygments/styles/algol_nu.py +5 -1
  643. data/vendor/pygments-main/pygments/styles/arduino.py +76 -72
  644. data/vendor/pygments-main/pygments/styles/autumn.py +6 -1
  645. data/vendor/pygments-main/pygments/styles/borland.py +6 -1
  646. data/vendor/pygments-main/pygments/styles/bw.py +6 -1
  647. data/vendor/pygments-main/pygments/styles/coffee.py +80 -0
  648. data/vendor/pygments-main/pygments/styles/colorful.py +6 -1
  649. data/vendor/pygments-main/pygments/styles/default.py +6 -1
  650. data/vendor/pygments-main/pygments/styles/dracula.py +68 -80
  651. data/vendor/pygments-main/pygments/styles/emacs.py +6 -1
  652. data/vendor/pygments-main/pygments/styles/friendly.py +6 -1
  653. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +6 -1
  654. data/vendor/pygments-main/pygments/styles/fruity.py +7 -1
  655. data/vendor/pygments-main/pygments/styles/gh_dark.py +7 -1
  656. data/vendor/pygments-main/pygments/styles/gruvbox.py +10 -1
  657. data/vendor/pygments-main/pygments/styles/igor.py +6 -1
  658. data/vendor/pygments-main/pygments/styles/inkpot.py +7 -2
  659. data/vendor/pygments-main/pygments/styles/lightbulb.py +110 -0
  660. data/vendor/pygments-main/pygments/styles/lilypond.py +8 -2
  661. data/vendor/pygments-main/pygments/styles/lovelace.py +16 -10
  662. data/vendor/pygments-main/pygments/styles/manni.py +7 -2
  663. data/vendor/pygments-main/pygments/styles/material.py +21 -14
  664. data/vendor/pygments-main/pygments/styles/monokai.py +16 -10
  665. data/vendor/pygments-main/pygments/styles/murphy.py +7 -2
  666. data/vendor/pygments-main/pygments/styles/native.py +10 -5
  667. data/vendor/pygments-main/pygments/styles/nord.py +9 -3
  668. data/vendor/pygments-main/pygments/styles/onedark.py +6 -2
  669. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +7 -2
  670. data/vendor/pygments-main/pygments/styles/paraiso_light.py +7 -2
  671. data/vendor/pygments-main/pygments/styles/pastie.py +7 -1
  672. data/vendor/pygments-main/pygments/styles/perldoc.py +7 -1
  673. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +26 -19
  674. data/vendor/pygments-main/pygments/styles/rrt.py +9 -2
  675. data/vendor/pygments-main/pygments/styles/sas.py +6 -1
  676. data/vendor/pygments-main/pygments/styles/solarized.py +9 -1
  677. data/vendor/pygments-main/pygments/styles/staroffice.py +6 -1
  678. data/vendor/pygments-main/pygments/styles/stata_dark.py +6 -2
  679. data/vendor/pygments-main/pygments/styles/stata_light.py +6 -1
  680. data/vendor/pygments-main/pygments/styles/tango.py +7 -3
  681. data/vendor/pygments-main/pygments/styles/trac.py +7 -1
  682. data/vendor/pygments-main/pygments/styles/vim.py +7 -1
  683. data/vendor/pygments-main/pygments/styles/vs.py +7 -2
  684. data/vendor/pygments-main/pygments/styles/xcode.py +6 -1
  685. data/vendor/pygments-main/pygments/styles/zenburn.py +6 -1
  686. data/vendor/pygments-main/pygments/token.py +2 -1
  687. data/vendor/pygments-main/pygments/unistring.py +5 -5
  688. data/vendor/pygments-main/pygments/util.py +13 -19
  689. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info}/METADATA +15 -13
  690. data/vendor/pygments-main/pygments-2.19.2.dist-info/RECORD +685 -0
  691. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info}/WHEEL +1 -2
  692. data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info/licenses}/AUTHORS +21 -0
  693. metadata +390 -20
  694. data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +0 -614
  695. data/vendor/pygments-main/Pygments-2.15.1.dist-info/top_level.txt +0 -1
  696. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info}/INSTALLER +0 -0
  697. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info}/REQUESTED +0 -0
  698. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info}/entry_points.txt +0 -0
  699. /data/vendor/pygments-main/{Pygments-2.15.1.dist-info → pygments-2.19.2.dist-info/licenses}/LICENSE +0 -0
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for Lispy languages.
6
6
 
7
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -20,7 +20,7 @@ from pygments.lexers._scheme_builtins import scheme_keywords, scheme_builtins
20
20
 
21
21
  __all__ = ['SchemeLexer', 'CommonLispLexer', 'HyLexer', 'RacketLexer',
22
22
  'NewLispLexer', 'EmacsLispLexer', 'ShenLexer', 'CPSALexer',
23
- 'XtlangLexer', 'FennelLexer']
23
+ 'XtlangLexer', 'FennelLexer', 'JanetLexer']
24
24
 
25
25
 
26
26
  class SchemeLexer(RegexLexer):
@@ -31,14 +31,13 @@ class SchemeLexer(RegexLexer):
31
31
  at http://paste.lisp.org/ to cover as much syntax as possible.
32
32
 
33
33
  It supports the full Scheme syntax as defined in R5RS.
34
-
35
- .. versionadded:: 0.6
36
34
  """
37
35
  name = 'Scheme'
38
36
  url = 'http://www.scheme-reports.org/'
39
37
  aliases = ['scheme', 'scm']
40
38
  filenames = ['*.scm', '*.ss']
41
39
  mimetypes = ['text/x-scheme', 'application/x-scheme']
40
+ version_added = '0.6'
42
41
 
43
42
  flags = re.DOTALL | re.MULTILINE
44
43
 
@@ -296,14 +295,13 @@ class SchemeLexer(RegexLexer):
296
295
  class CommonLispLexer(RegexLexer):
297
296
  """
298
297
  A Common Lisp lexer.
299
-
300
- .. versionadded:: 0.9
301
298
  """
302
299
  name = 'Common Lisp'
303
300
  url = 'https://lisp-lang.org/'
304
301
  aliases = ['common-lisp', 'cl', 'lisp']
305
302
  filenames = ['*.cl', '*.lisp']
306
303
  mimetypes = ['text/x-common-lisp']
304
+ version_added = '0.9'
307
305
 
308
306
  flags = re.IGNORECASE | re.MULTILINE
309
307
 
@@ -316,7 +314,7 @@ class CommonLispLexer(RegexLexer):
316
314
 
317
315
  # symbol token, reverse-engineered from hyperspec
318
316
  # Take a deep breath...
319
- symbol = r'(\|[^|]+\||(?:%s)(?:%s)*)' % (nonmacro, constituent)
317
+ symbol = rf'(\|[^|]+\||(?:{nonmacro})(?:{constituent})*)'
320
318
 
321
319
  def __init__(self, **options):
322
320
  from pygments.lexers._cl_builtins import BUILTIN_FUNCTIONS, \
@@ -471,18 +469,27 @@ class CommonLispLexer(RegexLexer):
471
469
  ],
472
470
  }
473
471
 
472
+ def analyse_text(text):
473
+ """Competes with Visual Prolog on *.cl"""
474
+ # This is a *really* good indicator (and not conflicting with Visual Prolog)
475
+ # '(defun ' first on a line
476
+ # section keyword alone on line e.g. 'clauses'
477
+ if re.search(r'^\s*\(defun\s', text):
478
+ return 0.8
479
+ else:
480
+ return 0
481
+
474
482
 
475
483
  class HyLexer(RegexLexer):
476
484
  """
477
485
  Lexer for Hy source code.
478
-
479
- .. versionadded:: 2.0
480
486
  """
481
487
  name = 'Hy'
482
488
  url = 'http://hylang.org/'
483
- aliases = ['hylang']
489
+ aliases = ['hylang', 'hy']
484
490
  filenames = ['*.hy']
485
491
  mimetypes = ['text/x-hy', 'application/x-hy']
492
+ version_added = '2.0'
486
493
 
487
494
  special_forms = (
488
495
  'cond', 'for', '->', '->>', 'car',
@@ -512,7 +519,7 @@ class HyLexer(RegexLexer):
512
519
  # valid names for identifiers
513
520
  # well, names can only not consist fully of numbers
514
521
  # but this should be good enough for now
515
- valid_name = r'(?!#)[\w!$%*+<=>?/.#:-]+'
522
+ valid_name = r"[^ \t\n\r\f\v()[\]{};\"'`~]+"
516
523
 
517
524
  def _multi_escape(entries):
518
525
  return words(entries, suffix=' ')
@@ -524,8 +531,7 @@ class HyLexer(RegexLexer):
524
531
  (r';.*$', Comment.Single),
525
532
 
526
533
  # whitespaces - usually not relevant
527
- (r',+', Text),
528
- (r'\s+', Whitespace),
534
+ (r'[ \t\n\r\f\v]+', Whitespace),
529
535
 
530
536
  # numbers
531
537
  (r'-?\d+\.\d+', Number.Float),
@@ -591,8 +597,6 @@ class RacketLexer(RegexLexer):
591
597
  """
592
598
  Lexer for Racket source code (formerly
593
599
  known as PLT Scheme).
594
-
595
- .. versionadded:: 1.6
596
600
  """
597
601
 
598
602
  name = 'Racket'
@@ -600,6 +604,7 @@ class RacketLexer(RegexLexer):
600
604
  aliases = ['racket', 'rkt']
601
605
  filenames = ['*.rkt', '*.rktd', '*.rktl']
602
606
  mimetypes = ['text/x-racket', 'application/x-racket']
607
+ version_added = '1.6'
603
608
 
604
609
  # Generated by example.rkt
605
610
  _keywords = (
@@ -1381,19 +1386,17 @@ class RacketLexer(RegexLexer):
1381
1386
  _opening_parenthesis = r'[([{]'
1382
1387
  _closing_parenthesis = r'[)\]}]'
1383
1388
  _delimiters = r'()[\]{}",\'`;\s'
1384
- _symbol = r'(?:\|[^|]*\||\\[\w\W]|[^|\\%s]+)+' % _delimiters
1389
+ _symbol = rf'(?:\|[^|]*\||\\[\w\W]|[^|\\{_delimiters}]+)+'
1385
1390
  _exact_decimal_prefix = r'(?:#e)?(?:#d)?(?:#e)?'
1386
1391
  _exponent = r'(?:[defls][-+]?\d+)'
1387
1392
  _inexact_simple_no_hashes = r'(?:\d+(?:/\d+|\.\d*)?|\.\d+)'
1388
- _inexact_simple = (r'(?:%s|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|'
1389
- r'\d+(?:\.\d*#+|/\d+#+)))' % _inexact_simple_no_hashes)
1390
- _inexact_normal_no_hashes = r'(?:%s%s?)' % (_inexact_simple_no_hashes,
1391
- _exponent)
1392
- _inexact_normal = r'(?:%s%s?)' % (_inexact_simple, _exponent)
1393
+ _inexact_simple = (rf'(?:{_inexact_simple_no_hashes}|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|'
1394
+ r'\d+(?:\.\d*#+|/\d+#+)))')
1395
+ _inexact_normal_no_hashes = rf'(?:{_inexact_simple_no_hashes}{_exponent}?)'
1396
+ _inexact_normal = rf'(?:{_inexact_simple}{_exponent}?)'
1393
1397
  _inexact_special = r'(?:(?:inf|nan)\.[0f])'
1394
- _inexact_real = r'(?:[-+]?%s|[-+]%s)' % (_inexact_normal,
1395
- _inexact_special)
1396
- _inexact_unsigned = r'(?:%s|%s)' % (_inexact_normal, _inexact_special)
1398
+ _inexact_real = rf'(?:[-+]?{_inexact_normal}|[-+]{_inexact_special})'
1399
+ _inexact_unsigned = rf'(?:{_inexact_normal}|{_inexact_special})'
1397
1400
 
1398
1401
  tokens = {
1399
1402
  'root': [
@@ -1413,36 +1416,29 @@ class RacketLexer(RegexLexer):
1413
1416
  # onto Pygments token types; some judgment calls here.
1414
1417
 
1415
1418
  # #d or no prefix
1416
- (r'(?i)%s[-+]?\d+(?=[%s])' % (_exact_decimal_prefix, _delimiters),
1419
+ (rf'(?i){_exact_decimal_prefix}[-+]?\d+(?=[{_delimiters}])',
1417
1420
  Number.Integer, '#pop'),
1418
- (r'(?i)%s[-+]?(\d+(\.\d*)?|\.\d+)([deflst][-+]?\d+)?(?=[%s])' %
1419
- (_exact_decimal_prefix, _delimiters), Number.Float, '#pop'),
1420
- (r'(?i)%s[-+]?(%s([-+]%s?i)?|[-+]%s?i)(?=[%s])' %
1421
- (_exact_decimal_prefix, _inexact_normal_no_hashes,
1422
- _inexact_normal_no_hashes, _inexact_normal_no_hashes,
1423
- _delimiters), Number, '#pop'),
1421
+ (rf'(?i){_exact_decimal_prefix}[-+]?(\d+(\.\d*)?|\.\d+)([deflst][-+]?\d+)?(?=[{_delimiters}])', Number.Float, '#pop'),
1422
+ (rf'(?i){_exact_decimal_prefix}[-+]?({_inexact_normal_no_hashes}([-+]{_inexact_normal_no_hashes}?i)?|[-+]{_inexact_normal_no_hashes}?i)(?=[{_delimiters}])', Number, '#pop'),
1424
1423
 
1425
1424
  # Inexact without explicit #i
1426
- (r'(?i)(#d)?(%s([-+]%s?i)?|[-+]%s?i|%s@%s)(?=[%s])' %
1427
- (_inexact_real, _inexact_unsigned, _inexact_unsigned,
1428
- _inexact_real, _inexact_real, _delimiters), Number.Float,
1425
+ (rf'(?i)(#d)?({_inexact_real}([-+]{_inexact_unsigned}?i)?|[-+]{_inexact_unsigned}?i|{_inexact_real}@{_inexact_real})(?=[{_delimiters}])', Number.Float,
1429
1426
  '#pop'),
1430
1427
 
1431
1428
  # The remaining extflonums
1432
- (r'(?i)(([-+]?%st[-+]?\d+)|[-+](inf|nan)\.t)(?=[%s])' %
1433
- (_inexact_simple, _delimiters), Number.Float, '#pop'),
1429
+ (rf'(?i)(([-+]?{_inexact_simple}t[-+]?\d+)|[-+](inf|nan)\.t)(?=[{_delimiters}])', Number.Float, '#pop'),
1434
1430
 
1435
1431
  # #b
1436
- (r'(?iu)(#[ei])?#b%s' % _symbol, Number.Bin, '#pop'),
1432
+ (rf'(?iu)(#[ei])?#b{_symbol}', Number.Bin, '#pop'),
1437
1433
 
1438
1434
  # #o
1439
- (r'(?iu)(#[ei])?#o%s' % _symbol, Number.Oct, '#pop'),
1435
+ (rf'(?iu)(#[ei])?#o{_symbol}', Number.Oct, '#pop'),
1440
1436
 
1441
1437
  # #x
1442
- (r'(?iu)(#[ei])?#x%s' % _symbol, Number.Hex, '#pop'),
1438
+ (rf'(?iu)(#[ei])?#x{_symbol}', Number.Hex, '#pop'),
1443
1439
 
1444
1440
  # #i is always inexact, i.e. float
1445
- (r'(?iu)(#d)?#i%s' % _symbol, Number.Float, '#pop'),
1441
+ (rf'(?iu)(#d)?#i{_symbol}', Number.Float, '#pop'),
1446
1442
 
1447
1443
  # Strings and characters
1448
1444
  (r'#?"', String.Double, ('#pop', 'string')),
@@ -1455,7 +1451,7 @@ class RacketLexer(RegexLexer):
1455
1451
  (r'#(true|false|[tTfF])', Name.Constant, '#pop'),
1456
1452
 
1457
1453
  # Keyword argument names (e.g. #:keyword)
1458
- (r'#:%s' % _symbol, Keyword.Declaration, '#pop'),
1454
+ (rf'#:{_symbol}', Keyword.Declaration, '#pop'),
1459
1455
 
1460
1456
  # Reader extensions
1461
1457
  (r'(#lang |#!)(\S+)',
@@ -1463,8 +1459,8 @@ class RacketLexer(RegexLexer):
1463
1459
  (r'#reader', Keyword.Namespace, 'quoted-datum'),
1464
1460
 
1465
1461
  # Other syntax
1466
- (r"(?i)\.(?=[%s])|#c[is]|#['`]|#,@?" % _delimiters, Operator),
1467
- (r"'|#[s&]|#hash(eqv?)?|#\d*(?=%s)" % _opening_parenthesis,
1462
+ (rf"(?i)\.(?=[{_delimiters}])|#c[is]|#['`]|#,@?", Operator),
1463
+ (rf"'|#[s&]|#hash(eqv?)?|#\d*(?={_opening_parenthesis})",
1468
1464
  Operator, ('#pop', 'quoted-datum'))
1469
1465
  ],
1470
1466
  'datum*': [
@@ -1478,15 +1474,15 @@ class RacketLexer(RegexLexer):
1478
1474
  ],
1479
1475
  'unquoted-datum': [
1480
1476
  include('datum'),
1481
- (r'quote(?=[%s])' % _delimiters, Keyword,
1477
+ (rf'quote(?=[{_delimiters}])', Keyword,
1482
1478
  ('#pop', 'quoted-datum')),
1483
1479
  (r'`', Operator, ('#pop', 'quasiquoted-datum')),
1484
- (r'quasiquote(?=[%s])' % _delimiters, Keyword,
1480
+ (rf'quasiquote(?=[{_delimiters}])', Keyword,
1485
1481
  ('#pop', 'quasiquoted-datum')),
1486
1482
  (_opening_parenthesis, Punctuation, ('#pop', 'unquoted-list')),
1487
- (words(_keywords, suffix='(?=[%s])' % _delimiters),
1483
+ (words(_keywords, suffix=f'(?=[{_delimiters}])'),
1488
1484
  Keyword, '#pop'),
1489
- (words(_builtins, suffix='(?=[%s])' % _delimiters),
1485
+ (words(_builtins, suffix=f'(?=[{_delimiters}])'),
1490
1486
  Name.Builtin, '#pop'),
1491
1487
  (_symbol, Name, '#pop'),
1492
1488
  include('datum*')
@@ -1498,7 +1494,7 @@ class RacketLexer(RegexLexer):
1498
1494
  'quasiquoted-datum': [
1499
1495
  include('datum'),
1500
1496
  (r',@?', Operator, ('#pop', 'unquoted-datum')),
1501
- (r'unquote(-splicing)?(?=[%s])' % _delimiters, Keyword,
1497
+ (rf'unquote(-splicing)?(?=[{_delimiters}])', Keyword,
1502
1498
  ('#pop', 'unquoted-datum')),
1503
1499
  (_opening_parenthesis, Punctuation, ('#pop', 'quasiquoted-list')),
1504
1500
  include('datum*')
@@ -1533,8 +1529,6 @@ class RacketLexer(RegexLexer):
1533
1529
  class NewLispLexer(RegexLexer):
1534
1530
  """
1535
1531
  For newLISP source code (version 10.3.0).
1536
-
1537
- .. versionadded:: 1.5
1538
1532
  """
1539
1533
 
1540
1534
  name = 'NewLisp'
@@ -1542,6 +1536,7 @@ class NewLispLexer(RegexLexer):
1542
1536
  aliases = ['newlisp']
1543
1537
  filenames = ['*.lsp', '*.nl', '*.kif']
1544
1538
  mimetypes = ['text/x-newlisp', 'application/x-newlisp']
1539
+ version_added = '1.5'
1545
1540
 
1546
1541
  flags = re.IGNORECASE | re.MULTILINE
1547
1542
 
@@ -1666,13 +1661,13 @@ class EmacsLispLexer(RegexLexer):
1666
1661
  """
1667
1662
  An ELisp lexer, parsing a stream and outputting the tokens
1668
1663
  needed to highlight elisp code.
1669
-
1670
- .. versionadded:: 2.1
1671
1664
  """
1672
1665
  name = 'EmacsLisp'
1673
1666
  aliases = ['emacs-lisp', 'elisp', 'emacs']
1674
1667
  filenames = ['*.el']
1675
1668
  mimetypes = ['text/x-elisp', 'application/x-elisp']
1669
+ url = 'https://www.gnu.org/software/emacs'
1670
+ version_added = '2.1'
1676
1671
 
1677
1672
  flags = re.MULTILINE
1678
1673
 
@@ -1685,7 +1680,7 @@ class EmacsLispLexer(RegexLexer):
1685
1680
 
1686
1681
  # symbol token, reverse-engineered from hyperspec
1687
1682
  # Take a deep breath...
1688
- symbol = r'((?:%s)(?:%s)*)' % (nonmacro, constituent)
1683
+ symbol = rf'((?:{nonmacro})(?:{constituent})*)'
1689
1684
 
1690
1685
  macros = {
1691
1686
  'atomic-change-group', 'case', 'block', 'cl-block', 'cl-callf', 'cl-callf2',
@@ -2298,7 +2293,7 @@ class EmacsLispLexer(RegexLexer):
2298
2293
  ],
2299
2294
  'string': [
2300
2295
  (r'[^"\\`]+', String),
2301
- (r'`%s\'' % symbol, String.Symbol),
2296
+ (rf'`{symbol}\'', String.Symbol),
2302
2297
  (r'`', String),
2303
2298
  (r'\\.', String),
2304
2299
  (r'\\\n', String),
@@ -2310,14 +2305,13 @@ class EmacsLispLexer(RegexLexer):
2310
2305
  class ShenLexer(RegexLexer):
2311
2306
  """
2312
2307
  Lexer for Shen source code.
2313
-
2314
- .. versionadded:: 2.1
2315
2308
  """
2316
2309
  name = 'Shen'
2317
2310
  url = 'http://shenlanguage.org/'
2318
2311
  aliases = ['shen']
2319
2312
  filenames = ['*.shen']
2320
2313
  mimetypes = ['text/x-shen', 'application/x-shen']
2314
+ version_added = '2.1'
2321
2315
 
2322
2316
  DECLARATIONS = (
2323
2317
  'datatype', 'define', 'defmacro', 'defprolog', 'defcc',
@@ -2365,9 +2359,9 @@ class ShenLexer(RegexLexer):
2365
2359
  MAPPINGS.update((s, Keyword) for s in SPECIAL_FORMS)
2366
2360
 
2367
2361
  valid_symbol_chars = r'[\w!$%*+,<=>?/.\'@&#:-]'
2368
- valid_name = '%s+' % valid_symbol_chars
2369
- symbol_name = r'[a-z!$%%*+,<=>?/.\'@&#_-]%s*' % valid_symbol_chars
2370
- variable = r'[A-Z]%s*' % valid_symbol_chars
2362
+ valid_name = f'{valid_symbol_chars}+'
2363
+ symbol_name = rf'[a-z!$%*+,<=>?/.\'@&#_-]{valid_symbol_chars}*'
2364
+ variable = rf'[A-Z]{valid_symbol_chars}*'
2371
2365
 
2372
2366
  tokens = {
2373
2367
  'string': [
@@ -2475,13 +2469,13 @@ class ShenLexer(RegexLexer):
2475
2469
  class CPSALexer(RegexLexer):
2476
2470
  """
2477
2471
  A CPSA lexer based on the CPSA language as of version 2.2.12
2478
-
2479
- .. versionadded:: 2.1
2480
2472
  """
2481
2473
  name = 'CPSA'
2482
2474
  aliases = ['cpsa']
2483
2475
  filenames = ['*.cpsa']
2484
2476
  mimetypes = []
2477
+ url = 'https://web.cs.wpi.edu/~guttman/cs564/cpsauser.html'
2478
+ version_added = '2.1'
2485
2479
 
2486
2480
  # list of known keywords and builtins taken form vim 6.4 scheme.vim
2487
2481
  # syntax file.
@@ -2556,14 +2550,13 @@ class XtlangLexer(RegexLexer):
2556
2550
  This is a mixture of Scheme and xtlang, really. Keyword lists are
2557
2551
  taken from the Extempore Emacs mode
2558
2552
  (https://github.com/extemporelang/extempore-emacs-mode)
2559
-
2560
- .. versionadded:: 2.2
2561
2553
  """
2562
2554
  name = 'xtlang'
2563
2555
  url = 'http://extempore.moso.com.au'
2564
2556
  aliases = ['extempore']
2565
2557
  filenames = ['*.xtm']
2566
2558
  mimetypes = []
2559
+ version_added = '2.2'
2567
2560
 
2568
2561
  common_keywords = (
2569
2562
  'lambda', 'define', 'if', 'else', 'cond', 'and',
@@ -2759,13 +2752,12 @@ class FennelLexer(RegexLexer):
2759
2752
 
2760
2753
  Fennel compiles to Lua, so all the Lua builtins are recognized as well
2761
2754
  as the special forms that are particular to the Fennel compiler.
2762
-
2763
- .. versionadded:: 2.3
2764
2755
  """
2765
2756
  name = 'Fennel'
2766
2757
  url = 'https://fennel-lang.org'
2767
2758
  aliases = ['fennel', 'fnl']
2768
2759
  filenames = ['*.fnl']
2760
+ version_added = '2.3'
2769
2761
 
2770
2762
  # this list is current as of Fennel version 0.10.0.
2771
2763
  special_forms = (
@@ -2836,3 +2828,319 @@ class FennelLexer(RegexLexer):
2836
2828
  (r'#', Punctuation),
2837
2829
  ]
2838
2830
  }
2831
+
2832
+
2833
+ class JanetLexer(RegexLexer):
2834
+ """A lexer for the Janet programming language.
2835
+ """
2836
+ name = 'Janet'
2837
+ url = 'https://janet-lang.org/'
2838
+ aliases = ['janet']
2839
+ filenames = ['*.janet', '*.jdn']
2840
+ mimetypes = ['text/x-janet', 'application/x-janet']
2841
+ version_added = '2.18'
2842
+
2843
+ # XXX: gets too slow
2844
+ #flags = re.MULTILINE | re.VERBOSE
2845
+
2846
+ special_forms = (
2847
+ 'break', 'def', 'do', 'fn', 'if', 'quote', 'quasiquote', 'splice',
2848
+ 'set', 'unquote', 'upscope', 'var', 'while'
2849
+ )
2850
+
2851
+ builtin_macros = (
2852
+ '%=', '*=', '++', '+=', '--', '-=', '->', '->>', '-?>',
2853
+ '-?>>', '/=', 'and', 'as->', 'as-macro', 'as?->',
2854
+ 'assert', 'case', 'catseq', 'chr', 'comment', 'compif',
2855
+ 'comptime', 'compwhen', 'cond', 'coro', 'def-',
2856
+ 'default', 'defdyn', 'defer', 'defmacro', 'defmacro-',
2857
+ 'defn', 'defn-', 'delay', 'doc', 'each', 'eachk',
2858
+ 'eachp', 'edefer', 'ev/do-thread', 'ev/gather',
2859
+ 'ev/spawn', 'ev/spawn-thread', 'ev/with-deadline',
2860
+ 'ffi/defbind', 'fiber-fn', 'for', 'forever', 'forv',
2861
+ 'generate', 'if-let', 'if-not', 'if-with', 'import',
2862
+ 'juxt', 'label', 'let', 'loop', 'match', 'or', 'prompt',
2863
+ 'protect', 'repeat', 'seq', 'short-fn', 'tabseq',
2864
+ 'toggle', 'tracev', 'try', 'unless', 'use', 'var-',
2865
+ 'varfn', 'when', 'when-let', 'when-with', 'with',
2866
+ 'with-dyns', 'with-syms', 'with-vars',
2867
+ # obsolete builtin macros
2868
+ 'eachy'
2869
+ )
2870
+
2871
+ builtin_functions = (
2872
+ '%', '*', '+', '-', '/', '<', '<=', '=', '>', '>=',
2873
+ 'abstract?', 'accumulate', 'accumulate2', 'all',
2874
+ 'all-bindings', 'all-dynamics', 'any?', 'apply',
2875
+ 'array', 'array/clear', 'array/concat', 'array/ensure',
2876
+ 'array/fill', 'array/insert', 'array/new',
2877
+ 'array/new-filled', 'array/peek', 'array/pop',
2878
+ 'array/push', 'array/remove', 'array/slice',
2879
+ 'array/trim', 'array/weak', 'array?', 'asm',
2880
+ 'bad-compile', 'bad-parse', 'band', 'blshift', 'bnot',
2881
+ 'boolean?', 'bor', 'brshift', 'brushift', 'buffer',
2882
+ 'buffer/bit', 'buffer/bit-clear', 'buffer/bit-set',
2883
+ 'buffer/bit-toggle', 'buffer/blit', 'buffer/clear',
2884
+ 'buffer/fill', 'buffer/format', 'buffer/from-bytes',
2885
+ 'buffer/new', 'buffer/new-filled', 'buffer/popn',
2886
+ 'buffer/push', 'buffer/push-at', 'buffer/push-byte',
2887
+ 'buffer/push-string', 'buffer/push-word',
2888
+ 'buffer/slice', 'buffer/trim', 'buffer?', 'bxor',
2889
+ 'bytes?', 'cancel', 'cfunction?', 'cli-main', 'cmp',
2890
+ 'comp', 'compare', 'compare<', 'compare<=', 'compare=',
2891
+ 'compare>', 'compare>=', 'compile', 'complement',
2892
+ 'count', 'curenv', 'debug', 'debug/arg-stack',
2893
+ 'debug/break', 'debug/fbreak', 'debug/lineage',
2894
+ 'debug/stack', 'debug/stacktrace', 'debug/step',
2895
+ 'debug/unbreak', 'debug/unfbreak', 'debugger',
2896
+ 'debugger-on-status', 'dec', 'deep-not=', 'deep=',
2897
+ 'defglobal', 'describe', 'dictionary?', 'disasm',
2898
+ 'distinct', 'div', 'doc*', 'doc-format', 'doc-of',
2899
+ 'dofile', 'drop', 'drop-until', 'drop-while', 'dyn',
2900
+ 'eflush', 'empty?', 'env-lookup', 'eprin', 'eprinf',
2901
+ 'eprint', 'eprintf', 'error', 'errorf',
2902
+ 'ev/acquire-lock', 'ev/acquire-rlock',
2903
+ 'ev/acquire-wlock', 'ev/all-tasks', 'ev/call',
2904
+ 'ev/cancel', 'ev/capacity', 'ev/chan', 'ev/chan-close',
2905
+ 'ev/chunk', 'ev/close', 'ev/count', 'ev/deadline',
2906
+ 'ev/full', 'ev/give', 'ev/give-supervisor', 'ev/go',
2907
+ 'ev/lock', 'ev/read', 'ev/release-lock',
2908
+ 'ev/release-rlock', 'ev/release-wlock', 'ev/rselect',
2909
+ 'ev/rwlock', 'ev/select', 'ev/sleep', 'ev/take',
2910
+ 'ev/thread', 'ev/thread-chan', 'ev/write', 'eval',
2911
+ 'eval-string', 'even?', 'every?', 'extreme', 'false?',
2912
+ 'ffi/align', 'ffi/call', 'ffi/calling-conventions',
2913
+ 'ffi/close', 'ffi/context', 'ffi/free', 'ffi/jitfn',
2914
+ 'ffi/lookup', 'ffi/malloc', 'ffi/native',
2915
+ 'ffi/pointer-buffer', 'ffi/pointer-cfunction',
2916
+ 'ffi/read', 'ffi/signature', 'ffi/size', 'ffi/struct',
2917
+ 'ffi/trampoline', 'ffi/write', 'fiber/can-resume?',
2918
+ 'fiber/current', 'fiber/getenv', 'fiber/last-value',
2919
+ 'fiber/maxstack', 'fiber/new', 'fiber/root',
2920
+ 'fiber/setenv', 'fiber/setmaxstack', 'fiber/status',
2921
+ 'fiber?', 'file/close', 'file/flush', 'file/lines',
2922
+ 'file/open', 'file/read', 'file/seek', 'file/tell',
2923
+ 'file/temp', 'file/write', 'filter', 'find',
2924
+ 'find-index', 'first', 'flatten', 'flatten-into',
2925
+ 'flush', 'flycheck', 'freeze', 'frequencies',
2926
+ 'from-pairs', 'function?', 'gccollect', 'gcinterval',
2927
+ 'gcsetinterval', 'gensym', 'get', 'get-in', 'getline',
2928
+ 'getproto', 'group-by', 'has-key?', 'has-value?',
2929
+ 'hash', 'idempotent?', 'identity', 'import*', 'in',
2930
+ 'inc', 'index-of', 'indexed?', 'int/s64',
2931
+ 'int/to-bytes', 'int/to-number', 'int/u64', 'int?',
2932
+ 'interleave', 'interpose', 'invert', 'juxt*', 'keep',
2933
+ 'keep-syntax', 'keep-syntax!', 'keys', 'keyword',
2934
+ 'keyword/slice', 'keyword?', 'kvs', 'last', 'length',
2935
+ 'lengthable?', 'load-image', 'macex', 'macex1',
2936
+ 'maclintf', 'make-env', 'make-image', 'map', 'mapcat',
2937
+ 'marshal', 'math/abs', 'math/acos', 'math/acosh',
2938
+ 'math/asin', 'math/asinh', 'math/atan', 'math/atan2',
2939
+ 'math/atanh', 'math/cbrt', 'math/ceil', 'math/cos',
2940
+ 'math/cosh', 'math/erf', 'math/erfc', 'math/exp',
2941
+ 'math/exp2', 'math/expm1', 'math/floor', 'math/gamma',
2942
+ 'math/gcd', 'math/hypot', 'math/lcm', 'math/log',
2943
+ 'math/log-gamma', 'math/log10', 'math/log1p',
2944
+ 'math/log2', 'math/next', 'math/pow', 'math/random',
2945
+ 'math/rng', 'math/rng-buffer', 'math/rng-int',
2946
+ 'math/rng-uniform', 'math/round', 'math/seedrandom',
2947
+ 'math/sin', 'math/sinh', 'math/sqrt', 'math/tan',
2948
+ 'math/tanh', 'math/trunc', 'max', 'max-of', 'mean',
2949
+ 'memcmp', 'merge', 'merge-into', 'merge-module', 'min',
2950
+ 'min-of', 'mod', 'module/add-paths',
2951
+ 'module/expand-path', 'module/find', 'module/value',
2952
+ 'nan?', 'nat?', 'native', 'neg?', 'net/accept',
2953
+ 'net/accept-loop', 'net/address', 'net/address-unpack',
2954
+ 'net/chunk', 'net/close', 'net/connect', 'net/flush',
2955
+ 'net/listen', 'net/localname', 'net/peername',
2956
+ 'net/read', 'net/recv-from', 'net/send-to',
2957
+ 'net/server', 'net/setsockopt', 'net/shutdown',
2958
+ 'net/write', 'next', 'nil?', 'not', 'not=', 'number?',
2959
+ 'odd?', 'one?', 'os/arch', 'os/cd', 'os/chmod',
2960
+ 'os/clock', 'os/compiler', 'os/cpu-count',
2961
+ 'os/cryptorand', 'os/cwd', 'os/date', 'os/dir',
2962
+ 'os/environ', 'os/execute', 'os/exit', 'os/getenv',
2963
+ 'os/isatty', 'os/link', 'os/lstat', 'os/mkdir',
2964
+ 'os/mktime', 'os/open', 'os/perm-int', 'os/perm-string',
2965
+ 'os/pipe', 'os/posix-exec', 'os/posix-fork',
2966
+ 'os/proc-close', 'os/proc-kill', 'os/proc-wait',
2967
+ 'os/readlink', 'os/realpath', 'os/rename', 'os/rm',
2968
+ 'os/rmdir', 'os/setenv', 'os/shell', 'os/sigaction',
2969
+ 'os/sleep', 'os/spawn', 'os/stat', 'os/strftime',
2970
+ 'os/symlink', 'os/time', 'os/touch', 'os/umask',
2971
+ 'os/which', 'pairs', 'parse', 'parse-all',
2972
+ 'parser/byte', 'parser/clone', 'parser/consume',
2973
+ 'parser/eof', 'parser/error', 'parser/flush',
2974
+ 'parser/has-more', 'parser/insert', 'parser/new',
2975
+ 'parser/produce', 'parser/state', 'parser/status',
2976
+ 'parser/where', 'partial', 'partition', 'partition-by',
2977
+ 'peg/compile', 'peg/find', 'peg/find-all', 'peg/match',
2978
+ 'peg/replace', 'peg/replace-all', 'pos?', 'postwalk',
2979
+ 'pp', 'prewalk', 'prin', 'prinf', 'print', 'printf',
2980
+ 'product', 'propagate', 'put', 'put-in', 'quit',
2981
+ 'range', 'reduce', 'reduce2', 'repl', 'require',
2982
+ 'resume', 'return', 'reverse', 'reverse!',
2983
+ 'run-context', 'sandbox', 'scan-number', 'setdyn',
2984
+ 'signal', 'slice', 'slurp', 'some', 'sort', 'sort-by',
2985
+ 'sorted', 'sorted-by', 'spit', 'string',
2986
+ 'string/ascii-lower', 'string/ascii-upper',
2987
+ 'string/bytes', 'string/check-set', 'string/find',
2988
+ 'string/find-all', 'string/format', 'string/from-bytes',
2989
+ 'string/has-prefix?', 'string/has-suffix?',
2990
+ 'string/join', 'string/repeat', 'string/replace',
2991
+ 'string/replace-all', 'string/reverse', 'string/slice',
2992
+ 'string/split', 'string/trim', 'string/triml',
2993
+ 'string/trimr', 'string?', 'struct', 'struct/getproto',
2994
+ 'struct/proto-flatten', 'struct/to-table',
2995
+ 'struct/with-proto', 'struct?', 'sum', 'symbol',
2996
+ 'symbol/slice', 'symbol?', 'table', 'table/clear',
2997
+ 'table/clone', 'table/getproto', 'table/new',
2998
+ 'table/proto-flatten', 'table/rawget', 'table/setproto',
2999
+ 'table/to-struct', 'table/weak', 'table/weak-keys',
3000
+ 'table/weak-values', 'table?', 'take', 'take-until',
3001
+ 'take-while', 'thaw', 'trace', 'true?', 'truthy?',
3002
+ 'tuple', 'tuple/brackets', 'tuple/setmap',
3003
+ 'tuple/slice', 'tuple/sourcemap', 'tuple/type',
3004
+ 'tuple?', 'type', 'unmarshal', 'untrace', 'update',
3005
+ 'update-in', 'values', 'varglobal', 'walk',
3006
+ 'warn-compile', 'xprin', 'xprinf', 'xprint', 'xprintf',
3007
+ 'yield', 'zero?', 'zipcoll',
3008
+ # obsolete builtin functions
3009
+ 'tarray/buffer', 'tarray/copy-bytes', 'tarray/length',
3010
+ 'tarray/new', 'tarray/properties', 'tarray/slice',
3011
+ 'tarray/swap-bytes', 'thread/close', 'thread/current',
3012
+ 'thread/exit', 'thread/new', 'thread/receive',
3013
+ 'thread/send'
3014
+ )
3015
+
3016
+ builtin_variables = (
3017
+ 'debugger-env', 'default-peg-grammar', 'janet/build',
3018
+ 'janet/config-bits', 'janet/version', 'load-image-dict',
3019
+ 'make-image-dict', 'math/-inf', 'math/e', 'math/inf',
3020
+ 'math/int-max', 'math/int-min', 'math/int32-max',
3021
+ 'math/int32-min', 'math/nan', 'math/pi', 'module/cache',
3022
+ 'module/loaders', 'module/loading', 'module/paths',
3023
+ 'root-env', 'stderr', 'stdin', 'stdout'
3024
+ )
3025
+
3026
+ constants = (
3027
+ 'false', 'nil', 'true'
3028
+ )
3029
+
3030
+ # XXX: this form not usable to pass to `suffix=`
3031
+ #_token_end = r'''
3032
+ # (?= # followed by one of:
3033
+ # \s # whitespace
3034
+ # | \# # comment
3035
+ # | [)\]] # end delimiters
3036
+ # | $ # end of file
3037
+ # )
3038
+ #'''
3039
+
3040
+ # ...so, express it like this
3041
+ _token_end = r'(?=\s|#|[)\]]|$)'
3042
+
3043
+ _first_char = r'[a-zA-Z!$%&*+\-./<=>?@^_]'
3044
+ _rest_char = rf'([0-9:]|{_first_char})'
3045
+
3046
+ valid_name = rf'{_first_char}({_rest_char})*'
3047
+
3048
+ _radix_unit = r'[0-9a-zA-Z][0-9a-zA-Z_]*'
3049
+
3050
+ # exponent marker, optional sign, one or more alphanumeric
3051
+ _radix_exp = r'&[+-]?[0-9a-zA-Z]+'
3052
+
3053
+ # 2af3__bee_
3054
+ _hex_unit = r'[0-9a-fA-F][0-9a-fA-F_]*'
3055
+
3056
+ # 12_000__
3057
+ _dec_unit = r'[0-9][0-9_]*'
3058
+
3059
+ # E-23
3060
+ # lower or uppercase e, optional sign, one or more digits
3061
+ _dec_exp = r'[eE][+-]?[0-9]+'
3062
+
3063
+ tokens = {
3064
+ 'root': [
3065
+ (r'#.*$', Comment.Single),
3066
+
3067
+ (r'\s+', Whitespace),
3068
+
3069
+ # radix number
3070
+ (rf'''(?x)
3071
+ [+-]? [0-9]{{1,2}} r {_radix_unit} \. ({_radix_unit})?
3072
+ ({_radix_exp})?
3073
+ ''',
3074
+ Number),
3075
+
3076
+ (rf'''(?x)
3077
+ [+-]? [0-9]{{1,2}} r (\.)? {_radix_unit}
3078
+ ({_radix_exp})?
3079
+ ''',
3080
+ Number),
3081
+
3082
+ # hex number
3083
+ (rf'(?x) [+-]? 0x {_hex_unit} \. ({_hex_unit})?',
3084
+ Number.Hex),
3085
+
3086
+ (rf'(?x) [+-]? 0x (\.)? {_hex_unit}',
3087
+ Number.Hex),
3088
+
3089
+ # decimal number
3090
+ (rf'(?x) [+-]? {_dec_unit} \. ({_dec_unit})? ({_dec_exp})?',
3091
+ Number.Float),
3092
+
3093
+ (rf'(?x) [+-]? (\.)? {_dec_unit} ({_dec_exp})?',
3094
+ Number.Float),
3095
+
3096
+ # strings and buffers
3097
+ (r'@?"', String, 'string'),
3098
+
3099
+ # long-strings and long-buffers
3100
+ #
3101
+ # non-empty content enclosed by a pair of n-backticks
3102
+ # with optional leading @
3103
+ (r'@?(`+)(.|\n)+?\1', String),
3104
+
3105
+ # things that hang out on front
3106
+ #
3107
+ # ' ~ , ; |
3108
+ (r"['~,;|]", Operator),
3109
+
3110
+ # collection delimiters
3111
+ #
3112
+ # @( ( )
3113
+ # @[ [ ]
3114
+ # @{ { }
3115
+ (r'@?[(\[{]|[)\]}]', Punctuation),
3116
+
3117
+ # constants
3118
+ (words(constants, suffix=_token_end), Keyword.Constants),
3119
+
3120
+ # keywords
3121
+ (rf'(:({_rest_char})+|:)', Name.Constant),
3122
+
3123
+ # symbols
3124
+ (words(builtin_variables, suffix=_token_end),
3125
+ Name.Variable.Global),
3126
+
3127
+ (words(special_forms, prefix=r'(?<=\()', suffix=_token_end),
3128
+ Keyword.Reserved),
3129
+
3130
+ (words(builtin_macros, prefix=r'(?<=\()', suffix=_token_end),
3131
+ Name.Builtin),
3132
+
3133
+ (words(builtin_functions, prefix=r'(?<=\()', suffix=_token_end),
3134
+ Name.Function),
3135
+
3136
+ # other symbols
3137
+ (valid_name, Name.Variable),
3138
+ ],
3139
+ 'string': [
3140
+ (r'\\(u[0-9a-fA-F]{4}|U[0-9a-fA-F]{6})', String.Escape),
3141
+ (r'\\x[0-9a-fA-F]{2}', String.Escape),
3142
+ (r'\\.', String.Escape),
3143
+ (r'"', String, '#pop'),
3144
+ (r'[^\\"]+', String),
3145
+ ]
3146
+ }