pygments.rb 3.0.0 → 5.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 (360) 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/.rubocop.yml +1 -2
  5. data/CHANGELOG.adoc +13 -1
  6. data/README.adoc +3 -3
  7. data/Rakefile +1 -1
  8. data/bench.rb +3 -3
  9. data/lib/pygments/version.rb +1 -1
  10. data/pygments.rb.gemspec +6 -4
  11. data/test/test_pygments.rb +0 -4
  12. data/vendor/pygments-main/bin/pygmentize +1 -1
  13. data/vendor/pygments-main/pygments/__init__.py +2 -2
  14. data/vendor/pygments-main/pygments/__main__.py +1 -1
  15. data/vendor/pygments-main/pygments/cmdline.py +2 -2
  16. data/vendor/pygments-main/pygments/console.py +1 -1
  17. data/vendor/pygments-main/pygments/filter.py +1 -1
  18. data/vendor/pygments-main/pygments/filters/__init__.py +10 -8
  19. data/vendor/pygments-main/pygments/formatter.py +1 -1
  20. data/vendor/pygments-main/pygments/formatters/__init__.py +1 -1
  21. data/vendor/pygments-main/pygments/formatters/_mapping.py +0 -0
  22. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  23. data/vendor/pygments-main/pygments/formatters/groff.py +1 -1
  24. data/vendor/pygments-main/pygments/formatters/html.py +20 -10
  25. data/vendor/pygments-main/pygments/formatters/img.py +3 -2
  26. data/vendor/pygments-main/pygments/formatters/irc.py +1 -2
  27. data/vendor/pygments-main/pygments/formatters/latex.py +1 -1
  28. data/vendor/pygments-main/pygments/formatters/other.py +1 -1
  29. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +1 -1
  30. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
  31. data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
  32. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  33. data/vendor/pygments-main/pygments/formatters/terminal256.py +6 -6
  34. data/vendor/pygments-main/pygments/lexer.py +7 -5
  35. data/vendor/pygments-main/pygments/lexers/__init__.py +1 -1
  36. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +1 -1
  37. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  38. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  39. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +1 -1
  40. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
  41. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +1 -1
  42. data/vendor/pygments-main/pygments/lexers/_googlesql_builtins.py +918 -0
  43. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +1 -1
  44. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  45. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +404 -152
  46. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -1
  47. data/vendor/pygments-main/pygments/lexers/_luau_builtins.py +1 -1
  48. data/vendor/pygments-main/pygments/lexers/_mapping.py +24 -10
  49. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  50. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +52 -3
  51. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  52. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +7 -4
  53. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -1
  54. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +1 -1
  55. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1 -1
  56. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -1
  58. data/vendor/pygments-main/pygments/lexers/_sql_builtins.py +106 -0
  59. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +126 -13
  60. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  61. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  63. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  64. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  65. data/vendor/pygments-main/pygments/lexers/actionscript.py +3 -3
  66. data/vendor/pygments-main/pygments/lexers/ada.py +1 -1
  67. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  68. data/vendor/pygments-main/pygments/lexers/algebra.py +8 -6
  69. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  70. data/vendor/pygments-main/pygments/lexers/amdgpu.py +1 -1
  71. data/vendor/pygments-main/pygments/lexers/ampl.py +1 -1
  72. data/vendor/pygments-main/pygments/lexers/apdlexer.py +1 -1
  73. data/vendor/pygments-main/pygments/lexers/apl.py +1 -1
  74. data/vendor/pygments-main/pygments/lexers/archetype.py +4 -4
  75. data/vendor/pygments-main/pygments/lexers/arrow.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/arturo.py +1 -1
  77. data/vendor/pygments-main/pygments/lexers/asc.py +1 -1
  78. data/vendor/pygments-main/pygments/lexers/asm.py +29 -21
  79. data/vendor/pygments-main/pygments/lexers/asn1.py +3 -3
  80. data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
  81. data/vendor/pygments-main/pygments/lexers/bare.py +1 -1
  82. data/vendor/pygments-main/pygments/lexers/basic.py +1 -1
  83. data/vendor/pygments-main/pygments/lexers/bdd.py +1 -1
  84. data/vendor/pygments-main/pygments/lexers/berry.py +1 -1
  85. data/vendor/pygments-main/pygments/lexers/bibtex.py +1 -1
  86. data/vendor/pygments-main/pygments/lexers/blueprint.py +1 -1
  87. data/vendor/pygments-main/pygments/lexers/boa.py +1 -1
  88. data/vendor/pygments-main/pygments/lexers/bqn.py +18 -15
  89. data/vendor/pygments-main/pygments/lexers/business.py +1 -1
  90. data/vendor/pygments-main/pygments/lexers/c_cpp.py +18 -17
  91. data/vendor/pygments-main/pygments/lexers/c_like.py +1 -1
  92. data/vendor/pygments-main/pygments/lexers/capnproto.py +1 -1
  93. data/vendor/pygments-main/pygments/lexers/carbon.py +1 -1
  94. data/vendor/pygments-main/pygments/lexers/cddl.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/chapel.py +1 -1
  96. data/vendor/pygments-main/pygments/lexers/clean.py +1 -1
  97. data/vendor/pygments-main/pygments/lexers/codeql.py +80 -0
  98. data/vendor/pygments-main/pygments/lexers/comal.py +1 -1
  99. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
  100. data/vendor/pygments-main/pygments/lexers/configs.py +17 -8
  101. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  102. data/vendor/pygments-main/pygments/lexers/cplint.py +1 -1
  103. data/vendor/pygments-main/pygments/lexers/crystal.py +1 -1
  104. data/vendor/pygments-main/pygments/lexers/csound.py +1 -1
  105. data/vendor/pygments-main/pygments/lexers/css.py +32 -2
  106. data/vendor/pygments-main/pygments/lexers/d.py +1 -1
  107. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
  108. data/vendor/pygments-main/pygments/lexers/data.py +2 -2
  109. data/vendor/pygments-main/pygments/lexers/dax.py +1 -1
  110. data/vendor/pygments-main/pygments/lexers/devicetree.py +17 -5
  111. data/vendor/pygments-main/pygments/lexers/diff.py +1 -1
  112. data/vendor/pygments-main/pygments/lexers/dns.py +1 -1
  113. data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -13
  114. data/vendor/pygments-main/pygments/lexers/dsls.py +2 -2
  115. data/vendor/pygments-main/pygments/lexers/dylan.py +3 -3
  116. data/vendor/pygments-main/pygments/lexers/ecl.py +1 -1
  117. data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
  118. data/vendor/pygments-main/pygments/lexers/elm.py +1 -1
  119. data/vendor/pygments-main/pygments/lexers/elpi.py +55 -26
  120. data/vendor/pygments-main/pygments/lexers/email.py +1 -1
  121. data/vendor/pygments-main/pygments/lexers/erlang.py +1 -1
  122. data/vendor/pygments-main/pygments/lexers/esoteric.py +1 -1
  123. data/vendor/pygments-main/pygments/lexers/ezhil.py +1 -1
  124. data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
  125. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
  126. data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
  127. data/vendor/pygments-main/pygments/lexers/fift.py +1 -1
  128. data/vendor/pygments-main/pygments/lexers/floscript.py +1 -1
  129. data/vendor/pygments-main/pygments/lexers/forth.py +1 -1
  130. data/vendor/pygments-main/pygments/lexers/fortran.py +1 -1
  131. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
  132. data/vendor/pygments-main/pygments/lexers/freefem.py +1 -1
  133. data/vendor/pygments-main/pygments/lexers/func.py +1 -1
  134. data/vendor/pygments-main/pygments/lexers/functional.py +2 -2
  135. data/vendor/pygments-main/pygments/lexers/futhark.py +1 -1
  136. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +1 -1
  137. data/vendor/pygments-main/pygments/lexers/gdscript.py +1 -1
  138. data/vendor/pygments-main/pygments/lexers/gleam.py +74 -0
  139. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  140. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +1 -1
  141. data/vendor/pygments-main/pygments/lexers/graph.py +1 -1
  142. data/vendor/pygments-main/pygments/lexers/graphics.py +1 -1
  143. data/vendor/pygments-main/pygments/lexers/graphql.py +1 -1
  144. data/vendor/pygments-main/pygments/lexers/graphviz.py +1 -1
  145. data/vendor/pygments-main/pygments/lexers/gsql.py +1 -1
  146. data/vendor/pygments-main/pygments/lexers/hare.py +73 -0
  147. data/vendor/pygments-main/pygments/lexers/haskell.py +5 -4
  148. data/vendor/pygments-main/pygments/lexers/haxe.py +9 -3
  149. data/vendor/pygments-main/pygments/lexers/hdl.py +1 -1
  150. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -1
  151. data/vendor/pygments-main/pygments/lexers/html.py +48 -4
  152. data/vendor/pygments-main/pygments/lexers/idl.py +1 -1
  153. data/vendor/pygments-main/pygments/lexers/igor.py +2 -2
  154. data/vendor/pygments-main/pygments/lexers/inferno.py +1 -1
  155. data/vendor/pygments-main/pygments/lexers/installers.py +53 -26
  156. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -1
  157. data/vendor/pygments-main/pygments/lexers/iolang.py +1 -1
  158. data/vendor/pygments-main/pygments/lexers/j.py +1 -1
  159. data/vendor/pygments-main/pygments/lexers/javascript.py +5 -1
  160. data/vendor/pygments-main/pygments/lexers/jmespath.py +1 -1
  161. data/vendor/pygments-main/pygments/lexers/jslt.py +1 -1
  162. data/vendor/pygments-main/pygments/lexers/json5.py +83 -0
  163. data/vendor/pygments-main/pygments/lexers/jsonnet.py +1 -1
  164. data/vendor/pygments-main/pygments/lexers/jsx.py +64 -39
  165. data/vendor/pygments-main/pygments/lexers/julia.py +2 -1
  166. data/vendor/pygments-main/pygments/lexers/jvm.py +11 -6
  167. data/vendor/pygments-main/pygments/lexers/kuin.py +1 -1
  168. data/vendor/pygments-main/pygments/lexers/kusto.py +1 -1
  169. data/vendor/pygments-main/pygments/lexers/ldap.py +1 -1
  170. data/vendor/pygments-main/pygments/lexers/lean.py +3 -3
  171. data/vendor/pygments-main/pygments/lexers/lilypond.py +1 -1
  172. data/vendor/pygments-main/pygments/lexers/lisp.py +18 -12
  173. data/vendor/pygments-main/pygments/lexers/macaulay2.py +169 -110
  174. data/vendor/pygments-main/pygments/lexers/make.py +1 -1
  175. data/vendor/pygments-main/pygments/lexers/maple.py +291 -0
  176. data/vendor/pygments-main/pygments/lexers/markup.py +11 -6
  177. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  178. data/vendor/pygments-main/pygments/lexers/matlab.py +5 -4
  179. data/vendor/pygments-main/pygments/lexers/maxima.py +1 -1
  180. data/vendor/pygments-main/pygments/lexers/meson.py +3 -3
  181. data/vendor/pygments-main/pygments/lexers/mime.py +1 -1
  182. data/vendor/pygments-main/pygments/lexers/minecraft.py +3 -2
  183. data/vendor/pygments-main/pygments/lexers/mips.py +1 -1
  184. data/vendor/pygments-main/pygments/lexers/ml.py +1 -1
  185. data/vendor/pygments-main/pygments/lexers/modeling.py +3 -1
  186. data/vendor/pygments-main/pygments/lexers/modula2.py +1 -1
  187. data/vendor/pygments-main/pygments/lexers/mojo.py +7 -4
  188. data/vendor/pygments-main/pygments/lexers/monte.py +1 -1
  189. data/vendor/pygments-main/pygments/lexers/mosel.py +1 -1
  190. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
  191. data/vendor/pygments-main/pygments/lexers/nimrod.py +1 -1
  192. data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
  193. data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/numbair.py +63 -0
  195. data/vendor/pygments-main/pygments/lexers/oberon.py +2 -2
  196. data/vendor/pygments-main/pygments/lexers/objective.py +12 -12
  197. data/vendor/pygments-main/pygments/lexers/ooc.py +3 -3
  198. data/vendor/pygments-main/pygments/lexers/openscad.py +1 -1
  199. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  200. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
  201. data/vendor/pygments-main/pygments/lexers/parsers.py +5 -5
  202. data/vendor/pygments-main/pygments/lexers/pascal.py +1 -1
  203. data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
  204. data/vendor/pygments-main/pygments/lexers/pddl.py +82 -0
  205. data/vendor/pygments-main/pygments/lexers/perl.py +1 -1
  206. data/vendor/pygments-main/pygments/lexers/phix.py +1 -1
  207. data/vendor/pygments-main/pygments/lexers/php.py +6 -5
  208. data/vendor/pygments-main/pygments/lexers/pointless.py +1 -1
  209. data/vendor/pygments-main/pygments/lexers/pony.py +1 -1
  210. data/vendor/pygments-main/pygments/lexers/praat.py +1 -1
  211. data/vendor/pygments-main/pygments/lexers/procfile.py +1 -1
  212. data/vendor/pygments-main/pygments/lexers/prolog.py +1 -1
  213. data/vendor/pygments-main/pygments/lexers/promql.py +1 -1
  214. data/vendor/pygments-main/pygments/lexers/prql.py +1 -1
  215. data/vendor/pygments-main/pygments/lexers/ptx.py +1 -1
  216. data/vendor/pygments-main/pygments/lexers/python.py +58 -52
  217. data/vendor/pygments-main/pygments/lexers/q.py +1 -1
  218. data/vendor/pygments-main/pygments/lexers/qlik.py +1 -1
  219. data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/r.py +8 -4
  221. data/vendor/pygments-main/pygments/lexers/rdf.py +4 -4
  222. data/vendor/pygments-main/pygments/lexers/rebol.py +1 -1
  223. data/vendor/pygments-main/pygments/lexers/rego.py +57 -0
  224. data/vendor/pygments-main/pygments/lexers/rell.py +68 -0
  225. data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
  226. data/vendor/pygments-main/pygments/lexers/ride.py +1 -1
  227. data/vendor/pygments-main/pygments/lexers/rita.py +1 -1
  228. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  229. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
  230. data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -1
  231. data/vendor/pygments-main/pygments/lexers/ruby.py +1 -1
  232. data/vendor/pygments-main/pygments/lexers/rust.py +1 -1
  233. data/vendor/pygments-main/pygments/lexers/sas.py +1 -1
  234. data/vendor/pygments-main/pygments/lexers/savi.py +1 -1
  235. data/vendor/pygments-main/pygments/lexers/scdoc.py +1 -1
  236. data/vendor/pygments-main/pygments/lexers/scripting.py +65 -25
  237. data/vendor/pygments-main/pygments/lexers/sgf.py +1 -1
  238. data/vendor/pygments-main/pygments/lexers/shell.py +5 -1
  239. data/vendor/pygments-main/pygments/lexers/sieve.py +1 -1
  240. data/vendor/pygments-main/pygments/lexers/slash.py +1 -1
  241. data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -1
  242. data/vendor/pygments-main/pygments/lexers/smithy.py +1 -1
  243. data/vendor/pygments-main/pygments/lexers/smv.py +1 -1
  244. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  245. data/vendor/pygments-main/pygments/lexers/solidity.py +1 -1
  246. data/vendor/pygments-main/pygments/lexers/soong.py +1 -1
  247. data/vendor/pygments-main/pygments/lexers/sophia.py +1 -1
  248. data/vendor/pygments-main/pygments/lexers/special.py +2 -1
  249. data/vendor/pygments-main/pygments/lexers/spice.py +2 -2
  250. data/vendor/pygments-main/pygments/lexers/sql.py +205 -127
  251. data/vendor/pygments-main/pygments/lexers/srcinfo.py +1 -1
  252. data/vendor/pygments-main/pygments/lexers/stata.py +1 -1
  253. data/vendor/pygments-main/pygments/lexers/supercollider.py +1 -1
  254. data/vendor/pygments-main/pygments/lexers/tablegen.py +177 -0
  255. data/vendor/pygments-main/pygments/lexers/tact.py +1 -1
  256. data/vendor/pygments-main/pygments/lexers/tal.py +1 -1
  257. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
  258. data/vendor/pygments-main/pygments/lexers/teal.py +1 -1
  259. data/vendor/pygments-main/pygments/lexers/templates.py +3 -3
  260. data/vendor/pygments-main/pygments/lexers/teraterm.py +11 -1
  261. data/vendor/pygments-main/pygments/lexers/testing.py +1 -1
  262. data/vendor/pygments-main/pygments/lexers/text.py +2 -2
  263. data/vendor/pygments-main/pygments/lexers/textedit.py +1 -1
  264. data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -1
  265. data/vendor/pygments-main/pygments/lexers/theorem.py +8 -8
  266. data/vendor/pygments-main/pygments/lexers/thingsdb.py +8 -5
  267. data/vendor/pygments-main/pygments/lexers/tlb.py +1 -1
  268. data/vendor/pygments-main/pygments/lexers/tls.py +1 -1
  269. data/vendor/pygments-main/pygments/lexers/tnt.py +1 -1
  270. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  271. data/vendor/pygments-main/pygments/lexers/typoscript.py +1 -1
  272. data/vendor/pygments-main/pygments/lexers/typst.py +82 -26
  273. data/vendor/pygments-main/pygments/lexers/ul4.py +1 -1
  274. data/vendor/pygments-main/pygments/lexers/unicon.py +1 -1
  275. data/vendor/pygments-main/pygments/lexers/urbi.py +1 -1
  276. data/vendor/pygments-main/pygments/lexers/usd.py +1 -1
  277. data/vendor/pygments-main/pygments/lexers/varnish.py +1 -1
  278. data/vendor/pygments-main/pygments/lexers/verification.py +1 -1
  279. data/vendor/pygments-main/pygments/lexers/verifpal.py +1 -1
  280. data/vendor/pygments-main/pygments/lexers/vip.py +1 -1
  281. data/vendor/pygments-main/pygments/lexers/vyper.py +2 -2
  282. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  283. data/vendor/pygments-main/pygments/lexers/webassembly.py +1 -1
  284. data/vendor/pygments-main/pygments/lexers/webidl.py +1 -1
  285. data/vendor/pygments-main/pygments/lexers/webmisc.py +1 -1
  286. data/vendor/pygments-main/pygments/lexers/wgsl.py +1 -1
  287. data/vendor/pygments-main/pygments/lexers/whiley.py +1 -1
  288. data/vendor/pygments-main/pygments/lexers/wowtoc.py +1 -1
  289. data/vendor/pygments-main/pygments/lexers/wren.py +1 -1
  290. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  291. data/vendor/pygments-main/pygments/lexers/xorg.py +1 -1
  292. data/vendor/pygments-main/pygments/lexers/yang.py +1 -1
  293. data/vendor/pygments-main/pygments/lexers/yara.py +1 -1
  294. data/vendor/pygments-main/pygments/lexers/zig.py +2 -2
  295. data/vendor/pygments-main/pygments/modeline.py +1 -1
  296. data/vendor/pygments-main/pygments/plugin.py +3 -1
  297. data/vendor/pygments-main/pygments/regexopt.py +13 -2
  298. data/vendor/pygments-main/pygments/scanner.py +1 -1
  299. data/vendor/pygments-main/pygments/sphinxext.py +1 -1
  300. data/vendor/pygments-main/pygments/style.py +1 -1
  301. data/vendor/pygments-main/pygments/styles/__init__.py +1 -1
  302. data/vendor/pygments-main/pygments/styles/abap.py +1 -1
  303. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  304. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  305. data/vendor/pygments-main/pygments/styles/arduino.py +1 -1
  306. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  307. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  308. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  309. data/vendor/pygments-main/pygments/styles/coffee.py +1 -1
  310. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  311. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  312. data/vendor/pygments-main/pygments/styles/dracula.py +1 -1
  313. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  314. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  315. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +1 -1
  316. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  317. data/vendor/pygments-main/pygments/styles/gh_dark.py +1 -1
  318. data/vendor/pygments-main/pygments/styles/gruvbox.py +1 -1
  319. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  320. data/vendor/pygments-main/pygments/styles/inkpot.py +1 -1
  321. data/vendor/pygments-main/pygments/styles/lightbulb.py +1 -1
  322. data/vendor/pygments-main/pygments/styles/lilypond.py +1 -1
  323. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  324. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  325. data/vendor/pygments-main/pygments/styles/material.py +1 -1
  326. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  327. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  328. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  329. data/vendor/pygments-main/pygments/styles/nord.py +1 -1
  330. data/vendor/pygments-main/pygments/styles/onedark.py +13 -3
  331. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  332. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  333. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  334. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  335. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -1
  336. data/vendor/pygments-main/pygments/styles/rrt.py +18 -3
  337. data/vendor/pygments-main/pygments/styles/sas.py +1 -1
  338. data/vendor/pygments-main/pygments/styles/solarized.py +1 -1
  339. data/vendor/pygments-main/pygments/styles/staroffice.py +1 -1
  340. data/vendor/pygments-main/pygments/styles/stata_dark.py +1 -1
  341. data/vendor/pygments-main/pygments/styles/stata_light.py +1 -1
  342. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  343. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  344. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  345. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  346. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  347. data/vendor/pygments-main/pygments/styles/zenburn.py +1 -1
  348. data/vendor/pygments-main/pygments/token.py +1 -1
  349. data/vendor/pygments-main/pygments/unistring.py +1 -1
  350. data/vendor/pygments-main/pygments/util.py +2 -2
  351. data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/METADATA +7 -7
  352. data/vendor/pygments-main/pygments-2.20.0.dist-info/RECORD +687 -0
  353. data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/WHEEL +1 -1
  354. data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/licenses/AUTHORS +9 -0
  355. metadata +44 -21
  356. data/vendor/pygments-main/pygments-2.18.0.dist-info/RECORD +0 -663
  357. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/INSTALLER +0 -0
  358. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/REQUESTED +0 -0
  359. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/entry_points.txt +0 -0
  360. /data/vendor/pygments-main/{pygments-2.18.0.dist-info → pygments-2.20.0.dist-info}/licenses/LICENSE +0 -0
