pygments.rb 1.2.1 → 2.0.0.rc2

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