pygments.rb 1.2.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (386) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +13 -0
  3. data/.github/workflows/ci.yml +40 -0
  4. data/.github/workflows/release.yml +24 -0
  5. data/.gitignore +4 -6
  6. data/.rubocop.yml +16 -0
  7. data/CHANGELOG.adoc +137 -0
  8. data/Gemfile +3 -1
  9. data/LICENSE +1 -1
  10. data/README.adoc +159 -0
  11. data/Rakefile +8 -32
  12. data/bench.rb +14 -8
  13. data/lib/pygments.rb +16 -14
  14. data/lib/pygments/lexer.rb +87 -65
  15. data/lib/pygments/mentos.py +23 -110
  16. data/lib/pygments/popen.rb +188 -284
  17. data/lib/pygments/version.rb +2 -2
  18. data/pygments.rb.gemspec +20 -13
  19. data/test/test_pygments.rb +50 -110
  20. data/vendor/pygments-main/{AUTHORS → Pygments-2.8.1.dist-info/AUTHORS} +26 -3
  21. data/vendor/pygments-main/Pygments-2.8.1.dist-info/INSTALLER +1 -0
  22. data/vendor/pygments-main/{LICENSE → Pygments-2.8.1.dist-info/LICENSE} +1 -1
  23. data/vendor/pygments-main/Pygments-2.8.1.dist-info/METADATA +48 -0
  24. data/vendor/pygments-main/Pygments-2.8.1.dist-info/RECORD +494 -0
  25. data/vendor/pygments-main/Pygments-2.8.1.dist-info/REQUESTED +0 -0
  26. data/vendor/pygments-main/Pygments-2.8.1.dist-info/WHEEL +5 -0
  27. data/vendor/pygments-main/Pygments-2.8.1.dist-info/entry_points.txt +3 -0
  28. data/vendor/pygments-main/Pygments-2.8.1.dist-info/top_level.txt +1 -0
  29. data/vendor/pygments-main/bin/pygmentize +8 -0
  30. data/vendor/pygments-main/pygments/__init__.py +6 -12
  31. data/vendor/pygments-main/pygments/__main__.py +17 -0
  32. data/vendor/pygments-main/pygments/cmdline.py +213 -184
  33. data/vendor/pygments-main/pygments/console.py +6 -10
  34. data/vendor/pygments-main/pygments/filter.py +4 -7
  35. data/vendor/pygments-main/pygments/filters/__init__.py +609 -22
  36. data/vendor/pygments-main/pygments/formatter.py +4 -5
  37. data/vendor/pygments-main/pygments/formatters/__init__.py +10 -10
  38. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -4
  39. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
  40. data/vendor/pygments-main/pygments/formatters/html.py +242 -139
  41. data/vendor/pygments-main/pygments/formatters/img.py +91 -50
  42. data/vendor/pygments-main/pygments/formatters/irc.py +39 -40
  43. data/vendor/pygments-main/pygments/formatters/latex.py +62 -33
  44. data/vendor/pygments-main/pygments/formatters/other.py +18 -17
  45. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -30
  46. data/vendor/pygments-main/pygments/formatters/svg.py +40 -5
  47. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -32
  48. data/vendor/pygments-main/pygments/formatters/terminal256.py +45 -14
  49. data/vendor/pygments-main/pygments/lexer.py +47 -44
  50. data/vendor/pygments-main/pygments/lexers/__init__.py +341 -0
  51. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1644 -0
  52. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +231 -0
  53. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +75 -0
  54. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1724 -0
  55. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +5326 -0
  56. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +292 -0
  57. data/vendor/pygments-main/pygments/lexers/_mapping.py +554 -0
  58. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1171 -0
  59. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1281 -0
  60. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +2600 -0
  61. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +4752 -0
  62. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +677 -0
  63. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3093 -0
  64. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1160 -0
  65. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +557 -0
  66. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +457 -0
  67. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1003 -0
  68. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +112 -0
  69. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +279 -0
  70. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1938 -0
  71. data/vendor/pygments-main/pygments/lexers/actionscript.py +244 -0
  72. data/vendor/pygments-main/pygments/lexers/agile.py +23 -0
  73. data/vendor/pygments-main/pygments/lexers/algebra.py +239 -0
  74. data/vendor/pygments-main/pygments/lexers/ambient.py +75 -0
  75. data/vendor/pygments-main/pygments/lexers/amdgpu.py +48 -0
  76. data/vendor/pygments-main/pygments/lexers/ampl.py +86 -0
  77. data/vendor/pygments-main/pygments/lexers/apl.py +100 -0
  78. data/vendor/pygments-main/pygments/lexers/archetype.py +317 -0
  79. data/vendor/pygments-main/pygments/lexers/arrow.py +116 -0
  80. data/vendor/pygments-main/pygments/lexers/asm.py +1004 -0
  81. data/vendor/pygments-main/pygments/lexers/automation.py +379 -0
  82. data/vendor/pygments-main/pygments/lexers/bare.py +103 -0
  83. data/vendor/pygments-main/pygments/lexers/basic.py +661 -0
  84. data/vendor/pygments-main/pygments/lexers/bibtex.py +159 -0
  85. data/vendor/pygments-main/pygments/lexers/boa.py +101 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +626 -0
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +342 -0
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +565 -0
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +77 -0
  90. data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
  91. data/vendor/pygments-main/pygments/lexers/chapel.py +111 -0
  92. data/vendor/pygments-main/pygments/lexers/clean.py +178 -0
  93. data/vendor/pygments-main/pygments/lexers/compiled.py +33 -0
  94. data/vendor/pygments-main/pygments/lexers/configs.py +985 -0
  95. data/vendor/pygments-main/pygments/lexers/console.py +113 -0
  96. data/vendor/pygments-main/pygments/lexers/crystal.py +366 -0
  97. data/vendor/pygments-main/pygments/lexers/csound.py +466 -0
  98. data/vendor/pygments-main/pygments/lexers/css.py +694 -0
  99. data/vendor/pygments-main/pygments/lexers/d.py +255 -0
  100. data/vendor/pygments-main/pygments/lexers/dalvik.py +124 -0
  101. data/vendor/pygments-main/pygments/lexers/data.py +697 -0
  102. data/vendor/pygments-main/pygments/lexers/devicetree.py +108 -0
  103. data/vendor/pygments-main/pygments/lexers/diff.py +164 -0
  104. data/vendor/pygments-main/pygments/lexers/dotnet.py +706 -0
  105. data/vendor/pygments-main/pygments/lexers/dsls.py +959 -0
  106. data/vendor/pygments-main/pygments/lexers/dylan.py +286 -0
  107. data/vendor/pygments-main/pygments/lexers/ecl.py +137 -0
  108. data/vendor/pygments-main/pygments/lexers/eiffel.py +64 -0
  109. data/vendor/pygments-main/pygments/lexers/elm.py +120 -0
  110. data/vendor/pygments-main/pygments/lexers/email.py +150 -0
  111. data/vendor/pygments-main/pygments/lexers/erlang.py +529 -0
  112. data/vendor/pygments-main/pygments/lexers/esoteric.py +303 -0
  113. data/vendor/pygments-main/pygments/lexers/ezhil.py +76 -0
  114. data/vendor/pygments-main/pygments/lexers/factor.py +343 -0
  115. data/vendor/pygments-main/pygments/lexers/fantom.py +249 -0
  116. data/vendor/pygments-main/pygments/lexers/felix.py +272 -0
  117. data/vendor/pygments-main/pygments/lexers/floscript.py +82 -0
  118. data/vendor/pygments-main/pygments/lexers/forth.py +177 -0
  119. data/vendor/pygments-main/pygments/lexers/fortran.py +208 -0
  120. data/vendor/pygments-main/pygments/lexers/foxpro.py +427 -0
  121. data/vendor/pygments-main/pygments/lexers/freefem.py +897 -0
  122. data/vendor/pygments-main/pygments/lexers/functional.py +20 -0
  123. data/vendor/pygments-main/pygments/lexers/futhark.py +110 -0
  124. data/vendor/pygments-main/pygments/lexers/gdscript.py +345 -0
  125. data/vendor/pygments-main/pygments/lexers/go.py +100 -0
  126. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +269 -0
  127. data/vendor/pygments-main/pygments/lexers/graph.py +84 -0
  128. data/vendor/pygments-main/pygments/lexers/graphics.py +799 -0
  129. data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
  130. data/vendor/pygments-main/pygments/lexers/haskell.py +869 -0
  131. data/vendor/pygments-main/pygments/lexers/haxe.py +935 -0
  132. data/vendor/pygments-main/pygments/lexers/hdl.py +468 -0
  133. data/vendor/pygments-main/pygments/lexers/hexdump.py +102 -0
  134. data/vendor/pygments-main/pygments/lexers/html.py +613 -0
  135. data/vendor/pygments-main/pygments/lexers/idl.py +280 -0
  136. data/vendor/pygments-main/pygments/lexers/igor.py +419 -0
  137. data/vendor/pygments-main/pygments/lexers/inferno.py +95 -0
  138. data/vendor/pygments-main/pygments/lexers/installers.py +321 -0
  139. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1367 -0
  140. data/vendor/pygments-main/pygments/lexers/iolang.py +62 -0
  141. data/vendor/pygments-main/pygments/lexers/j.py +145 -0
  142. data/vendor/pygments-main/pygments/lexers/javascript.py +1536 -0
  143. data/vendor/pygments-main/pygments/lexers/julia.py +330 -0
  144. data/vendor/pygments-main/pygments/lexers/jvm.py +1739 -0
  145. data/vendor/pygments-main/pygments/lexers/lisp.py +2698 -0
  146. data/vendor/pygments-main/pygments/lexers/make.py +205 -0
  147. data/vendor/pygments-main/pygments/lexers/markup.py +762 -0
  148. data/vendor/pygments-main/pygments/lexers/math.py +20 -0
  149. data/vendor/pygments-main/pygments/lexers/matlab.py +3280 -0
  150. data/vendor/pygments-main/pygments/lexers/mime.py +225 -0
  151. data/vendor/pygments-main/pygments/lexers/ml.py +957 -0
  152. data/vendor/pygments-main/pygments/lexers/modeling.py +365 -0
  153. data/vendor/pygments-main/pygments/lexers/modula2.py +1579 -0
  154. data/vendor/pygments-main/pygments/lexers/monte.py +203 -0
  155. data/vendor/pygments-main/pygments/lexers/mosel.py +447 -0
  156. data/vendor/pygments-main/pygments/lexers/ncl.py +893 -0
  157. data/vendor/pygments-main/pygments/lexers/nimrod.py +158 -0
  158. data/vendor/pygments-main/pygments/lexers/nit.py +63 -0
  159. data/vendor/pygments-main/pygments/lexers/nix.py +135 -0
  160. data/vendor/pygments-main/pygments/lexers/oberon.py +120 -0
  161. data/vendor/pygments-main/pygments/lexers/objective.py +503 -0
  162. data/vendor/pygments-main/pygments/lexers/ooc.py +84 -0
  163. data/vendor/pygments-main/pygments/lexers/other.py +40 -0
  164. data/vendor/pygments-main/pygments/lexers/parasail.py +78 -0
  165. data/vendor/pygments-main/pygments/lexers/parsers.py +799 -0
  166. data/vendor/pygments-main/pygments/lexers/pascal.py +643 -0
  167. data/vendor/pygments-main/pygments/lexers/pawn.py +202 -0
  168. data/vendor/pygments-main/pygments/lexers/perl.py +731 -0
  169. data/vendor/pygments-main/pygments/lexers/php.py +320 -0
  170. data/vendor/pygments-main/pygments/lexers/pointless.py +70 -0
  171. data/vendor/pygments-main/pygments/lexers/pony.py +93 -0
  172. data/vendor/pygments-main/pygments/lexers/praat.py +301 -0
  173. data/vendor/pygments-main/pygments/lexers/prolog.py +305 -0
  174. data/vendor/pygments-main/pygments/lexers/promql.py +182 -0
  175. data/vendor/pygments-main/pygments/lexers/python.py +1158 -0
  176. data/vendor/pygments-main/pygments/lexers/qvt.py +151 -0
  177. data/vendor/pygments-main/pygments/lexers/r.py +190 -0
  178. data/vendor/pygments-main/pygments/lexers/rdf.py +462 -0
  179. data/vendor/pygments-main/pygments/lexers/rebol.py +430 -0
  180. data/vendor/pygments-main/pygments/lexers/resource.py +84 -0
  181. data/vendor/pygments-main/pygments/lexers/ride.py +138 -0
  182. data/vendor/pygments-main/pygments/lexers/rnc.py +66 -0
  183. data/vendor/pygments-main/pygments/lexers/roboconf.py +81 -0
  184. data/vendor/pygments-main/pygments/lexers/robotframework.py +551 -0
  185. data/vendor/pygments-main/pygments/lexers/ruby.py +523 -0
  186. data/vendor/pygments-main/pygments/lexers/rust.py +223 -0
  187. data/vendor/pygments-main/pygments/lexers/sas.py +227 -0
  188. data/vendor/pygments-main/pygments/lexers/scdoc.py +82 -0
  189. data/vendor/pygments-main/pygments/lexers/scripting.py +1283 -0
  190. data/vendor/pygments-main/pygments/lexers/sgf.py +60 -0
  191. data/vendor/pygments-main/pygments/lexers/shell.py +909 -0
  192. data/vendor/pygments-main/pygments/lexers/sieve.py +68 -0
  193. data/vendor/pygments-main/pygments/lexers/slash.py +184 -0
  194. data/vendor/pygments-main/pygments/lexers/smalltalk.py +194 -0
  195. data/vendor/pygments-main/pygments/lexers/smv.py +78 -0
  196. data/vendor/pygments-main/pygments/lexers/snobol.py +82 -0
  197. data/vendor/pygments-main/pygments/lexers/solidity.py +91 -0
  198. data/vendor/pygments-main/pygments/lexers/special.py +106 -0
  199. data/vendor/pygments-main/pygments/lexers/sql.py +832 -0
  200. data/vendor/pygments-main/pygments/lexers/stata.py +170 -0
  201. data/vendor/pygments-main/pygments/lexers/supercollider.py +94 -0
  202. data/vendor/pygments-main/pygments/lexers/tcl.py +144 -0
  203. data/vendor/pygments-main/pygments/lexers/templates.py +2263 -0
  204. data/vendor/pygments-main/pygments/lexers/teraterm.py +334 -0
  205. data/vendor/pygments-main/pygments/lexers/testing.py +206 -0
  206. data/vendor/pygments-main/pygments/lexers/text.py +25 -0
  207. data/vendor/pygments-main/pygments/lexers/textedit.py +168 -0
  208. data/vendor/pygments-main/pygments/lexers/textfmts.py +429 -0
  209. data/vendor/pygments-main/pygments/lexers/theorem.py +476 -0
  210. data/vendor/pygments-main/pygments/lexers/tnt.py +262 -0
  211. data/vendor/pygments-main/pygments/lexers/trafficscript.py +53 -0
  212. data/vendor/pygments-main/pygments/lexers/typoscript.py +218 -0
  213. data/vendor/pygments-main/pygments/lexers/unicon.py +411 -0
  214. data/vendor/pygments-main/pygments/lexers/urbi.py +145 -0
  215. data/vendor/pygments-main/pygments/lexers/usd.py +89 -0
  216. data/vendor/pygments-main/pygments/lexers/varnish.py +189 -0
  217. data/vendor/pygments-main/pygments/lexers/verification.py +113 -0
  218. data/vendor/pygments-main/pygments/lexers/web.py +23 -0
  219. data/vendor/pygments-main/pygments/lexers/webidl.py +298 -0
  220. data/vendor/pygments-main/pygments/lexers/webmisc.py +991 -0
  221. data/vendor/pygments-main/pygments/lexers/whiley.py +115 -0
  222. data/vendor/pygments-main/pygments/lexers/x10.py +68 -0
  223. data/vendor/pygments-main/pygments/lexers/xorg.py +36 -0
  224. data/vendor/pygments-main/pygments/lexers/yang.py +103 -0
  225. data/vendor/pygments-main/pygments/lexers/zig.py +123 -0
  226. data/vendor/pygments-main/pygments/modeline.py +1 -2
  227. data/vendor/pygments-main/pygments/plugin.py +4 -3
  228. data/vendor/pygments-main/pygments/regexopt.py +1 -2
  229. data/vendor/pygments-main/pygments/scanner.py +2 -3
  230. data/vendor/pygments-main/pygments/sphinxext.py +2 -5
  231. data/vendor/pygments-main/pygments/style.py +61 -25
  232. data/vendor/pygments-main/pygments/styles/__init__.py +12 -5
  233. data/vendor/pygments-main/pygments/styles/abap.py +1 -2
  234. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  235. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  236. data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
  237. data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
  238. data/vendor/pygments-main/pygments/styles/borland.py +1 -2
  239. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  240. data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
  241. data/vendor/pygments-main/pygments/styles/default.py +1 -2
  242. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  243. data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
  244. data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
  245. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  246. data/vendor/pygments-main/pygments/styles/inkpot.py +66 -0
  247. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
  248. data/vendor/pygments-main/pygments/styles/manni.py +1 -2
  249. data/vendor/pygments-main/pygments/styles/material.py +118 -0
  250. data/vendor/pygments-main/pygments/styles/monokai.py +4 -4
  251. data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
  252. data/vendor/pygments-main/pygments/styles/native.py +1 -2
  253. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
  254. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
  255. data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
  256. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  257. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
  258. data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
  259. data/vendor/pygments-main/pygments/styles/sas.py +1 -2
  260. data/vendor/pygments-main/pygments/styles/solarized.py +136 -0
  261. data/vendor/pygments-main/pygments/styles/stata_dark.py +40 -0
  262. data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -16
  263. data/vendor/pygments-main/pygments/styles/tango.py +1 -2
  264. data/vendor/pygments-main/pygments/styles/trac.py +1 -2
  265. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  266. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  267. data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
  268. data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
  269. data/vendor/pygments-main/pygments/token.py +1 -2
  270. data/vendor/pygments-main/pygments/unistring.py +47 -109
  271. data/vendor/pygments-main/pygments/util.py +16 -96
  272. metadata +81 -139
  273. data/CHANGELOG.md +0 -111
  274. data/README.md +0 -121
  275. data/cache-lexers.rb +0 -8
  276. data/circle.yml +0 -20
  277. data/test/test_data.c +0 -2581
  278. data/test/test_data.py +0 -514
  279. data/test/test_data_generated +0 -2582
  280. data/vendor/custom_lexers/github.py +0 -565
  281. data/vendor/pygments-main/CHANGES +0 -1186
  282. data/vendor/pygments-main/MANIFEST.in +0 -6
  283. data/vendor/pygments-main/Makefile +0 -65
  284. data/vendor/pygments-main/README.rst +0 -39
  285. data/vendor/pygments-main/REVISION +0 -1
  286. data/vendor/pygments-main/TODO +0 -12
  287. data/vendor/pygments-main/doc/Makefile +0 -153
  288. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  289. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  290. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  291. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  292. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  293. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  294. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  295. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  296. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  297. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  298. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  299. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  300. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  301. data/vendor/pygments-main/doc/conf.py +0 -241
  302. data/vendor/pygments-main/doc/docs/api.rst +0 -354
  303. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  304. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  305. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
  306. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  307. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  308. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  309. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  310. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  311. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  312. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  313. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
  314. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  315. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  316. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  317. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  318. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  319. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  320. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  321. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  322. data/vendor/pygments-main/doc/download.rst +0 -41
  323. data/vendor/pygments-main/doc/faq.rst +0 -139
  324. data/vendor/pygments-main/doc/index.rst +0 -54
  325. data/vendor/pygments-main/doc/languages.rst +0 -154
  326. data/vendor/pygments-main/doc/make.bat +0 -190
  327. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  328. data/vendor/pygments-main/external/autopygmentize +0 -101
  329. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  330. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  331. data/vendor/pygments-main/external/moin-parser.py +0 -112
  332. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  333. data/vendor/pygments-main/external/rst-directive.py +0 -82
  334. data/vendor/pygments-main/pygmentize +0 -8
  335. data/vendor/pygments-main/requirements.txt +0 -5
  336. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  337. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  338. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  339. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  340. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  341. data/vendor/pygments-main/scripts/pylintrc +0 -301
  342. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  343. data/vendor/pygments-main/setup.cfg +0 -10
  344. data/vendor/pygments-main/setup.py +0 -77
  345. data/vendor/pygments-main/tox.ini +0 -7
  346. data/vendor/simplejson/.gitignore +0 -10
  347. data/vendor/simplejson/.travis.yml +0 -5
  348. data/vendor/simplejson/CHANGES.txt +0 -291
  349. data/vendor/simplejson/LICENSE.txt +0 -19
  350. data/vendor/simplejson/MANIFEST.in +0 -5
  351. data/vendor/simplejson/README.rst +0 -19
  352. data/vendor/simplejson/conf.py +0 -179
  353. data/vendor/simplejson/index.rst +0 -628
  354. data/vendor/simplejson/scripts/make_docs.py +0 -18
  355. data/vendor/simplejson/setup.py +0 -104
  356. data/vendor/simplejson/simplejson/__init__.py +0 -510
  357. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  358. data/vendor/simplejson/simplejson/decoder.py +0 -425
  359. data/vendor/simplejson/simplejson/encoder.py +0 -567
  360. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  361. data/vendor/simplejson/simplejson/scanner.py +0 -77
  362. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  363. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  364. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  365. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  366. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  367. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  368. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  369. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  370. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  371. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  372. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  373. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  374. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  375. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  376. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  377. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  378. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  379. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  380. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  381. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  382. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  383. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  384. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  385. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  386. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -0,0 +1,1281 @@