@@ -36,32 +36,27 @@
36
36
  The ``tests/examplefiles`` contains a few test files with data to be
37
37
  parsed by these lexers.
38
38
 
39
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
39
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
40
40
  :license: BSD, see LICENSE for details.
41
41
  """
42
42
 
43
+ import collections
43
44
  import re
44
45
 
45
46
  from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, words
47
+ from pygments.lexers import _googlesql_builtins
48
+ from pygments.lexers import _mysql_builtins
49
+ from pygments.lexers import _postgres_builtins
50
+ from pygments.lexers import _sql_builtins
51
+ from pygments.lexers import _tsql_builtins
52
+ from pygments.lexers import get_lexer_by_name, ClassNotFound
46
53
  from pygments.token import Punctuation, Whitespace, Text, Comment, Operator, \
47
54
  Keyword, Name, String, Number, Generic, Literal
48
- from pygments.lexers import get_lexer_by_name, ClassNotFound
49
-
50
- from pygments.lexers._postgres_builtins import KEYWORDS, DATATYPES, \
51
- PSEUDO_TYPES, PLPGSQL_KEYWORDS, EXPLAIN_KEYWORDS
52
- from pygments.lexers._mysql_builtins import \
53
- MYSQL_CONSTANTS, \
54
- MYSQL_DATATYPES, \
55
- MYSQL_FUNCTIONS, \
56
- MYSQL_KEYWORDS, \
57
- MYSQL_OPTIMIZER_HINTS
58
-
59
- from pygments.lexers import _tsql_builtins
60
55
 
61
56
 
62
- __all__ = ['PostgresLexer', 'PlPgsqlLexer', 'PostgresConsoleLexer',
63
- 'PostgresExplainLexer', 'SqlLexer', 'TransactSqlLexer',
64
- 'MySqlLexer', 'SqliteConsoleLexer', 'RqlLexer']
57
+ __all__ = ['GoogleSqlLexer', 'PostgresLexer', 'PlPgsqlLexer',
58
+ 'PostgresConsoleLexer', 'PostgresExplainLexer', 'SqlLexer',
59
+ 'TransactSqlLexer', 'MySqlLexer', 'SqliteConsoleLexer', 'RqlLexer']
65
60
 
66
61
  line_re = re.compile('.*?\n')
67
62
  sqlite_prompt_re = re.compile(r'^(?:sqlite| ...)>(?= )')
@@ -77,6 +72,12 @@ tsql_go_re = re.compile(r'\bgo\b', re.IGNORECASE)
77
72
  tsql_declare_re = re.compile(r'\bdeclare\s+@', re.IGNORECASE)
78
73
  tsql_variable_re = re.compile(r'@[a-zA-Z_]\w*\b')
79
74
 
75
+ # Identifiers for analyse_text()
76
+ googlesql_identifiers = (
77
+ _googlesql_builtins.functionnames
78
+ + _googlesql_builtins.keywords
79
+ + _googlesql_builtins.types)
80
+
80
81
 
81
82
  def language_callback(lexer, match):
82
83
  """Parse the content of a $-string using a lexer
@@ -169,9 +170,10 @@ class PostgresLexer(PostgresBase, RegexLexer):
169
170
  (r'--.*\n?', Comment.Single),
170
171
  (r'/\*', Comment.Multiline, 'multiline-comments'),
171
172
  (r'(' + '|'.join(s.replace(" ", r"\s+")
172
- for s in DATATYPES + PSEUDO_TYPES) + r')\b',
173
+ for s in _postgres_builtins.DATATYPES +
174
+ _postgres_builtins.PSEUDO_TYPES) + r')\b',
173
175
  Name.Builtin),
174
- (words(KEYWORDS, suffix=r'\b'), Keyword),
176
+ (words(_postgres_builtins.KEYWORDS, suffix=r'\b'), Keyword),
175
177
  (r'[+*/<>=~!@#%^&|`?-]+', Operator),
176
178
  (r'::', Operator), # cast
177
179
  (r'\$\d+', Name.Variable),
@@ -225,7 +227,8 @@ class PlPgsqlLexer(PostgresBase, RegexLexer):
225
227
  for i, pattern in enumerate(tokens['root']):
226
228
  if pattern[1] == Keyword:
227
229
  tokens['root'][i] = (
228
- words(KEYWORDS + PLPGSQL_KEYWORDS, suffix=r'\b'),
230
+ words(_postgres_builtins.KEYWORDS +
231
+ _postgres_builtins.PLPGSQL_KEYWORDS, suffix=r'\b'),
229
232
  Keyword)