1
+ """
2
+ pygments.lexers._mysql_builtins
3
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Self-updating data files for the MySQL lexer.
6
+
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+
12
+ MYSQL_CONSTANTS = (
13
+ 'false',
14
+ 'null',
15
+ 'true',
16
+ 'unknown',
17
+ )
18
+
19
+
20
+ # At this time, no easily-parsed, definitive list of data types
21
+ # has been found in the MySQL source code or documentation. (The
22
+ # `sql/sql_yacc.yy` file is definitive but is difficult to parse.)
23
+ # Therefore these types are currently maintained manually.
24
+ #
25
+ # Some words in this list -- like "long", "national", "precision",
26
+ # and "varying" -- appear to only occur in combination with other
27
+ # data type keywords. Therefore they are included as separate words
28
+ # even though they do not naturally occur in syntax separately.
29
+ #
30
+ # This list is also used to strip data types out of the list of
31
+ # MySQL keywords, which is automatically updated later in the file.
32
+ #
33
+ MYSQL_DATATYPES = (
34
+ # Numeric data types
35
+ 'bigint',
36
+ 'bit',
37
+ 'bool',
38
+ 'boolean',
39
+ 'dec',
40
+ 'decimal',
41
+ 'double',
42
+ 'fixed',
43
+ 'float',
44
+ 'float4',
45
+ 'float8',
46
+ 'int',
47
+ 'int1',
48
+ 'int2',
49
+ 'int3',
50
+ 'int4',
51
+ 'int8',
52
+ 'integer',
53
+ 'mediumint',
54
+ 'middleint',
55
+ 'numeric',
56
+ 'precision',
57
+ 'real',
58
+ 'serial',
59
+ 'smallint',
60
+ 'tinyint',
61
+
62
+ # Date and time data types
63
+ 'date',
64
+ 'datetime',
65
+ 'time',
66
+ 'timestamp',
67
+ 'year',
68
+
69
+ # String data types
70
+ 'binary',
71
+ 'blob',
72
+ 'char',
73
+ 'enum',
74
+ 'long',
75
+ 'longblob',
76
+ 'longtext',
77
+ 'mediumblob',
78
+ 'mediumtext',
79
+ 'national',
80
+ 'nchar',
81
+ 'nvarchar',
82
+ 'set',
83
+ 'text',
84
+ 'tinyblob',
85
+ 'tinytext',
86
+ 'varbinary',
87
+ 'varchar',
88
+ 'varcharacter',
89
+ 'varying',
90
+
91
+ # Spatial data types
92
+ 'geometry',
93
+ 'geometrycollection',
94
+ 'linestring',
95
+ 'multilinestring',
96
+ 'multipoint',
97
+ 'multipolygon',
98
+ 'point',
99
+ 'polygon',
100
+
101
+ # JSON data types
102
+ 'json',
103
+ )
104
+
105
+ # Everything below this line is auto-generated from the MySQL source code.
106
+ # Run this file in Python and it will update itself.
107
+ # -----------------------------------------------------------------------------
108
+
109
+ MYSQL_FUNCTIONS = (
110
+ 'abs',
111
+ 'acos',
112
+ 'adddate',
113
+ 'addtime',
114
+ 'aes_decrypt',
115
+ 'aes_encrypt',
116
+ 'any_value',
117
+ 'asin',
118
+ 'atan',
119
+ 'atan2',
120
+ 'benchmark',
121
+ 'bin',
122
+ 'bin_to_uuid',
123
+ 'bit_and',
124
+ 'bit_count',
125
+ 'bit_length',
126
+ 'bit_or',
127
+ 'bit_xor',
128
+ 'can_access_column',
129
+ 'can_access_database',
130
+ 'can_access_event',
131
+ 'can_access_resource_group',
132
+ 'can_access_routine',
133
+ 'can_access_table',
134
+ 'can_access_trigger',
135
+ 'can_access_view',
136
+ 'cast',
137
+ 'ceil',
138
+ 'ceiling',
139
+ 'char_length',
140
+ 'character_length',
141
+ 'coercibility',
142
+ 'compress',
143
+ 'concat',
144
+ 'concat_ws',
145
+ 'connection_id',
146
+ 'conv',
147
+ 'convert_cpu_id_mask',
148
+ 'convert_interval_to_user_interval',
149
+ 'convert_tz',
150
+ 'cos',
151
+ 'cot',
152
+ 'count',
153
+ 'crc32',
154
+ 'curdate',
155
+ 'current_role',
156
+ 'curtime',
157
+ 'date_add',
158
+ 'date_format',
159
+ 'date_sub',
160
+ 'datediff',
161
+ 'dayname',
162
+ 'dayofmonth',
163
+ 'dayofweek',
164
+ 'dayofyear',
165
+ 'degrees',
166
+ 'elt',
167
+ 'exp',
168
+ 'export_set',
169
+ 'extract',
170
+ 'extractvalue',
171
+ 'field',
172
+ 'find_in_set',
173
+ 'floor',
174
+ 'format_bytes',
175
+ 'format_pico_time',
176
+ 'found_rows',
177
+ 'from_base64',
178
+ 'from_days',
179
+ 'from_unixtime',
180
+ 'get_dd_column_privileges',
181
+ 'get_dd_create_options',
182
+ 'get_dd_index_private_data',
183
+ 'get_dd_index_sub_part_length',
184
+ 'get_dd_property_key_value',
185
+ 'get_dd_tablespace_private_data',
186
+ 'get_lock',
187
+ 'greatest',
188
+ 'group_concat',
189
+ 'gtid_subset',
190
+ 'gtid_subtract',
191
+ 'hex',
192
+ 'icu_version',
193
+ 'ifnull',
194
+ 'inet6_aton',
195
+ 'inet6_ntoa',
196
+ 'inet_aton',
197
+ 'inet_ntoa',
198
+ 'instr',
199
+ 'internal_auto_increment',
200
+ 'internal_avg_row_length',
201
+ 'internal_check_time',
202
+ 'internal_checksum',
203
+ 'internal_data_free',
204
+ 'internal_data_length',
205
+ 'internal_dd_char_length',
206
+ 'internal_get_comment_or_error',
207
+ 'internal_get_dd_column_extra',
208
+ 'internal_get_enabled_role_json',
209
+ 'internal_get_hostname',
210
+ 'internal_get_mandatory_roles_json',
211
+ 'internal_get_partition_nodegroup',
212
+ 'internal_get_username',
213
+ 'internal_get_view_warning_or_error',
214
+ 'internal_index_column_cardinality',
215
+ 'internal_index_length',
216
+ 'internal_is_enabled_role',
217
+ 'internal_is_mandatory_role',
218
+ 'internal_keys_disabled',
219
+ 'internal_max_data_length',
220
+ 'internal_table_rows',
221
+ 'internal_tablespace_autoextend_size',
222
+ 'internal_tablespace_data_free',
223
+ 'internal_tablespace_extent_size',
224
+ 'internal_tablespace_extra',
225
+ 'internal_tablespace_free_extents',
226
+ 'internal_tablespace_id',
227
+ 'internal_tablespace_initial_size',
228
+ 'internal_tablespace_logfile_group_name',
229
+ 'internal_tablespace_logfile_group_number',
230
+ 'internal_tablespace_maximum_size',
231
+ 'internal_tablespace_row_format',
232
+ 'internal_tablespace_status',
233
+ 'internal_tablespace_total_extents',
234
+ 'internal_tablespace_type',
235
+ 'internal_tablespace_version',
236
+ 'internal_update_time',
237
+ 'is_free_lock',
238
+ 'is_ipv4',
239
+ 'is_ipv4_compat',
240
+ 'is_ipv4_mapped',
241
+ 'is_ipv6',
242
+ 'is_used_lock',
243
+ 'is_uuid',
244
+ 'is_visible_dd_object',
245
+ 'isnull',
246
+ 'json_array',
247
+ 'json_array_append',
248
+ 'json_array_insert',
249
+ 'json_arrayagg',
250
+ 'json_contains',
251
+ 'json_contains_path',
252
+ 'json_depth',
253
+ 'json_extract',
254
+ 'json_insert',
255
+ 'json_keys',
256
+ 'json_length',
257
+ 'json_merge',
258
+ 'json_merge_patch',
259
+ 'json_merge_preserve',
260
+ 'json_object',
261
+ 'json_objectagg',
262
+ 'json_overlaps',
263
+ 'json_pretty',
264
+ 'json_quote',
265
+ 'json_remove',
266
+ 'json_replace',
267
+ 'json_schema_valid',
268
+ 'json_schema_validation_report',
269
+ 'json_search',
270
+ 'json_set',
271
+ 'json_storage_free',
272
+ 'json_storage_size',
273
+ 'json_type',
274
+ 'json_unquote',
275
+ 'json_valid',
276
+ 'last_day',
277
+ 'last_insert_id',
278
+ 'lcase',
279
+ 'least',
280
+ 'length',
281
+ 'like_range_max',
282
+ 'like_range_min',
283
+ 'ln',
284
+ 'load_file',
285
+ 'locate',
286
+ 'log',
287
+ 'log10',
288
+ 'log2',
289
+ 'lower',
290
+ 'lpad',
291
+ 'ltrim',
292
+ 'make_set',
293
+ 'makedate',
294
+ 'maketime',
295
+ 'master_pos_wait',
296
+ 'max',
297
+ 'mbrcontains',
298
+ 'mbrcoveredby',
299
+ 'mbrcovers',
300
+ 'mbrdisjoint',
301
+ 'mbrequals',
302
+ 'mbrintersects',
303
+ 'mbroverlaps',
304
+ 'mbrtouches',
305
+ 'mbrwithin',
306
+ 'md5',
307
+ 'mid',
308
+ 'min',
309
+ 'monthname',
310
+ 'name_const',
311
+ 'now',
312
+ 'nullif',
313
+ 'oct',
314
+ 'octet_length',
315
+ 'ord',
316
+ 'period_add',
317
+ 'period_diff',
318
+ 'pi',
319
+ 'position',
320
+ 'pow',
321
+ 'power',
322
+ 'ps_current_thread_id',
323
+ 'ps_thread_id',
324
+ 'quote',
325
+ 'radians',
326
+ 'rand',
327
+ 'random_bytes',
328
+ 'regexp_instr',
329
+ 'regexp_like',
330
+ 'regexp_replace',
331
+ 'regexp_substr',
332
+ 'release_all_locks',
333
+ 'release_lock',
334
+ 'remove_dd_property_key',
335
+ 'reverse',
336
+ 'roles_graphml',
337
+ 'round',
338
+ 'rpad',
339
+ 'rtrim',
340
+ 'sec_to_time',
341
+ 'session_user',
342
+ 'sha',
343
+ 'sha1',
344
+ 'sha2',
345
+ 'sign',
346
+ 'sin',
347
+ 'sleep',
348
+ 'soundex',
349
+ 'space',
350
+ 'sqrt',
351
+ 'st_area',
352
+ 'st_asbinary',
353
+ 'st_asgeojson',
354
+ 'st_astext',
355
+ 'st_aswkb',
356
+ 'st_aswkt',
357
+ 'st_buffer',
358
+ 'st_buffer_strategy',
359
+ 'st_centroid',
360
+ 'st_contains',
361
+ 'st_convexhull',
362
+ 'st_crosses',
363
+ 'st_difference',
364
+ 'st_dimension',
365
+ 'st_disjoint',
366
+ 'st_distance',
367
+ 'st_distance_sphere',
368
+ 'st_endpoint',
369
+ 'st_envelope',
370
+ 'st_equals',
371
+ 'st_exteriorring',
372
+ 'st_geohash',
373
+ 'st_geomcollfromtext',
374
+ 'st_geomcollfromtxt',
375
+ 'st_geomcollfromwkb',
376
+ 'st_geometrycollectionfromtext',
377
+ 'st_geometrycollectionfromwkb',
378
+ 'st_geometryfromtext',
379
+ 'st_geometryfromwkb',
380
+ 'st_geometryn',
381
+ 'st_geometrytype',
382
+ 'st_geomfromgeojson',
383
+ 'st_geomfromtext',
384
+ 'st_geomfromwkb',
385
+ 'st_interiorringn',
386
+ 'st_intersection',
387
+ 'st_intersects',
388
+ 'st_isclosed',
389
+ 'st_isempty',
390
+ 'st_issimple',
391
+ 'st_isvalid',
392
+ 'st_latfromgeohash',
393
+ 'st_latitude',
394
+ 'st_length',
395
+ 'st_linefromtext',
396
+ 'st_linefromwkb',
397
+ 'st_linestringfromtext',
398
+ 'st_linestringfromwkb',
399
+ 'st_longfromgeohash',
400
+ 'st_longitude',
401
+ 'st_makeenvelope',
402
+ 'st_mlinefromtext',
403
+ 'st_mlinefromwkb',
404
+ 'st_mpointfromtext',
405
+ 'st_mpointfromwkb',
406
+ 'st_mpolyfromtext',
407
+ 'st_mpolyfromwkb',
408
+ 'st_multilinestringfromtext',
409
+ 'st_multilinestringfromwkb',
410
+ 'st_multipointfromtext',
411
+ 'st_multipointfromwkb',
412
+ 'st_multipolygonfromtext',
413
+ 'st_multipolygonfromwkb',
414
+ 'st_numgeometries',
415
+ 'st_numinteriorring',
416
+ 'st_numinteriorrings',
417
+ 'st_numpoints',
418
+ 'st_overlaps',
419
+ 'st_pointfromgeohash',
420
+ 'st_pointfromtext',
421
+ 'st_pointfromwkb',
422
+ 'st_pointn',
423
+ 'st_polyfromtext',
424
+ 'st_polyfromwkb',
425
+ 'st_polygonfromtext',
426
+ 'st_polygonfromwkb',
427
+ 'st_simplify',
428
+ 'st_srid',
429
+ 'st_startpoint',
430
+ 'st_swapxy',
431
+ 'st_symdifference',
432
+ 'st_touches',
433
+ 'st_transform',
434
+ 'st_union',
435
+ 'st_validate',
436
+ 'st_within',
437
+ 'st_x',
438
+ 'st_y',
439
+ 'statement_digest',
440
+ 'statement_digest_text',
441
+ 'std',
442
+ 'stddev',
443
+ 'stddev_pop',
444
+ 'stddev_samp',
445
+ 'str_to_date',
446
+ 'strcmp',
447
+ 'subdate',
448
+ 'substr',
449
+ 'substring',
450
+ 'substring_index',
451
+ 'subtime',
452
+ 'sum',
453
+ 'sysdate',
454
+ 'system_user',
455
+ 'tan',
456
+ 'time_format',
457
+ 'time_to_sec',
458
+ 'timediff',
459
+ 'to_base64',
460
+ 'to_days',
461
+ 'to_seconds',
462
+ 'trim',
463
+ 'ucase',
464
+ 'uncompress',
465
+ 'uncompressed_length',
466
+ 'unhex',
467
+ 'unix_timestamp',
468
+ 'updatexml',
469
+ 'upper',
470
+ 'uuid',
471
+ 'uuid_short',
472
+ 'uuid_to_bin',
473
+ 'validate_password_strength',
474
+ 'var_pop',
475
+ 'var_samp',
476
+ 'variance',
477
+ 'version',
478
+ 'wait_for_executed_gtid_set',
479
+ 'wait_until_sql_thread_after_gtids',
480
+ 'weekday',
481
+ 'weekofyear',
482
+ 'yearweek',
483
+ )
484
+
485
+
486
+ MYSQL_OPTIMIZER_HINTS = (
487
+ 'bka',
488
+ 'bnl',
489
+ 'dupsweedout',
490
+ 'firstmatch',
491
+ 'group_index',
492
+ 'hash_join',
493
+ 'index',
494
+ 'index_merge',
495
+ 'intoexists',
496
+ 'join_fixed_order',
497
+ 'join_index',
498
+ 'join_order',
499
+ 'join_prefix',
500
+ 'join_suffix',
501
+ 'loosescan',
502
+ 'materialization',
503
+ 'max_execution_time',
504
+ 'merge',
505
+ 'mrr',
506
+ 'no_bka',
507
+ 'no_bnl',
508
+ 'no_group_index',
509
+ 'no_hash_join',
510
+ 'no_icp',
511
+ 'no_index',
512
+ 'no_index_merge',
513
+ 'no_join_index',
514
+ 'no_merge',
515
+ 'no_mrr',
516
+ 'no_order_index',
517
+ 'no_range_optimization',
518
+ 'no_semijoin',
519
+ 'no_skip_scan',
520
+ 'order_index',
521
+ 'qb_name',
522
+ 'resource_group',
523
+ 'semijoin',
524
+ 'set_var',
525
+ 'skip_scan',
526
+ 'subquery',
527
+ )
528
+
529
+
530
+ MYSQL_KEYWORDS = (
531
+ 'accessible',
532
+ 'account',
533
+ 'action',
534
+ 'active',
535
+ 'add',
536
+ 'admin',
537
+ 'after',
538
+ 'against',
539
+ 'aggregate',
540
+ 'algorithm',
541
+ 'all',
542
+ 'alter',
543
+ 'always',
544
+ 'analyze',
545
+ 'and',
546
+ 'any',
547
+ 'array',
548
+ 'as',
549
+ 'asc',
550
+ 'ascii',
551
+ 'asensitive',
552
+ 'at',
553
+ 'attribute',
554
+ 'auto_increment',
555
+ 'autoextend_size',
556
+ 'avg',
557
+ 'avg_row_length',
558
+ 'backup',
559
+ 'before',
560
+ 'begin',
561
+ 'between',
562
+ 'binlog',
563
+ 'block',
564
+ 'both',
565
+ 'btree',
566
+ 'buckets',
567
+ 'by',
568
+ 'byte',
569
+ 'cache',
570
+ 'call',
571
+ 'cascade',
572
+ 'cascaded',
573
+ 'case',
574
+ 'catalog_name',
575
+ 'chain',
576
+ 'change',
577
+ 'changed',
578
+ 'channel',
579
+ 'character',
580
+ 'charset',
581
+ 'check',
582
+ 'checksum',
583
+ 'cipher',
584
+ 'class_origin',
585
+ 'client',
586
+ 'clone',
587
+ 'close',
588
+ 'coalesce',
589
+ 'code',
590
+ 'collate',
591
+ 'collation',
592
+ 'column',
593
+ 'column_format',
594
+ 'column_name',
595
+ 'columns',
596
+ 'comment',
597
+ 'commit',
598
+ 'committed',
599
+ 'compact',
600
+ 'completion',
601
+ 'component',
602
+ 'compressed',
603
+ 'compression',
604
+ 'concurrent',
605
+ 'condition',
606
+ 'connection',
607
+ 'consistent',
608
+ 'constraint',
609
+ 'constraint_catalog',
610
+ 'constraint_name',
611
+ 'constraint_schema',
612
+ 'contains',
613
+ 'context',
614
+ 'continue',
615
+ 'convert',
616
+ 'cpu',
617
+ 'create',
618
+ 'cross',
619
+ 'cube',
620
+ 'cume_dist',
621
+ 'current',
622
+ 'current_date',
623
+ 'current_time',
624
+ 'current_timestamp',
625
+ 'current_user',
626
+ 'cursor',
627
+ 'cursor_name',
628
+ 'data',
629
+ 'database',
630
+ 'databases',
631
+ 'datafile',
632
+ 'day',
633
+ 'day_hour',
634
+ 'day_microsecond',
635
+ 'day_minute',
636
+ 'day_second',
637
+ 'deallocate',
638
+ 'declare',
639
+ 'default',
640
+ 'default_auth',
641
+ 'definer',
642
+ 'definition',
643
+ 'delay_key_write',
644
+ 'delayed',
645
+ 'delete',
646
+ 'dense_rank',
647
+ 'desc',
648
+ 'describe',
649
+ 'description',
650
+ 'deterministic',
651
+ 'diagnostics',
652
+ 'directory',
653
+ 'disable',
654
+ 'discard',
655
+ 'disk',
656
+ 'distinct',
657
+ 'distinctrow',
658
+ 'div',
659
+ 'do',
660
+ 'drop',
661
+ 'dual',
662
+ 'dumpfile',
663
+ 'duplicate',
664
+ 'dynamic',
665
+ 'each',
666
+ 'else',
667
+ 'elseif',
668
+ 'empty',
669
+ 'enable',
670
+ 'enclosed',
671
+ 'encryption',
672
+ 'end',
673
+ 'ends',
674
+ 'enforced',
675
+ 'engine',
676
+ 'engine_attribute',
677
+ 'engines',
678
+ 'error',
679
+ 'errors',
680
+ 'escape',
681
+ 'escaped',
682
+ 'event',
683
+ 'events',
684
+ 'every',
685
+ 'except',
686
+ 'exchange',
687
+ 'exclude',
688
+ 'execute',
689
+ 'exists',
690
+ 'exit',
691
+ 'expansion',
692
+ 'expire',
693
+ 'explain',
694
+ 'export',
695
+ 'extended',
696
+ 'extent_size',
697
+ 'failed_login_attempts',
698
+ 'false',
699
+ 'fast',
700
+ 'faults',
701
+ 'fetch',
702
+ 'fields',
703
+ 'file',
704
+ 'file_block_size',
705
+ 'filter',
706
+ 'first',
707
+ 'first_value',
708
+ 'flush',
709
+ 'following',
710
+ 'follows',
711
+ 'for',
712
+ 'force',
713
+ 'foreign',
714
+ 'format',
715
+ 'found',
716
+ 'from',
717
+ 'full',
718
+ 'fulltext',
719
+ 'function',
720
+ 'general',
721
+ 'generated',
722
+ 'geomcollection',
723
+ 'get',
724
+ 'get_format',
725
+ 'get_master_public_key',
726
+ 'global',
727
+ 'grant',
728
+ 'grants',
729
+ 'group',
730
+ 'group_replication',
731
+ 'grouping',
732
+ 'groups',
733
+ 'handler',
734
+ 'hash',
735
+ 'having',
736
+ 'help',
737
+ 'high_priority',
738
+ 'histogram',
739
+ 'history',
740
+ 'host',
741
+ 'hosts',
742
+ 'hour',
743
+ 'hour_microsecond',
744
+ 'hour_minute',
745
+ 'hour_second',
746
+ 'identified',
747
+ 'if',
748
+ 'ignore',
749
+ 'ignore_server_ids',
750
+ 'import',
751
+ 'in',
752
+ 'inactive',
753
+ 'index',
754
+ 'indexes',
755
+ 'infile',
756
+ 'initial_size',
757
+ 'inner',
758
+ 'inout',
759
+ 'insensitive',
760
+ 'insert',
761
+ 'insert_method',
762
+ 'install',
763
+ 'instance',
764
+ 'interval',
765
+ 'into',
766
+ 'invisible',
767
+ 'invoker',
768
+ 'io',
769
+ 'io_after_gtids',
770
+ 'io_before_gtids',
771
+ 'io_thread',
772
+ 'ipc',
773
+ 'is',
774
+ 'isolation',
775
+ 'issuer',
776
+ 'iterate',
777
+ 'join',
778
+ 'json_table',
779
+ 'json_value',
780
+ 'key',
781
+ 'key_block_size',
782
+ 'keys',
783
+ 'kill',
784
+ 'lag',
785
+ 'language',
786
+ 'last',
787
+ 'last_value',
788
+ 'lateral',
789
+ 'lead',
790
+ 'leading',
791
+ 'leave',
792
+ 'leaves',
793
+ 'left',
794
+ 'less',
795
+ 'level',
796
+ 'like',
797
+ 'limit',
798
+ 'linear',
799
+ 'lines',
800
+ 'list',
801
+ 'load',
802
+ 'local',
803
+ 'localtime',
804
+ 'localtimestamp',
805
+ 'lock',
806
+ 'locked',
807
+ 'locks',
808
+ 'logfile',
809
+ 'logs',
810
+ 'loop',
811
+ 'low_priority',
812
+ 'master',
813
+ 'master_auto_position',
814
+ 'master_bind',
815
+ 'master_compression_algorithms',
816
+ 'master_connect_retry',
817
+ 'master_delay',
818
+ 'master_heartbeat_period',
819
+ 'master_host',
820
+ 'master_log_file',
821
+ 'master_log_pos',
822
+ 'master_password',
823
+ 'master_port',
824
+ 'master_public_key_path',
825
+ 'master_retry_count',
826
+ 'master_server_id',
827
+ 'master_ssl',
828
+ 'master_ssl_ca',
829
+ 'master_ssl_capath',
830
+ 'master_ssl_cert',
831
+ 'master_ssl_cipher',
832
+ 'master_ssl_crl',
833
+ 'master_ssl_crlpath',
834
+ 'master_ssl_key',
835
+ 'master_ssl_verify_server_cert',
836
+ 'master_tls_ciphersuites',
837
+ 'master_tls_version',
838
+ 'master_user',
839
+ 'master_zstd_compression_level',
840
+ 'match',
841
+ 'max_connections_per_hour',
842
+ 'max_queries_per_hour',
843
+ 'max_rows',
844
+ 'max_size',
845
+ 'max_updates_per_hour',
846
+ 'max_user_connections',
847
+ 'maxvalue',
848
+ 'medium',
849
+ 'member',
850
+ 'memory',
851
+ 'merge',
852
+ 'message_text',
853
+ 'microsecond',
854
+ 'migrate',
855
+ 'min_rows',
856
+ 'minute',
857
+ 'minute_microsecond',
858
+ 'minute_second',
859
+ 'mod',
860
+ 'mode',
861
+ 'modifies',
862
+ 'modify',
863
+ 'month',
864
+ 'mutex',
865
+ 'mysql_errno',
866
+ 'name',
867
+ 'names',
868
+ 'natural',
869
+ 'ndb',
870
+ 'ndbcluster',
871
+ 'nested',
872
+ 'network_namespace',
873
+ 'never',
874
+ 'new',
875
+ 'next',
876
+ 'no',
877
+ 'no_wait',
878
+ 'no_write_to_binlog',
879
+ 'nodegroup',
880
+ 'none',
881
+ 'not',
882
+ 'nowait',
883
+ 'nth_value',
884
+ 'ntile',
885
+ 'null',
886
+ 'nulls',
887
+ 'number',
888
+ 'of',
889
+ 'off',
890
+ 'offset',
891
+ 'oj',
892
+ 'old',
893
+ 'on',
894
+ 'one',
895
+ 'only',
896
+ 'open',
897
+ 'optimize',
898
+ 'optimizer_costs',
899
+ 'option',
900
+ 'optional',
901
+ 'optionally',
902
+ 'options',
903
+ 'or',
904
+ 'order',
905
+ 'ordinality',
906
+ 'organization',
907
+ 'others',
908
+ 'out',
909
+ 'outer',
910
+ 'outfile',
911
+ 'over',
912
+ 'owner',
913
+ 'pack_keys',
914
+ 'page',
915
+ 'parser',
916
+ 'partial',
917
+ 'partition',
918
+ 'partitioning',
919
+ 'partitions',
920
+ 'password',
921
+ 'password_lock_time',
922
+ 'path',
923
+ 'percent_rank',
924
+ 'persist',
925
+ 'persist_only',
926
+ 'phase',
927
+ 'plugin',
928
+ 'plugin_dir',
929
+ 'plugins',
930
+ 'port',
931
+ 'precedes',
932
+ 'preceding',
933
+ 'prepare',
934
+ 'preserve',
935
+ 'prev',
936
+ 'primary',
937
+ 'privilege_checks_user',
938
+ 'privileges',
939
+ 'procedure',
940
+ 'process',
941
+ 'processlist',
942
+ 'profile',
943
+ 'profiles',
944
+ 'proxy',
945
+ 'purge',
946
+ 'quarter',
947
+ 'query',
948
+ 'quick',
949
+ 'random',
950
+ 'range',
951
+ 'rank',
952
+ 'read',
953
+ 'read_only',
954
+ 'read_write',
955
+ 'reads',
956
+ 'rebuild',
957
+ 'recover',
958
+ 'recursive',
959
+ 'redo_buffer_size',
960
+ 'redundant',
961
+ 'reference',
962
+ 'references',
963
+ 'regexp',
964
+ 'relay',
965
+ 'relay_log_file',
966
+ 'relay_log_pos',
967
+ 'relay_thread',
968
+ 'relaylog',
969
+ 'release',
970
+ 'reload',
971
+ 'remove',
972
+ 'rename',
973
+ 'reorganize',
974
+ 'repair',
975
+ 'repeat',
976
+ 'repeatable',
977
+ 'replace',
978
+ 'replicate_do_db',
979
+ 'replicate_do_table',
980
+ 'replicate_ignore_db',
981
+ 'replicate_ignore_table',
982
+ 'replicate_rewrite_db',
983
+ 'replicate_wild_do_table',
984
+ 'replicate_wild_ignore_table',
985
+ 'replication',
986
+ 'require',
987
+ 'require_row_format',
988
+ 'require_table_primary_key_check',
989
+ 'reset',
990
+ 'resignal',
991
+ 'resource',
992
+ 'respect',
993
+ 'restart',
994
+ 'restore',
995
+ 'restrict',
996
+ 'resume',
997
+ 'retain',
998
+ 'return',
999
+ 'returned_sqlstate',
1000
+ 'returning',
1001
+ 'returns',
1002
+ 'reuse',
1003
+ 'reverse',
1004
+ 'revoke',
1005
+ 'right',
1006
+ 'rlike',
1007
+ 'role',
1008
+ 'rollback',
1009
+ 'rollup',
1010
+ 'rotate',
1011
+ 'routine',
1012
+ 'row',
1013
+ 'row_count',
1014
+ 'row_format',
1015
+ 'row_number',
1016
+ 'rows',
1017
+ 'rtree',
1018
+ 'savepoint',
1019
+ 'schedule',
1020
+ 'schema',
1021
+ 'schema_name',
1022
+ 'schemas',
1023
+ 'second',
1024
+ 'second_microsecond',
1025
+ 'secondary',
1026
+ 'secondary_engine',
1027
+ 'secondary_engine_attribute',
1028
+ 'secondary_load',
1029
+ 'secondary_unload',
1030
+ 'security',
1031
+ 'select',
1032
+ 'sensitive',
1033
+ 'separator',
1034
+ 'serializable',
1035
+ 'server',
1036
+ 'session',
1037
+ 'share',
1038
+ 'show',
1039
+ 'shutdown',
1040
+ 'signal',
1041
+ 'signed',
1042
+ 'simple',
1043
+ 'skip',
1044
+ 'slave',
1045
+ 'slow',
1046
+ 'snapshot',
1047
+ 'socket',
1048
+ 'some',
1049
+ 'soname',
1050
+ 'sounds',
1051
+ 'source',
1052
+ 'spatial',
1053
+ 'specific',
1054
+ 'sql',
1055
+ 'sql_after_gtids',
1056
+ 'sql_after_mts_gaps',
1057
+ 'sql_before_gtids',
1058
+ 'sql_big_result',
1059
+ 'sql_buffer_result',
1060
+ 'sql_calc_found_rows',
1061
+ 'sql_no_cache',
1062
+ 'sql_small_result',
1063
+ 'sql_thread',
1064
+ 'sql_tsi_day',
1065
+ 'sql_tsi_hour',
1066
+ 'sql_tsi_minute',
1067
+ 'sql_tsi_month',
1068
+ 'sql_tsi_quarter',
1069
+ 'sql_tsi_second',
1070
+ 'sql_tsi_week',
1071
+ 'sql_tsi_year',
1072
+ 'sqlexception',
1073
+ 'sqlstate',
1074
+ 'sqlwarning',
1075
+ 'srid',
1076
+ 'ssl',
1077
+ 'stacked',
1078
+ 'start',
1079
+ 'starting',
1080
+ 'starts',
1081
+ 'stats_auto_recalc',
1082
+ 'stats_persistent',
1083
+ 'stats_sample_pages',
1084
+ 'status',
1085
+ 'stop',
1086
+ 'storage',
1087
+ 'stored',
1088
+ 'straight_join',
1089
+ 'stream',
1090
+ 'string',
1091
+ 'subclass_origin',
1092
+ 'subject',
1093
+ 'subpartition',
1094
+ 'subpartitions',
1095
+ 'super',
1096
+ 'suspend',
1097
+ 'swaps',
1098
+ 'switches',
1099
+ 'system',
1100
+ 'table',
1101
+ 'table_checksum',
1102
+ 'table_name',
1103
+ 'tables',
1104
+ 'tablespace',
1105
+ 'temporary',
1106
+ 'temptable',
1107
+ 'terminated',
1108
+ 'than',
1109
+ 'then',
1110
+ 'thread_priority',
1111
+ 'ties',
1112
+ 'timestampadd',
1113
+ 'timestampdiff',
1114
+ 'tls',
1115
+ 'to',
1116
+ 'trailing',
1117
+ 'transaction',
1118
+ 'trigger',
1119
+ 'triggers',
1120
+ 'true',
1121
+ 'truncate',
1122
+ 'type',
1123
+ 'types',
1124
+ 'unbounded',
1125
+ 'uncommitted',
1126
+ 'undefined',
1127
+ 'undo',
1128
+ 'undo_buffer_size',
1129
+ 'undofile',
1130
+ 'unicode',
1131
+ 'uninstall',
1132
+ 'union',
1133
+ 'unique',
1134
+ 'unknown',
1135
+ 'unlock',
1136
+ 'unsigned',
1137
+ 'until',
1138
+ 'update',
1139
+ 'upgrade',
1140
+ 'usage',
1141
+ 'use',
1142
+ 'use_frm',
1143
+ 'user',
1144
+ 'user_resources',
1145
+ 'using',
1146
+ 'utc_date',
1147
+ 'utc_time',
1148
+ 'utc_timestamp',
1149
+ 'validation',
1150
+ 'value',
1151
+ 'values',
1152
+ 'variables',
1153
+ 'vcpu',
1154
+ 'view',
1155
+ 'virtual',
1156
+ 'visible',
1157
+ 'wait',
1158
+ 'warnings',
1159
+ 'week',
1160
+ 'weight_string',
1161
+ 'when',
1162
+ 'where',
1163
+ 'while',
1164
+ 'window',
1165
+ 'with',
1166
+ 'without',
1167
+ 'work',
1168
+ 'wrapper',
1169
+ 'write',
1170
+ 'x509',
1171
+ 'xa',
1172
+ 'xid',
1173
+ 'xml',
1174
+ 'xor',
1175
+ 'year_month',
1176
+ 'zerofill',
1177
+ )
1178
+
1179
+
1180
+ if __name__ == '__main__': # pragma: no cover
1181
+ import re
1182
+ from urllib.request import urlopen
1183
+
1184
+ from pygments.util import format_lines
1185
+
1186
+ # MySQL source code
1187
+ SOURCE_URL = 'https://github.com/mysql/mysql-server/raw/8.0'
1188
+ LEX_URL = SOURCE_URL + '/sql/lex.h'
1189
+ ITEM_CREATE_URL = SOURCE_URL + '/sql/item_create.cc'
1190
+
1191
+
1192
+ def update_myself():
1193
+ # Pull content from lex.h.
1194
+ lex_file = urlopen(LEX_URL).read().decode('utf8', errors='ignore')
1195
+ keywords = parse_lex_keywords(lex_file)
1196
+ functions = parse_lex_functions(lex_file)
1197
+ optimizer_hints = parse_lex_optimizer_hints(lex_file)
1198
+
1199
+ # Parse content in item_create.cc.
1200
+ item_create_file = urlopen(ITEM_CREATE_URL).read().decode('utf8', errors='ignore')
1201
+ functions.update(parse_item_create_functions(item_create_file))
1202
+
1203
+ # Remove data types from the set of keywords.
1204
+ keywords -= set(MYSQL_DATATYPES)
1205
+
1206
+ update_content('MYSQL_FUNCTIONS', tuple(sorted(functions)))
1207
+ update_content('MYSQL_KEYWORDS', tuple(sorted(keywords)))
1208
+ update_content('MYSQL_OPTIMIZER_HINTS', tuple(sorted(optimizer_hints)))
1209
+
1210
+
1211
+ def parse_lex_keywords(f):
1212
+ """Parse keywords in lex.h."""
1213
+
1214
+ results = set()
1215
+ for m in re.finditer(r'{SYM(?:_HK)?\("(?P<keyword>[a-z0-9_]+)",', f, flags=re.I):
1216
+ results.add(m.group('keyword').lower())
1217
+
1218
+ if not results:
1219
+ raise ValueError('No keywords found')
1220
+
1221
+ return results
1222
+
1223
+
1224
+ def parse_lex_optimizer_hints(f):
1225
+ """Parse optimizer hints in lex.h."""
1226
+
1227
+ results = set()
1228
+ for m in re.finditer(r'{SYM_H\("(?P<keyword>[a-z0-9_]+)",', f, flags=re.I):
1229
+ results.add(m.group('keyword').lower())
1230
+
1231
+ if not results:
1232
+ raise ValueError('No optimizer hints found')
1233
+
1234
+ return results
1235
+
1236
+
1237
+ def parse_lex_functions(f):
1238
+ """Parse MySQL function names from lex.h."""
1239
+
1240
+ results = set()
1241
+ for m in re.finditer(r'{SYM_FN?\("(?P<function>[a-z0-9_]+)",', f, flags=re.I):
1242
+ results.add(m.group('function').lower())
1243
+
1244
+ if not results:
1245
+ raise ValueError('No lex functions found')
1246
+
1247
+ return results
1248
+
1249
+
1250
+ def parse_item_create_functions(f):
1251
+ """Parse MySQL function names from item_create.cc."""
1252
+
1253
+ results = set()
1254
+ for m in re.finditer(r'{"(?P<function>[^"]+?)",\s*SQL_F[^(]+?\(', f, flags=re.I):
1255
+ results.add(m.group('function').lower())
1256
+
1257
+ if not results:
1258
+ raise ValueError('No item_create functions found')
1259
+
1260
+ return results
1261
+
1262
+
1263
+ def update_content(field_name, content):
1264
+ """Overwrite this file with content parsed from MySQL's source code."""
1265
+
1266
+ with open(__file__) as f:
1267
+ data = f.read()
1268
+
1269
+ # Line to start/end inserting
1270
+ re_match = re.compile(r'^%s\s*=\s*\($.*?^\s*\)$' % field_name, re.M | re.S)
1271
+ m = re_match.search(data)
1272
+ if not m:
1273
+ raise ValueError('Could not find an existing definition for %s' % field_name)
1274
+
1275
+ new_block = format_lines(field_name, content)
1276
+ data = data[:m.start()] + new_block + data[m.end():]
1277
+
1278
+ with open(__file__, 'w', newline='\n') as f:
1279
+ f.write(data)
1280
+
1281
+ update_myself()