230
233
  del i
231
234
  break
@@ -310,6 +313,7 @@ class PostgresConsoleLexer(Lexer):
310
313
  mimetypes = ['text/x-postgresql-psql']
311
314
  url = 'https://www.postgresql.org'
312
315
  version_added = '1.5'
316
+ _example = "psql/psql_session.txt"
313
317
 
314
318
  def get_tokens_unprocessed(self, data):
315
319
  sql = PsqlRegexLexer(**self.options)
@@ -386,7 +390,7 @@ class PostgresExplainLexer(RegexLexer):
386
390
 
387
391
  tokens = {
388
392
  'root': [
389
- (r'(:|\(|\)|ms|kB|->|\.\.|\,)', Punctuation),
393
+ (r'(:|\(|\)|ms|kB|->|\.\.|\,|\/|=|%)', Punctuation),
390
394
  (r'(\s+)', Whitespace),
391
395
 
392
396
  # This match estimated cost and effectively measured counters with ANALYZE
@@ -395,9 +399,11 @@ class PostgresExplainLexer(RegexLexer):
395
399
  (r'(actual)( )(=?)', bygroups(Name.Class, Whitespace, Punctuation), 'instrumentation'),
396
400
 
397
401
  # Misc keywords
398
- (words(('actual', 'Memory Usage', 'Memory', 'Buckets', 'Batches',
399
- 'originally', 'row', 'rows', 'Hits', 'Misses',
400
- 'Evictions', 'Overflows'), suffix=r'\b'),
402
+ (words(('actual', 'Memory Usage', 'Disk Usage', 'Memory', 'Buckets',
403
+ 'Batches', 'originally', 'row', 'rows', 'Hits', 'Misses',
404
+ 'Evictions', 'Overflows', 'Planned Partitions', 'Estimates',
405
+ 'capacity', 'distinct keys', 'lookups', 'hit percent',
406
+ 'Index Searches', 'Storage', 'Disk Maximum Storage'), suffix=r'\b'),
401
407
  Comment.Single),
402
408
 
403
409
  (r'(hit|read|dirtied|written|write|time|calls)(=)', bygroups(Comment.Single, Operator)),
@@ -417,7 +423,7 @@ class PostgresExplainLexer(RegexLexer):
417
423
  'TID Cond', 'Run Condition', 'Order By', 'Function Call',
418
424
  'Table Function Call', 'Inner Unique', 'Params Evaluated',
419
425
  'Single Copy', 'Sampling', 'One-Time Filter', 'Output',
420
- 'Relations', 'Remote SQL'), suffix=r'\b'),
426
+ 'Relations', 'Remote SQL', 'Disabled'), suffix=r'\b'),
421
427
  Comment.Preproc, 'predicate'),
422
428
 
423
429
  # Special keyword to handle ON CONFLICT
@@ -442,7 +448,7 @@ class PostgresExplainLexer(RegexLexer):
442
448
  suffix=r'\b'), Name.Exception),
443
449
  (r'(I/O Timings)(:)( )', bygroups(Name.Exception, Punctuation, Whitespace)),
444
450
 
445
- (words(EXPLAIN_KEYWORDS, suffix=r'\b'), Keyword),
451
+ (words(_postgres_builtins.EXPLAIN_KEYWORDS, suffix=r'\b'), Keyword),
446
452
 
447
453
  # join keywords
448
454
  (r'((Right|Left|Full|Semi|Anti) Join)', Keyword.Type),
@@ -577,101 +583,8 @@ class SqlLexer(RegexLexer):
577
583
  (r'\s+', Whitespace),
578
584
  (r'--.*\n?', Comment.Single),
579
585
  (r'/\*', Comment.Multiline, 'multiline-comments'),
580
- (words((
581
- 'ABORT', 'ABS', 'ABSOLUTE', 'ACCESS', 'ADA', 'ADD', 'ADMIN', 'AFTER',
582
- 'AGGREGATE', 'ALIAS', 'ALL', 'ALLOCATE', 'ALTER', 'ANALYSE', 'ANALYZE',
583
- 'AND', 'ANY', 'ARE', 'AS', 'ASC', 'ASENSITIVE', 'ASSERTION', 'ASSIGNMENT',
584
- 'ASYMMETRIC', 'AT', 'ATOMIC', 'AUTHORIZATION', 'AVG', 'BACKWARD',
585
- 'BEFORE', 'BEGIN', 'BETWEEN', 'BITVAR', 'BIT_LENGTH', 'BOTH', 'BREADTH',
586
- 'BY', 'C', 'CACHE', 'CALL', 'CALLED', 'CARDINALITY', 'CASCADE',
587
- 'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CATALOG_NAME', 'CHAIN',
588
- 'CHARACTERISTICS', 'CHARACTER_LENGTH', 'CHARACTER_SET_CATALOG',
589
- 'CHARACTER_SET_NAME', 'CHARACTER_SET_SCHEMA', 'CHAR_LENGTH', 'CHECK',
590
- 'CHECKED', 'CHECKPOINT', 'CLASS', 'CLASS_ORIGIN', 'CLOB', 'CLOSE',
591
- 'CLUSTER', 'COALESCE', 'COBOL', 'COLLATE', 'COLLATION',
592
- 'COLLATION_CATALOG', 'COLLATION_NAME', 'COLLATION_SCHEMA', 'COLUMN',
593
- 'COLUMN_NAME', 'COMMAND_FUNCTION', 'COMMAND_FUNCTION_CODE', 'COMMENT',
594
- 'COMMIT', 'COMMITTED', 'COMPLETION', 'CONDITION_NUMBER', 'CONNECT',
595
- 'CONNECTION', 'CONNECTION_NAME', 'CONSTRAINT', 'CONSTRAINTS',
596
- 'CONSTRAINT_CATALOG', 'CONSTRAINT_NAME', 'CONSTRAINT_SCHEMA',
597
- 'CONSTRUCTOR', 'CONTAINS', 'CONTINUE', 'CONVERSION', 'CONVERT',
598
- 'COPY', 'CORRESPONDING', 'COUNT', 'CREATE', 'CREATEDB', 'CREATEUSER',
599
- 'CROSS', 'CUBE', 'CURRENT', 'CURRENT_DATE', 'CURRENT_PATH',
600
- 'CURRENT_ROLE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER',
601
- 'CURSOR', 'CURSOR_NAME', 'CYCLE', 'DATA', 'DATABASE',
602
- 'DATETIME_INTERVAL_CODE', 'DATETIME_INTERVAL_PRECISION', 'DAY',
603
- 'DEALLOCATE', 'DECLARE', 'DEFAULT', 'DEFAULTS', 'DEFERRABLE',
604
- 'DEFERRED', 'DEFINED', 'DEFINER', 'DELETE', 'DELIMITER', 'DELIMITERS',
605
- 'DEREF', 'DESC', 'DESCRIBE', 'DESCRIPTOR', 'DESTROY', 'DESTRUCTOR',
606
- 'DETERMINISTIC', 'DIAGNOSTICS', 'DICTIONARY', 'DISCONNECT', 'DISPATCH',
607
- 'DISTINCT', 'DO', 'DOMAIN', 'DROP', 'DYNAMIC', 'DYNAMIC_FUNCTION',
608
- 'DYNAMIC_FUNCTION_CODE', 'EACH', 'ELSE', 'ELSIF', 'ENCODING',
609
- 'ENCRYPTED', 'END', 'END-EXEC', 'EQUALS', 'ESCAPE', 'EVERY', 'EXCEPTION',
610
- 'EXCEPT', 'EXCLUDING', 'EXCLUSIVE', 'EXEC', 'EXECUTE', 'EXISTING',
611
- 'EXISTS', 'EXPLAIN', 'EXTERNAL', 'EXTRACT', 'FALSE', 'FETCH', 'FINAL',
612
- 'FIRST', 'FOR', 'FORCE', 'FOREIGN', 'FORTRAN', 'FORWARD', 'FOUND', 'FREE',
613
- 'FREEZE', 'FROM', 'FULL', 'FUNCTION', 'G', 'GENERAL', 'GENERATED', 'GET',
614
- 'GLOBAL', 'GO', 'GOTO', 'GRANT', 'GRANTED', 'GROUP', 'GROUPING',
615
- 'HANDLER', 'HAVING', 'HIERARCHY', 'HOLD', 'HOST', 'IDENTITY', 'IF',
616
- 'IGNORE', 'ILIKE', 'IMMEDIATE', 'IMMEDIATELY', 'IMMUTABLE', 'IMPLEMENTATION', 'IMPLICIT',
617
- 'IN', 'INCLUDING', 'INCREMENT', 'INDEX', 'INDITCATOR', 'INFIX',
618
- 'INHERITS', 'INITIALIZE', 'INITIALLY', 'INNER', 'INOUT', 'INPUT',
619
- 'INSENSITIVE', 'INSERT', 'INSTANTIABLE', 'INSTEAD', 'INTERSECT', 'INTO',
620
- 'INVOKER', 'IS', 'ISNULL', 'ISOLATION', 'ITERATE', 'JOIN', 'KEY',
621
- 'KEY_MEMBER', 'KEY_TYPE', 'LANCOMPILER', 'LANGUAGE', 'LARGE', 'LAST',
622
- 'LATERAL', 'LEADING', 'LEFT', 'LENGTH', 'LESS', 'LEVEL', 'LIKE', 'LIMIT',
623
- 'LISTEN', 'LOAD', 'LOCAL', 'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATION',
624
- 'LOCATOR', 'LOCK', 'LOWER', 'MAP', 'MATCH', 'MAX', 'MAXVALUE',
625
- 'MESSAGE_LENGTH', 'MESSAGE_OCTET_LENGTH', 'MESSAGE_TEXT', 'METHOD', 'MIN',
626
- 'MINUTE', 'MINVALUE', 'MOD', 'MODE', 'MODIFIES', 'MODIFY', 'MONTH',
627
- 'MORE', 'MOVE', 'MUMPS', 'NAMES', 'NATIONAL', 'NATURAL', 'NCHAR', 'NCLOB',
628
- 'NEW', 'NEXT', 'NO', 'NOCREATEDB', 'NOCREATEUSER', 'NONE', 'NOT',
629
- 'NOTHING', 'NOTIFY', 'NOTNULL', 'NULL', 'NULLABLE', 'NULLIF', 'OBJECT',
630
- 'OCTET_LENGTH', 'OF', 'OFF', 'OFFSET', 'OIDS', 'OLD', 'ON', 'ONLY',
631
- 'OPEN', 'OPERATION', 'OPERATOR', 'OPTION', 'OPTIONS', 'OR', 'ORDER',
632
- 'ORDINALITY', 'OUT', 'OUTER', 'OUTPUT', 'OVERLAPS', 'OVERLAY',
633
- 'OVERRIDING', 'OWNER', 'PAD', 'PARAMETER', 'PARAMETERS', 'PARAMETER_MODE',
634
- 'PARAMETER_NAME', 'PARAMETER_ORDINAL_POSITION',
635
- 'PARAMETER_SPECIFIC_CATALOG', 'PARAMETER_SPECIFIC_NAME',
636
- 'PARAMETER_SPECIFIC_SCHEMA', 'PARTIAL', 'PASCAL', 'PENDANT', 'PERIOD', 'PLACING',
637
- 'PLI', 'POSITION', 'POSTFIX', 'PRECEEDS', 'PRECISION', 'PREFIX', 'PREORDER',
638
- 'PREPARE', 'PRESERVE', 'PRIMARY', 'PRIOR', 'PRIVILEGES', 'PROCEDURAL',
639
- 'PROCEDURE', 'PUBLIC', 'READ', 'READS', 'RECHECK', 'RECURSIVE', 'REF',
640
- 'REFERENCES', 'REFERENCING', 'REINDEX', 'RELATIVE', 'RENAME',
641
- 'REPEATABLE', 'REPLACE', 'RESET', 'RESTART', 'RESTRICT', 'RESULT',
642
- 'RETURN', 'RETURNED_LENGTH', 'RETURNED_OCTET_LENGTH', 'RETURNED_SQLSTATE',
643
- 'RETURNS', 'REVOKE', 'RIGHT', 'ROLE', 'ROLLBACK', 'ROLLUP', 'ROUTINE',
644
- 'ROUTINE_CATALOG', 'ROUTINE_NAME', 'ROUTINE_SCHEMA', 'ROW', 'ROWS',
645
- 'ROW_COUNT', 'RULE', 'SAVE_POINT', 'SCALE', 'SCHEMA', 'SCHEMA_NAME',
646
- 'SCOPE', 'SCROLL', 'SEARCH', 'SECOND', 'SECURITY', 'SELECT', 'SELF',
647
- 'SENSITIVE', 'SERIALIZABLE', 'SERVER_NAME', 'SESSION', 'SESSION_USER',
648
- 'SET', 'SETOF', 'SETS', 'SHARE', 'SHOW', 'SIMILAR', 'SIMPLE', 'SIZE',
649
- 'SOME', 'SOURCE', 'SPACE', 'SPECIFIC', 'SPECIFICTYPE', 'SPECIFIC_NAME',
650
- 'SQL', 'SQLCODE', 'SQLERROR', 'SQLEXCEPTION', 'SQLSTATE', 'SQLWARNINIG',
651
- 'STABLE', 'START', 'STATE', 'STATEMENT', 'STATIC', 'STATISTICS', 'STDIN',
652
- 'STDOUT', 'STORAGE', 'STRICT', 'STRUCTURE', 'STYPE', 'SUBCLASS_ORIGIN',
653
- 'SUBLIST', 'SUBSTRING', 'SUCCEEDS', 'SUM', 'SYMMETRIC', 'SYSID', 'SYSTEM',
654
- 'SYSTEM_USER', 'TABLE', 'TABLE_NAME', ' TEMP', 'TEMPLATE', 'TEMPORARY',
655
- 'TERMINATE', 'THAN', 'THEN', 'TIME', 'TIMESTAMP', 'TIMEZONE_HOUR',
656
- 'TIMEZONE_MINUTE', 'TO', 'TOAST', 'TRAILING', 'TRANSACTION',
657
- 'TRANSACTIONS_COMMITTED', 'TRANSACTIONS_ROLLED_BACK', 'TRANSACTION_ACTIVE',
658
- 'TRANSFORM', 'TRANSFORMS', 'TRANSLATE', 'TRANSLATION', 'TREAT', 'TRIGGER',
659
- 'TRIGGER_CATALOG', 'TRIGGER_NAME', 'TRIGGER_SCHEMA', 'TRIM', 'TRUE',
660
- 'TRUNCATE', 'TRUSTED', 'TYPE', 'UNCOMMITTED', 'UNDER', 'UNENCRYPTED',
661
- 'UNION', 'UNIQUE', 'UNKNOWN', 'UNLISTEN', 'UNNAMED', 'UNNEST', 'UNTIL',
662
- 'UPDATE', 'UPPER', 'USAGE', 'USER', 'USER_DEFINED_TYPE_CATALOG',
663
- 'USER_DEFINED_TYPE_NAME', 'USER_DEFINED_TYPE_SCHEMA', 'USING', 'VACUUM',
664
- 'VALID', 'VALIDATOR', 'VALUES', 'VARIABLE', 'VERBOSE',
665
- 'VERSION', 'VERSIONS', 'VERSIONING', 'VIEW',
666
- 'VOLATILE', 'WHEN', 'WHENEVER', 'WHERE', 'WITH', 'WITHOUT', 'WORK',
667
- 'WRITE', 'YEAR', 'ZONE'), suffix=r'\b'),
668
- Keyword),
669
- (words((
670
- 'ARRAY', 'BIGINT', 'BINARY', 'BIT', 'BLOB', 'BOOLEAN', 'CHAR',
671
- 'CHARACTER', 'DATE', 'DEC', 'DECIMAL', 'FLOAT', 'INT', 'INTEGER',
672
- 'INTERVAL', 'NUMBER', 'NUMERIC', 'REAL', 'SERIAL', 'SMALLINT',
673
- 'VARCHAR', 'VARYING', 'INT8', 'SERIAL8', 'TEXT'), suffix=r'\b'),
674
- Name.Builtin),
586
+ (words(_sql_builtins.KEYWORDS, suffix=r'\b'), Keyword),
587
+ (words(_sql_builtins.DATATYPES, suffix=r'\b'), Name.Builtin),
675
588
  (r'[+*/<>=~!@#%^&|`?-]', Operator),
676
589
  (r'[0-9]+', Number.Integer),
677
590
  # TODO: Backslash escapes?
@@ -697,7 +610,7 @@ class TransactSqlLexer(RegexLexer):
697
610
  Transact-SQL (T-SQL) is Microsoft's and Sybase's proprietary extension to
698
611
  SQL.
699
612
 
700
- The list of keywords includes ODBC and keywords reserved for future use..
613
+ The list of keywords includes ODBC and keywords reserved for future use.
701
614
  """
702
615
 
703
616
  name = 'Transact-SQL'
@@ -712,7 +625,7 @@ class TransactSqlLexer(RegexLexer):
712
625
  tokens = {
713
626
  'root': [
714
627
  (r'\s+', Whitespace),
715
- (r'--.*?$\n?', Comment.Single),
628
+ (r'--.*[$|\n]?', Comment.Single),
716
629
  (r'/\*', Comment.Multiline, 'multiline-comments'),
717
630
  (words(_tsql_builtins.OPERATORS), Operator),
718
631
  (words(_tsql_builtins.OPERATOR_WORDS, suffix=r'\b'), Operator.Word),
@@ -855,10 +768,13 @@ class MySqlLexer(RegexLexer):
855
768
  (r'\b(character)(\s+)(set)\b', bygroups(Keyword, Whitespace, Keyword)),
856
769
  # In all other known cases, "SET" is tokenized by MYSQL_DATATYPES.
857
770
 
858
- (words(MYSQL_CONSTANTS, prefix=r'\b', suffix=r'\b'), Name.Constant),
859
- (words(MYSQL_DATATYPES, prefix=r'\b', suffix=r'\b'), Keyword.Type),
860
- (words(MYSQL_KEYWORDS, prefix=r'\b', suffix=r'\b'), Keyword),
861
- (words(MYSQL_FUNCTIONS, prefix=r'\b', suffix=r'\b(\s*)(\()'),
771
+ (words(_mysql_builtins.MYSQL_CONSTANTS, prefix=r'\b', suffix=r'\b'),
772
+ Name.Constant),
773
+ (words(_mysql_builtins.MYSQL_DATATYPES, prefix=r'\b', suffix=r'\b'),
774
+ Keyword.Type),
775
+ (words(_mysql_builtins.MYSQL_KEYWORDS, prefix=r'\b', suffix=r'\b'),
776
+ Keyword),
777
+ (words(_mysql_builtins.MYSQL_FUNCTIONS, prefix=r'\b', suffix=r'\b(\s*)(\()'),
862
778
  bygroups(Name.Function, Whitespace, Punctuation)),
863
779
 
864
780
  # Schema object names
@@ -880,7 +796,8 @@ class MySqlLexer(RegexLexer):
880
796
  'optimizer-hints': [
881
797
  (r'[^*a-z]+', Comment.Special),
882
798
  (r'\*/', Comment.Special, '#pop'),
883
- (words(MYSQL_OPTIMIZER_HINTS, suffix=r'\b'), Comment.Preproc),
799
+ (words(_mysql_builtins.MYSQL_OPTIMIZER_HINTS, suffix=r'\b'),
800
+ Comment.Preproc),
884
801
  ('[a-z]+', Comment.Special),
885
802
  (r'\*', Comment.Special),
886
803
  ],
@@ -963,6 +880,166 @@ class MySqlLexer(RegexLexer):
963
880
  return rating
964
881
 
965
882
 
883
+ class GoogleSqlLexer(RegexLexer):
884
+ """
885
+ GoogleSQL is Google's standard SQL dialect, formerly known as ZetaSQL.
886
+
887
+ The list of keywords includes reserved words for future use.
888
+ """
889
+
890
+ name = 'GoogleSQL'
891
+ aliases = ['googlesql', 'zetasql']
892
+ filenames = ['*.googlesql', '*.googlesql.sql']
893
+ mimetypes = ['text/x-google-sql', 'text/x-google-sql-aux']
894
+ url = 'https://cloud.google.com/bigquery/googlesql'
895
+ version_added = '2.19'
896
+
897
+ flags = re.IGNORECASE
898
+ tokens = {
899
+ 'root': [
900
+ (r'\s+', Whitespace),
901
+
902
+ # Comments
903
+ (r'(?:#|--\s+).*', Comment.Single),
904
+ (r'/\*', Comment.Multiline, 'multiline-comment'),
905
+
906
+ # Hexadecimal literals
907
+ (r"x'([0-9a-f]{2})+'", Number.Hex),
908
+ (r'0x[0-9a-f]+', Number.Hex),
909
+
910
+ # Binary literals
911
+ (r"b'[01]+'", Number.Bin),
912
+ (r'0b[01]+', Number.Bin),
913
+
914
+ # Numeric literals
915
+ (r'[0-9]+\.[0-9]*(e[+-]?[0-9]+)?', Number.Float), # Mandatory integer, optional fraction and exponent
916
+ (r'[0-9]*\.[0-9]+(e[+-]?[0-9]+)?', Number.Float), # Mandatory fraction, optional integer and exponent
917
+ (r'[0-9]+e[+-]?[0-9]+', Number.Float), # Exponents with integer significands are still floats
918
+ (r'[0-9]+(?=[^0-9a-z$_\u0080-\uffff])', Number.Integer), # Integers that are not in a schema object name
919
+
920
+ # Date literals
921
+ (r"\{\s*d\s*(?P<quote>['\"])\s*\d{2}(\d{2})?.?\d{2}.?\d{2}\s*(?P=quote)\s*\}",
922
+ Literal.Date),
923
+
924
+ # Time literals
925
+ (r"\{\s*t\s*(?P<quote>['\"])\s*(?:\d+\s+)?\d{1,2}.?\d{1,2}.?\d{1,2}(\.\d*)?\s*(?P=quote)\s*\}",
926
+ Literal.Date),
927
+
928
+ # Timestamp literals
929
+ (
930
+ r"\{\s*ts\s*(?P<quote>['\"])\s*"
931
+ r"\d{2}(?:\d{2})?.?\d{2}.?\d{2}" # Date part
932
+ r"\s+" # Whitespace between date and time
933
+ r"\d{1,2}.?\d{1,2}.?\d{1,2}(\.\d*)?" # Time part
934
+ r"\s*(?P=quote)\s*\}",
935
+ Literal.Date
936
+ ),
937
+
938
+ # String literals
939
+ (r"'", String.Single, 'single-quoted-string'),
940
+ (r'"', String.Double, 'double-quoted-string'),
941
+
942
+ # Variables
943
+ (r'@@(?:global\.|persist\.|persist_only\.|session\.)?[a-z_]+', Name.Variable),
944
+ (r'@[a-z0-9_$.]+', Name.Variable),
945
+ (r"@'", Name.Variable, 'single-quoted-variable'),
946
+ (r'@"', Name.Variable, 'double-quoted-variable'),
947
+ (r"@`", Name.Variable, 'backtick-quoted-variable'),
948
+ (r'\?', Name.Variable), # For demonstrating prepared statements
949
+
950
+ # Exceptions; these words tokenize differently in different contexts.
951
+ (r'\b(set)(?!\s*\()', Keyword),
952
+ (r'\b(character)(\s+)(set)\b', bygroups(Keyword, Whitespace, Keyword)),
953
+
954
+ # Constants, types, keywords, functions, operators
955
+ (words(_googlesql_builtins.constants, prefix=r'\b', suffix=r'\b'), Name.Constant),
956
+ (words(_googlesql_builtins.types, prefix=r'\b', suffix=r'\b'), Keyword.Type),
957
+ (words(_googlesql_builtins.keywords, prefix=r'\b', suffix=r'\b'), Keyword),
958
+ (words(_googlesql_builtins.functionnames, prefix=r'\b', suffix=r'\b(\s*)(\()'),
959
+ bygroups(Name.Function, Whitespace, Punctuation)),
960
+ (words(_googlesql_builtins.operators, prefix=r'\b', suffix=r'\b'), Operator),
961
+
962
+ # Schema object names
963
+ #
964
+ # Note: Although the first regex supports unquoted all-numeric
965
+ # identifiers, this will not be a problem in practice because
966
+ # numeric literals have already been handled above.
967
+ #
968
+ ('[0-9a-z$_\u0080-\uffff]+', Name),
969
+ (r'`', Name.Quoted, 'schema-object-name'),
970
+
971
+ # Punctuation
972
+ (r'[(),.;]', Punctuation),
973
+ ],
974
+
975
+ # Multiline comment substates
976
+ # ---------------------------
977
+
978
+ 'multiline-comment': [
979
+ (r'[^*]+', Comment.Multiline),
980
+ (r'\*/', Comment.Multiline, '#pop'),
981
+ (r'\*', Comment.Multiline),
982
+ ],
983
+
984
+ # String substates
985
+ # ----------------
986
+
987
+ 'single-quoted-string': [
988
+ (r"[^'\\]+", String.Single),
989
+ (r"''", String.Escape),
990
+ (r"""\\[0'"bnrtZ\\%_]""", String.Escape),
991
+ (r"'", String.Single, '#pop'),
992
+ ],
993
+
994
+ 'double-quoted-string': [
995
+ (r'[^"\\]+', String.Double),
996
+ (r'""', String.Escape),
997
+ (r"""\\[0'"bnrtZ\\%_]""", String.Escape),
998
+ (r'"', String.Double, '#pop'),
999
+ ],
1000
+
1001
+ # Variable substates
1002
+ # ------------------
1003
+
1004
+ 'single-quoted-variable': [
1005
+ (r"[^']+", Name.Variable),
1006
+ (r"''", Name.Variable),
1007
+ (r"'", Name.Variable, '#pop'),
1008
+ ],
1009
+
1010
+ 'double-quoted-variable': [
1011
+ (r'[^"]+', Name.Variable),
1012
+ (r'""', Name.Variable),
1013
+ (r'"', Name.Variable, '#pop'),
1014
+ ],
1015
+
1016
+ 'backtick-quoted-variable': [
1017
+ (r'[^`]+', Name.Variable),
1018
+ (r'``', Name.Variable),
1019
+ (r'`', Name.Variable, '#pop'),
1020
+ ],
1021
+
1022
+ # Schema object name substates
1023
+ # ----------------------------
1024
+ #
1025
+ # "Name.Quoted" and "Name.Quoted.Escape" are non-standard but
1026
+ # formatters will style them as "Name" by default but add
1027
+ # additional styles based on the token name. This gives users
1028
+ # flexibility to add custom styles as desired.
1029
+ #
1030
+ 'schema-object-name': [
1031
+ (r'[^`]+', Name.Quoted),
1032
+ (r'``', Name.Quoted.Escape),
1033
+ (r'`', Name.Quoted, '#pop'),
1034
+ ],
1035
+ }
1036
+
1037
+ def analyse_text(text):
1038
+ tokens = collections.Counter(text.split())
1039
+ return 0.001 * sum(count for t, count in tokens.items()
1040
+ if t in googlesql_identifiers)
1041
+
1042
+
966
1043
  class SqliteConsoleLexer(Lexer):
967
1044
  """
968
1045
  Lexer for example sessions using sqlite3.
@@ -974,6 +1051,7 @@ class SqliteConsoleLexer(Lexer):
974
1051
  mimetypes = ['text/x-sqlite3-console']
975
1052
  url = 'https://www.sqlite.org'
976
1053
  version_added = '0.11'
1054
+ _example = "sqlite3/sqlite3.sqlite3-console"
977
1055
 
978
1056
  def get_tokens_unprocessed(self, data):
979
1057
  sql = SqlLexer(**self.options)
@@ -7,7 +7,7 @@
7
7
  The description of the format can be found in the wiki:
8
8
  https://wiki.archlinux.org/title/.SRCINFO
9
9
 
10
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
10
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
11
11
  :license: BSD, see LICENSE for details.
12
12
  """
13
13
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for Stata
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexer for SuperCollider
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -0,0 +1,177 @@
1
+ """
2
+ pygments.lexers.tablegen
3
+ ~~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexer for LLVM's TableGen DSL.
6
+
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ from pygments.lexer import RegexLexer, include, words, using
12
+ from pygments.lexers.c_cpp import CppLexer
13
+ from pygments.token import Comment, Keyword, Name, Number, Operator, \
14
+ Punctuation, String, Text, Whitespace, Error
15
+
16
+ __all__ = ['TableGenLexer']
17
+
18
+ KEYWORDS = (
19
+ 'assert',
20
+ 'class',
21
+ 'code',
22
+ 'def',
23
+ 'dump',
24
+ 'else',
25
+ 'foreach',
26
+ 'defm',
27
+ 'defset',
28
+ 'defvar',
29
+ 'field',
30
+ 'if',
31
+ 'in',
32
+ 'include',
33
+ 'let',
34
+ 'multiclass',
35
+ 'then',
36
+ )
37
+
38
+ KEYWORDS_CONST = (
39
+ 'false',
40
+ 'true',
41
+ )
42
+ KEYWORDS_TYPE = (
43
+ 'bit',
44
+ 'bits',
45
+ 'dag',
46
+ 'int',
47
+ 'list',
48
+ 'string',
49
+ )
50
+
51
+ BANG_OPERATORS = (
52
+ 'add',
53
+ 'and',
54
+ 'cast',
55
+ 'con',
56
+ 'cond',
57
+ 'dag',
58
+ 'div',
59
+ 'empty',
60
+ 'eq',
61
+ 'exists',
62
+ 'filter',
63
+ 'find',
64
+ 'foldl',
65
+ 'foreach',
66
+ 'ge',
67
+ 'getdagarg',
68
+ 'getdagname',
69
+ 'getdagop',
70
+ 'gt',
71
+ 'head',
72
+ 'if',
73
+ 'interleave',
74
+ 'isa',
75
+ 'le',
76
+ 'listconcat',
77
+ 'listremove',
78
+ 'listsplat',
79
+ 'logtwo',
80
+ 'lt',
81
+ 'mul',
82
+ 'ne',
83
+ 'not',
84
+ 'or',
85
+ 'range',
86
+ 'repr',
87
+ 'setdagarg',
88
+ 'setdagname',
89
+ 'setdagop',
90
+ 'shl',
91
+ 'size',
92
+ 'sra',
93
+ 'srl',
94
+ 'strconcat',
95
+ 'sub',
96
+ 'subst',
97
+ 'substr',
98
+ 'tail',
99
+ 'tolower',
100
+ 'toupper',
101
+ 'xor',
102
+ )
103
+
104
+ class TableGenLexer(RegexLexer):
105
+ """
106
+ Lexer for TableGen
107
+ """
108
+
109
+ name = 'TableGen'
110
+ url = 'https://llvm.org/docs/TableGen/ProgRef.html'
111
+ aliases = ['tablegen', 'td']
112
+ filenames = ['*.td']
113
+
114
+ version_added = '2.19'
115
+
116
+ tokens = {
117
+ 'root': [
118
+ (r'\s+', Whitespace),
119
+
120
+ (r'/\*', Comment.Multiline, 'comment'),
121
+ (r'//.*?$', Comment.Single),
122
+ (r'#(define|ifdef|ifndef|else|endif)', Comment.Preproc),
123
+
124
+ # Binary/hex numbers. Note that these take priority over names,
125
+ # which may begin with numbers.
126
+ (r'0b[10]+', Number.Bin),
127
+ (r'0x[0-9a-fA-F]+', Number.Hex),
128
+
129
+ # Keywords
130
+ (words(KEYWORDS, suffix=r'\b'), Keyword),
131
+ (words(KEYWORDS_CONST, suffix=r'\b'), Keyword.Constant),
132
+ (words(KEYWORDS_TYPE, suffix=r'\b'), Keyword.Type),
133
+
134
+ # Bang operators
135
+ (words(BANG_OPERATORS, prefix=r'\!', suffix=r'\b'), Operator),
136
+ # Unknown bang operators are an error
137
+ (r'![a-zA-Z]+', Error),
138
+
139
+ # Names and identifiers
140
+ (r'[0-9]*[a-zA-Z_][a-zA-Z_0-9]*', Name),
141
+ (r'\$[a-zA-Z_][a-zA-Z_0-9]*', Name.Variable),
142
+
143
+ # Place numbers after keywords. Names/identifiers may begin with
144
+ # numbers, and we want to parse 1X as one name token as opposed to
145
+ # a number and a name.
146
+ (r'[-\+]?[0-9]+', Number.Integer),
147
+
148
+ # String literals
149
+ (r'"', String, 'dqs'),
150
+ (r'\[\{', Punctuation, 'codeblock'),
151
+
152
+ # Misc. punctuation
153
+ (r'[-+\[\]{}()<>\.,;:=?#]+', Punctuation),
154
+ ],
155
+ 'comment': [
156
+ (r'[^*/]+', Comment.Multiline),
157
+ (r'/\*', Comment.Multiline, '#push'),
158
+ (r'\*/', Comment.Multiline, '#pop'),
159
+ (r'[*/]', Comment.Multiline)
160
+ ],
161
+ 'strings': [
162
+ (r'\\[\\\'"tn]', String.Escape),
163
+ (r'[^\\"]+', String),
164
+ ],
165
+ # Double-quoted string, a la C
166
+ 'dqs': [
167
+ (r'"', String, '#pop'),
168
+ include('strings'),
169
+ ],
170
+ # NOTE: Must escape (pop Cpplexer) codeblock to avoid infinite loop.
171
+ # Assume that the code inside a code block is C++. This isn't always
172
+ # true in TableGen, but is the far most common scenario.
173
+ 'codeblock': [
174
+ (r'\}\]', Text, '#pop'),
175
+ (r'([^}]+|\}[^]])*', using(CppLexer), "#pop"),
176
+ ],
177
+ }
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for Tact.
6
6
 
7
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10