pygments.rb 1.2.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) 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 +5 -5
  6. data/.rubocop.yml +18 -0
  7. data/CHANGELOG.adoc +132 -0
  8. data/Gemfile +3 -1
  9. data/LICENSE +1 -1
  10. data/README.adoc +160 -0
  11. data/Rakefile +12 -21
  12. data/bench.rb +14 -8
  13. data/{cache-lexers.rb → cache_lexers.rb} +3 -2
  14. data/lexers +0 -0
  15. data/lib/pygments.rb +10 -11
  16. data/lib/pygments/lexer.rb +6 -6
  17. data/lib/pygments/mentos.py +23 -110
  18. data/lib/pygments/popen.rb +196 -275
  19. data/lib/pygments/version.rb +2 -2
  20. data/pygments.rb.gemspec +12 -10
  21. data/test/test_pygments.rb +50 -110
  22. data/vendor/pygments-main/{AUTHORS → Pygments-2.8.0.dist-info/AUTHORS} +26 -3
  23. data/vendor/pygments-main/Pygments-2.8.0.dist-info/INSTALLER +1 -0
  24. data/vendor/pygments-main/{LICENSE → Pygments-2.8.0.dist-info/LICENSE} +1 -1
  25. data/vendor/pygments-main/Pygments-2.8.0.dist-info/METADATA +48 -0
  26. data/vendor/pygments-main/Pygments-2.8.0.dist-info/RECORD +494 -0
  27. data/vendor/pygments-main/Pygments-2.8.0.dist-info/REQUESTED +0 -0
  28. data/vendor/pygments-main/Pygments-2.8.0.dist-info/WHEEL +5 -0
  29. data/vendor/pygments-main/Pygments-2.8.0.dist-info/entry_points.txt +3 -0
  30. data/vendor/pygments-main/Pygments-2.8.0.dist-info/top_level.txt +1 -0
  31. data/vendor/pygments-main/bin/pygmentize +8 -0
  32. data/vendor/pygments-main/pygments/__init__.py +6 -12
  33. data/vendor/pygments-main/pygments/__main__.py +17 -0
  34. data/vendor/pygments-main/pygments/cmdline.py +213 -184
  35. data/vendor/pygments-main/pygments/console.py +6 -10
  36. data/vendor/pygments-main/pygments/filter.py +4 -7
  37. data/vendor/pygments-main/pygments/filters/__init__.py +609 -22
  38. data/vendor/pygments-main/pygments/formatter.py +4 -5
  39. data/vendor/pygments-main/pygments/formatters/__init__.py +10 -10
  40. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -4
  41. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
  42. data/vendor/pygments-main/pygments/formatters/html.py +242 -139
  43. data/vendor/pygments-main/pygments/formatters/img.py +91 -50
  44. data/vendor/pygments-main/pygments/formatters/irc.py +39 -40
  45. data/vendor/pygments-main/pygments/formatters/latex.py +62 -33
  46. data/vendor/pygments-main/pygments/formatters/other.py +18 -17
  47. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -30
  48. data/vendor/pygments-main/pygments/formatters/svg.py +40 -5
  49. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -32
  50. data/vendor/pygments-main/pygments/formatters/terminal256.py +45 -14
  51. data/vendor/pygments-main/pygments/lexer.py +47 -44
  52. data/vendor/pygments-main/pygments/lexers/__init__.py +29 -17
  53. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -6
  54. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -16
  55. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +21 -18
  56. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1339
  57. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
  58. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -5
  59. data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -31
  60. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -3
  61. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1281 -0
  62. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
  63. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -21
  64. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -17
  65. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -3
  66. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -4
  67. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -126
  68. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +96 -58
  69. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
  70. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +112 -0
  71. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +279 -0
  72. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
  73. data/vendor/pygments-main/pygments/lexers/actionscript.py +14 -10
  74. data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
  75. data/vendor/pygments-main/pygments/lexers/algebra.py +20 -2
  76. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  77. data/vendor/pygments-main/pygments/lexers/amdgpu.py +48 -0
  78. data/vendor/pygments-main/pygments/lexers/ampl.py +3 -4
  79. data/vendor/pygments-main/pygments/lexers/apl.py +15 -16
  80. data/vendor/pygments-main/pygments/lexers/archetype.py +4 -5
  81. data/vendor/pygments-main/pygments/lexers/arrow.py +116 -0
  82. data/vendor/pygments-main/pygments/lexers/asm.py +440 -77
  83. data/vendor/pygments-main/pygments/lexers/automation.py +7 -2
  84. data/vendor/pygments-main/pygments/lexers/bare.py +103 -0
  85. data/vendor/pygments-main/pygments/lexers/basic.py +168 -7
  86. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -6
  87. data/vendor/pygments-main/pygments/lexers/boa.py +101 -0
  88. data/vendor/pygments-main/pygments/lexers/business.py +19 -5
  89. data/vendor/pygments-main/pygments/lexers/c_cpp.py +138 -48
  90. data/vendor/pygments-main/pygments/lexers/c_like.py +67 -43
  91. data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -8
  92. data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
  93. data/vendor/pygments-main/pygments/lexers/chapel.py +25 -16
  94. data/vendor/pygments-main/pygments/lexers/clean.py +135 -245
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
  96. data/vendor/pygments-main/pygments/lexers/configs.py +190 -38
  97. data/vendor/pygments-main/pygments/lexers/console.py +1 -2
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +54 -81
  99. data/vendor/pygments-main/pygments/lexers/csound.py +288 -188
  100. data/vendor/pygments-main/pygments/lexers/css.py +28 -23
  101. data/vendor/pygments-main/pygments/lexers/d.py +12 -8
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
  103. data/vendor/pygments-main/pygments/lexers/data.py +240 -98
  104. data/vendor/pygments-main/pygments/lexers/devicetree.py +108 -0
  105. data/vendor/pygments-main/pygments/lexers/diff.py +4 -5
  106. data/vendor/pygments-main/pygments/lexers/dotnet.py +46 -31
  107. data/vendor/pygments-main/pygments/lexers/dsls.py +146 -65
  108. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -19
  109. data/vendor/pygments-main/pygments/lexers/ecl.py +17 -5
  110. data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
  111. data/vendor/pygments-main/pygments/lexers/elm.py +5 -6
  112. data/vendor/pygments-main/pygments/lexers/email.py +150 -0
  113. data/vendor/pygments-main/pygments/lexers/erlang.py +29 -33
  114. data/vendor/pygments-main/pygments/lexers/esoteric.py +46 -20
  115. data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -14
  116. data/vendor/pygments-main/pygments/lexers/factor.py +3 -4
  117. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -2
  118. data/vendor/pygments-main/pygments/lexers/felix.py +1 -2
  119. data/vendor/pygments-main/pygments/lexers/floscript.py +82 -0
  120. data/vendor/pygments-main/pygments/lexers/forth.py +41 -41
  121. data/vendor/pygments-main/pygments/lexers/fortran.py +13 -10
  122. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -3
  123. data/vendor/pygments-main/pygments/lexers/freefem.py +897 -0
  124. data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
  125. data/vendor/pygments-main/pygments/lexers/futhark.py +110 -0
  126. data/vendor/pygments-main/pygments/lexers/gdscript.py +345 -0
  127. data/vendor/pygments-main/pygments/lexers/go.py +2 -3
  128. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +62 -6
  129. data/vendor/pygments-main/pygments/lexers/graph.py +14 -10
  130. data/vendor/pygments-main/pygments/lexers/graphics.py +274 -28
  131. data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
  132. data/vendor/pygments-main/pygments/lexers/haskell.py +48 -22
  133. data/vendor/pygments-main/pygments/lexers/haxe.py +8 -9
  134. data/vendor/pygments-main/pygments/lexers/hdl.py +176 -90
  135. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
  136. data/vendor/pygments-main/pygments/lexers/html.py +37 -26
  137. data/vendor/pygments-main/pygments/lexers/idl.py +19 -9
  138. data/vendor/pygments-main/pygments/lexers/igor.py +244 -113
  139. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
  140. data/vendor/pygments-main/pygments/lexers/installers.py +1 -2
  141. data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -16
  142. data/vendor/pygments-main/pygments/lexers/iolang.py +3 -4
  143. data/vendor/pygments-main/pygments/lexers/j.py +4 -5
  144. data/vendor/pygments-main/pygments/lexers/javascript.py +115 -104
  145. data/vendor/pygments-main/pygments/lexers/julia.py +44 -47
  146. data/vendor/pygments-main/pygments/lexers/jvm.py +368 -202
  147. data/vendor/pygments-main/pygments/lexers/lisp.py +887 -810
  148. data/vendor/pygments-main/pygments/lexers/make.py +12 -9
  149. data/vendor/pygments-main/pygments/lexers/markup.py +212 -45
  150. data/vendor/pygments-main/pygments/lexers/math.py +1 -2
  151. data/vendor/pygments-main/pygments/lexers/matlab.py +2705 -88
  152. data/vendor/pygments-main/pygments/lexers/mime.py +225 -0
  153. data/vendor/pygments-main/pygments/lexers/ml.py +203 -15
  154. data/vendor/pygments-main/pygments/lexers/modeling.py +26 -19
  155. data/vendor/pygments-main/pygments/lexers/modula2.py +27 -9
  156. data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
  157. data/vendor/pygments-main/pygments/lexers/mosel.py +447 -0
  158. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
  159. data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -5
  160. data/vendor/pygments-main/pygments/lexers/nit.py +1 -2
  161. data/vendor/pygments-main/pygments/lexers/nix.py +1 -2
  162. data/vendor/pygments-main/pygments/lexers/oberon.py +17 -2
  163. data/vendor/pygments-main/pygments/lexers/objective.py +18 -19
  164. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -2
  165. data/vendor/pygments-main/pygments/lexers/other.py +1 -2
  166. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -2
  167. data/vendor/pygments-main/pygments/lexers/parsers.py +47 -83
  168. data/vendor/pygments-main/pygments/lexers/pascal.py +22 -23
  169. data/vendor/pygments-main/pygments/lexers/pawn.py +31 -28
  170. data/vendor/pygments-main/pygments/lexers/perl.py +260 -149
  171. data/vendor/pygments-main/pygments/lexers/php.py +66 -13
  172. data/vendor/pygments-main/pygments/lexers/pointless.py +70 -0
  173. data/vendor/pygments-main/pygments/lexers/pony.py +93 -0
  174. data/vendor/pygments-main/pygments/lexers/praat.py +38 -31
  175. data/vendor/pygments-main/pygments/lexers/prolog.py +38 -39
  176. data/vendor/pygments-main/pygments/lexers/promql.py +182 -0
  177. data/vendor/pygments-main/pygments/lexers/python.py +450 -231
  178. data/vendor/pygments-main/pygments/lexers/qvt.py +6 -7
  179. data/vendor/pygments-main/pygments/lexers/r.py +13 -276
  180. data/vendor/pygments-main/pygments/lexers/rdf.py +232 -40
  181. data/vendor/pygments-main/pygments/lexers/rebol.py +8 -9
  182. data/vendor/pygments-main/pygments/lexers/resource.py +2 -3
  183. data/vendor/pygments-main/pygments/lexers/ride.py +138 -0
  184. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -2
  185. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
  186. data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -32
  187. data/vendor/pygments-main/pygments/lexers/ruby.py +50 -46
  188. data/vendor/pygments-main/pygments/lexers/rust.py +76 -73
  189. data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
  190. data/vendor/pygments-main/pygments/lexers/scdoc.py +82 -0
  191. data/vendor/pygments-main/pygments/lexers/scripting.py +79 -18
  192. data/vendor/pygments-main/pygments/lexers/sgf.py +60 -0
  193. data/vendor/pygments-main/pygments/lexers/shell.py +164 -49
  194. data/vendor/pygments-main/pygments/lexers/sieve.py +68 -0
  195. data/vendor/pygments-main/pygments/lexers/slash.py +184 -0
  196. data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -3
  197. data/vendor/pygments-main/pygments/lexers/smv.py +3 -4
  198. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
  199. data/vendor/pygments-main/pygments/lexers/solidity.py +91 -0
  200. data/vendor/pygments-main/pygments/lexers/special.py +31 -28
  201. data/vendor/pygments-main/pygments/lexers/sql.py +330 -179
  202. data/vendor/pygments-main/pygments/lexers/stata.py +107 -45
  203. data/vendor/pygments-main/pygments/lexers/supercollider.py +8 -4
  204. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -2
  205. data/vendor/pygments-main/pygments/lexers/templates.py +116 -136
  206. data/vendor/pygments-main/pygments/lexers/teraterm.py +334 -0
  207. data/vendor/pygments-main/pygments/lexers/testing.py +6 -7
  208. data/vendor/pygments-main/pygments/lexers/text.py +2 -2
  209. data/vendor/pygments-main/pygments/lexers/textedit.py +6 -7
  210. data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -14
  211. data/vendor/pygments-main/pygments/lexers/theorem.py +74 -56
  212. data/vendor/pygments-main/pygments/lexers/tnt.py +262 -0
  213. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -2
  214. data/vendor/pygments-main/pygments/lexers/typoscript.py +4 -12
  215. data/vendor/pygments-main/pygments/lexers/unicon.py +411 -0
  216. data/vendor/pygments-main/pygments/lexers/urbi.py +16 -4
  217. data/vendor/pygments-main/pygments/lexers/usd.py +89 -0
  218. data/vendor/pygments-main/pygments/lexers/varnish.py +4 -5
  219. data/vendor/pygments-main/pygments/lexers/verification.py +13 -11
  220. data/vendor/pygments-main/pygments/lexers/web.py +1 -2
  221. data/vendor/pygments-main/pygments/lexers/webidl.py +298 -0
  222. data/vendor/pygments-main/pygments/lexers/webmisc.py +35 -32
  223. data/vendor/pygments-main/pygments/lexers/whiley.py +5 -6
  224. data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
  225. data/vendor/pygments-main/pygments/lexers/xorg.py +5 -5
  226. data/vendor/pygments-main/pygments/lexers/yang.py +103 -0
  227. data/vendor/pygments-main/pygments/lexers/zig.py +123 -0
  228. data/vendor/pygments-main/pygments/modeline.py +1 -2
  229. data/vendor/pygments-main/pygments/plugin.py +4 -3
  230. data/vendor/pygments-main/pygments/regexopt.py +1 -2
  231. data/vendor/pygments-main/pygments/scanner.py +2 -3
  232. data/vendor/pygments-main/pygments/sphinxext.py +2 -5
  233. data/vendor/pygments-main/pygments/style.py +61 -25
  234. data/vendor/pygments-main/pygments/styles/__init__.py +12 -5
  235. data/vendor/pygments-main/pygments/styles/abap.py +1 -2
  236. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  237. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  238. data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
  239. data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
  240. data/vendor/pygments-main/pygments/styles/borland.py +1 -2
  241. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  242. data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
  243. data/vendor/pygments-main/pygments/styles/default.py +1 -2
  244. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  245. data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
  246. data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
  247. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  248. data/vendor/pygments-main/pygments/styles/inkpot.py +66 -0
  249. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
  250. data/vendor/pygments-main/pygments/styles/manni.py +1 -2
  251. data/vendor/pygments-main/pygments/styles/material.py +118 -0
  252. data/vendor/pygments-main/pygments/styles/monokai.py +4 -4
  253. data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
  254. data/vendor/pygments-main/pygments/styles/native.py +1 -2
  255. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
  256. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
  257. data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
  258. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  259. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
  260. data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
  261. data/vendor/pygments-main/pygments/styles/sas.py +1 -2
  262. data/vendor/pygments-main/pygments/styles/solarized.py +136 -0
  263. data/vendor/pygments-main/pygments/styles/stata_dark.py +40 -0
  264. data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -16
  265. data/vendor/pygments-main/pygments/styles/tango.py +1 -2
  266. data/vendor/pygments-main/pygments/styles/trac.py +1 -2
  267. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  268. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  269. data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
  270. data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
  271. data/vendor/pygments-main/pygments/token.py +1 -2
  272. data/vendor/pygments-main/pygments/unistring.py +47 -109
  273. data/vendor/pygments-main/pygments/util.py +16 -96
  274. metadata +76 -137
  275. data/CHANGELOG.md +0 -105
  276. data/README.md +0 -121
  277. data/circle.yml +0 -20
  278. data/test/test_data.c +0 -2581
  279. data/test/test_data.py +0 -514
  280. data/test/test_data_generated +0 -2582
  281. data/vendor/custom_lexers/github.py +0 -565
  282. data/vendor/pygments-main/CHANGES +0 -1186
  283. data/vendor/pygments-main/MANIFEST.in +0 -6
  284. data/vendor/pygments-main/Makefile +0 -65
  285. data/vendor/pygments-main/README.rst +0 -39
  286. data/vendor/pygments-main/REVISION +0 -1
  287. data/vendor/pygments-main/TODO +0 -12
  288. data/vendor/pygments-main/doc/Makefile +0 -153
  289. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  290. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  291. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  292. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  293. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  294. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  295. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  296. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  297. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  298. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  299. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  300. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  301. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  302. data/vendor/pygments-main/doc/conf.py +0 -241
  303. data/vendor/pygments-main/doc/docs/api.rst +0 -354
  304. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  305. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  306. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
  307. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  308. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  309. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  310. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  311. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  312. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  313. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  314. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
  315. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  316. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  317. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  318. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  319. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  320. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  321. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  322. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  323. data/vendor/pygments-main/doc/download.rst +0 -41
  324. data/vendor/pygments-main/doc/faq.rst +0 -139
  325. data/vendor/pygments-main/doc/index.rst +0 -54
  326. data/vendor/pygments-main/doc/languages.rst +0 -154
  327. data/vendor/pygments-main/doc/make.bat +0 -190
  328. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  329. data/vendor/pygments-main/external/autopygmentize +0 -101
  330. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  331. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  332. data/vendor/pygments-main/external/moin-parser.py +0 -112
  333. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  334. data/vendor/pygments-main/external/rst-directive.py +0 -82
  335. data/vendor/pygments-main/pygmentize +0 -8
  336. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  337. data/vendor/pygments-main/requirements.txt +0 -5
  338. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  339. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  340. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  341. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  342. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  343. data/vendor/pygments-main/scripts/pylintrc +0 -301
  344. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  345. data/vendor/pygments-main/setup.cfg +0 -10
  346. data/vendor/pygments-main/setup.py +0 -77
  347. data/vendor/pygments-main/tox.ini +0 -7
  348. data/vendor/simplejson/.gitignore +0 -10
  349. data/vendor/simplejson/.travis.yml +0 -5
  350. data/vendor/simplejson/CHANGES.txt +0 -291
  351. data/vendor/simplejson/LICENSE.txt +0 -19
  352. data/vendor/simplejson/MANIFEST.in +0 -5
  353. data/vendor/simplejson/README.rst +0 -19
  354. data/vendor/simplejson/conf.py +0 -179
  355. data/vendor/simplejson/index.rst +0 -628
  356. data/vendor/simplejson/scripts/make_docs.py +0 -18
  357. data/vendor/simplejson/setup.py +0 -104
  358. data/vendor/simplejson/simplejson/__init__.py +0 -510
  359. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  360. data/vendor/simplejson/simplejson/decoder.py +0 -425
  361. data/vendor/simplejson/simplejson/encoder.py +0 -567
  362. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  363. data/vendor/simplejson/simplejson/scanner.py +0 -77
  364. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  365. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  366. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  367. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  368. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  369. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  370. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  371. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  372. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  373. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  374. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  375. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  376. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  377. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  378. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  379. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  380. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  381. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  382. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  383. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  384. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  385. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  386. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  387. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  388. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.inferno
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Inferno os and all the related stuff.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -64,7 +63,7 @@ class LimboLexer(RegexLexer):
64
63
  (r'(byte|int|big|real|string|array|chan|list|adt'
65
64
  r'|fn|ref|of|module|self|type)\b', Keyword.Type),
66
65
  (r'(con|iota|nil)\b', Keyword.Constant),
67
- ('[a-zA-Z_]\w*', Name),
66
+ (r'[a-zA-Z_]\w*', Name),
68
67
  ],
69
68
  'statement' : [
70
69
  include('whitespace'),
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.installers
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for installer/packager DSLs and formats.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.int_fiction
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for interactive fiction languages.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -38,10 +37,10 @@ class Inform6Lexer(RegexLexer):
38
37
  # Inform 7 maps these four character classes to their ASCII
39
38
  # equivalents. To support Inform 6 inclusions within Inform 7,
40
39
  # Inform6Lexer maps them too.
41
- _dash = u'\\-\u2010-\u2014'
42
- _dquote = u'"\u201c\u201d'
43
- _squote = u"'\u2018\u2019"
44
- _newline = u'\\n\u0085\u2028\u2029'
40
+ _dash = '\\-\u2010-\u2014'
41
+ _dquote = '"\u201c\u201d'
42
+ _squote = "'\u2018\u2019"
43
+ _newline = '\\n\u0085\u2028\u2029'
45
44
 
46
45
  tokens = {
47
46
  'root': [
@@ -118,7 +117,7 @@ class Inform6Lexer(RegexLexer):
118
117
  include('_whitespace'),
119
118
  # Strings
120
119
  (r'[%s][^@][%s]' % (_squote, _squote), String.Char, '#pop'),
121
- (r'([%s])(@\{[0-9a-fA-F]{1,4}\})([%s])' % (_squote, _squote),
120
+ (r'([%s])(@\{[0-9a-fA-F]*\})([%s])' % (_squote, _squote),
122
121
  bygroups(String.Char, String.Escape, String.Char), '#pop'),
123
122
  (r'([%s])(@.{2})([%s])' % (_squote, _squote),
124
123
  bygroups(String.Char, String.Escape, String.Char), '#pop'),
@@ -180,7 +179,7 @@ class Inform6Lexer(RegexLexer):
180
179
  (r'[~^]+', String.Escape),
181
180
  (r'[^~^\\@({%s]+' % _squote, String.Single),
182
181
  (r'[({]', String.Single),
183
- (r'@\{[0-9a-fA-F]{,4}\}', String.Escape),
182
+ (r'@\{[0-9a-fA-F]*\}', String.Escape),
184
183
  (r'@.{2}', String.Escape),
185
184
  (r'[%s]' % _squote, String.Single, '#pop')
186
185
  ],
@@ -191,7 +190,7 @@ class Inform6Lexer(RegexLexer):
191
190
  (r'\\', String.Escape),
192
191
  (r'@(\\\s*[%s]\s*)*@((\\\s*[%s]\s*)*[0-9])*' %
193
192
  (_newline, _newline), String.Escape),
194
- (r'@(\\\s*[%s]\s*)*\{((\\\s*[%s]\s*)*[0-9a-fA-F]){,4}'
193
+ (r'@(\\\s*[%s]\s*)*\{((\\\s*[%s]\s*)*[0-9a-fA-F])*'
195
194
  r'(\\\s*[%s]\s*)*\}' % (_newline, _newline, _newline),
196
195
  String.Escape),
197
196
  (r'@(\\\s*[%s]\s*)*.(\\\s*[%s]\s*)*.' % (_newline, _newline),
@@ -257,8 +256,8 @@ class Inform6Lexer(RegexLexer):
257
256
  (r'(?i)(extend|verb)\b', Keyword, 'grammar'),
258
257
  (r'(?i)fake_action\b', Keyword, ('default', '_constant')),
259
258
  (r'(?i)import\b', Keyword, 'manifest'),
260
- (r'(?i)(include|link)\b', Keyword,
261
- ('default', 'before-plain-string')),
259
+ (r'(?i)(include|link|origsource)\b', Keyword,
260
+ ('default', 'before-plain-string?')),
262
261
  (r'(?i)(lowstring|undef)\b', Keyword, ('default', '_constant')),
263
262
  (r'(?i)message\b', Keyword, ('default', 'diagnostic')),
264
263
  (r'(?i)(nearby|object)\b', Keyword,
@@ -365,11 +364,12 @@ class Inform6Lexer(RegexLexer):
365
364
  'diagnostic': [
366
365
  include('_whitespace'),
367
366
  (r'[%s]' % _dquote, String.Double, ('#pop', 'message-string')),
368
- default(('#pop', 'before-plain-string', 'directive-keyword?'))
367
+ default(('#pop', 'before-plain-string?', 'directive-keyword?'))
369
368
  ],
370
- 'before-plain-string': [
369
+ 'before-plain-string?': [
371
370
  include('_whitespace'),
372
- (r'[%s]' % _dquote, String.Double, ('#pop', 'plain-string'))
371
+ (r'[%s]' % _dquote, String.Double, ('#pop', 'plain-string')),
372
+ default('#pop')
373
373
  ],
374
374
  'message-string': [
375
375
  (r'[~^]+', String.Escape),
@@ -386,6 +386,7 @@ class Inform6Lexer(RegexLexer):
386
386
  'replace', 'reverse', 'scope', 'score', 'special', 'string', 'table', 'terminating',
387
387
  'time', 'topic', 'warning', 'with'), suffix=r'\b'),
388
388
  Keyword, '#pop'),
389
+ (r'static\b', Keyword),
389
390
  (r'[%s]{1,2}>|[+=]' % _dash, Punctuation, '#pop')
390
391
  ],
391
392
  '_directive-keyword': [
@@ -514,6 +515,15 @@ class Inform6Lexer(RegexLexer):
514
515
  while objectloop_queue:
515
516
  yield objectloop_queue.pop(0)
516
517
 
518
+ def analyse_text(text):
519
+ """We try to find a keyword which seem relatively common, unfortunately
520
+ there is a decent overlap with Smalltalk keywords otherwise here.."""
521
+ result = 0
522
+ if re.search('\borigsource\b', text, re.IGNORECASE):
523
+ result += 0.05
524
+
525
+ return result
526
+
517
527
 
518
528
  class Inform7Lexer(RegexLexer):
519
529
  """
@@ -856,7 +866,7 @@ class Tads3Lexer(RegexLexer):
856
866
 
857
867
  tokens = {
858
868
  'root': [
859
- (u'\ufeff', Text),
869
+ ('\ufeff', Text),
860
870
  (r'\{', Punctuation, 'object-body'),
861
871
  (r';+', Punctuation),
862
872
  (r'(?=(argcount|break|case|catch|continue|default|definingobj|'
@@ -911,7 +921,7 @@ class Tads3Lexer(RegexLexer):
911
921
  'block?/root': [
912
922
  (r'\{', Punctuation, ('#pop', 'block')),
913
923
  include('whitespace'),
914
- (r'(?=[[\'"<(:])', Text, # It might be a VerbRule macro.
924
+ (r'(?=[\[\'"<(:])', Text, # It might be a VerbRule macro.
915
925
  ('#pop', 'object-body/no-braces', 'grammar', 'grammar-rules')),
916
926
  # It might be a macro like DefineAction.
917
927
  default(('#pop', 'object-body/no-braces'))
@@ -1341,3 +1351,17 @@ class Tads3Lexer(RegexLexer):
1341
1351
  else:
1342
1352
  token = Comment
1343
1353
  yield index, token, value
1354
+
1355
+ def analyse_text(text):
1356
+ """This is a rather generic descriptive language without strong
1357
+ identifiers. It looks like a 'GameMainDef' has to be present,
1358
+ and/or a 'versionInfo' with an 'IFID' field."""
1359
+ result = 0
1360
+ if '__TADS' in text or 'GameMainDef' in text:
1361
+ result += 0.2
1362
+
1363
+ # This is a fairly unique keyword which is likely used in source as well
1364
+ if 'versionInfo' in text and 'IFID' in text:
1365
+ result += 0.1
1366
+
1367
+ return result
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.iolang
4
3
  ~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for the Io language.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -37,7 +36,7 @@ class IoLexer(RegexLexer):
37
36
  (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
38
37
  (r'/\+', Comment.Multiline, 'nestedcomment'),
39
38
  # DoubleQuotedString
40
- (r'"(\\\\|\\"|[^"])*"', String),
39
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
41
40
  # Operators
42
41
  (r'::=|:=|=|\(|\)|;|,|\*|-|\+|>|<|@|!|/|\||\^|\.|%|&|\[|\]|\{|\}',
43
42
  Operator),
@@ -49,7 +48,7 @@ class IoLexer(RegexLexer):
49
48
  # names
50
49
  (r'(Object|list|List|Map|args|Sequence|Coroutine|File)\b',
51
50
  Name.Builtin),
52
- ('[a-zA-Z_]\w*', Name),
51
+ (r'[a-zA-Z_]\w*', Name),
53
52
  # numbers
54
53
  (r'(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
55
54
  (r'\d+', Number.Integer)
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.j
4
3
  ~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for the J programming language.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -52,13 +51,13 @@ class JLexer(RegexLexer):
52
51
  Name.Function, 'explicitDefinition'),
53
52
 
54
53
  # Flow Control
55
- (words(('for_', 'goto_', 'label_'), suffix=validName+'\.'), Name.Label),
54
+ (words(('for_', 'goto_', 'label_'), suffix=validName+r'\.'), Name.Label),
56
55
  (words((
57
56
  'assert', 'break', 'case', 'catch', 'catchd',
58
57
  'catcht', 'continue', 'do', 'else', 'elseif',
59
58
  'end', 'fcase', 'for', 'if', 'return',
60
59
  'select', 'throw', 'try', 'while', 'whilst',
61
- ), suffix='\.'), Name.Label),
60
+ ), suffix=r'\.'), Name.Label),
62
61
 
63
62
  # Variable Names
64
63
  (validName, Name.Variable),
@@ -89,7 +88,7 @@ class JLexer(RegexLexer):
89
88
  (r'=[.:]', Operator),
90
89
 
91
90
  # Builtins
92
- (r'[-=+*#$%@!~`^&";:.,<>{}\[\]\\|/]', Operator),
91
+ (r'[-=+*#$%@!~`^&";:.,<>{}\[\]\\|/?]', Operator),
93
92
 
94
93
  # Short Keywords
95
94
  (r'[abCdDeEfHiIjLMoprtT]\.', Keyword.Reserved),
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.javascript
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for JavaScript and related languages.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -15,7 +14,7 @@ from pygments.lexer import RegexLexer, include, bygroups, default, using, \
15
14
  this, words, combined
16
15
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
17
16
  Number, Punctuation, Other
18
- from pygments.util import get_bool_opt, iteritems
17
+ from pygments.util import get_bool_opt
19
18
  import pygments.unistring as uni
20
19
 
21
20
  __all__ = ['JavascriptLexer', 'KalLexer', 'LiveScriptLexer', 'DartLexer',
@@ -26,7 +25,7 @@ JS_IDENT_START = ('(?:[$_' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl') +
26
25
  ']|\\\\u[a-fA-F0-9]{4})')
27
26
  JS_IDENT_PART = ('(?:[$' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl',
28
27
  'Mn', 'Mc', 'Nd', 'Pc') +
29
- u'\u200c\u200d]|\\\\u[a-fA-F0-9]{4})')
28
+ '\u200c\u200d]|\\\\u[a-fA-F0-9]{4})')
30
29
  JS_IDENT = JS_IDENT_START + '(?:' + JS_IDENT_PART + ')*'
31
30
 
32
31
 
@@ -37,7 +36,7 @@ class JavascriptLexer(RegexLexer):
37
36
 
38
37
  name = 'JavaScript'
39
38
  aliases = ['js', 'javascript']
40
- filenames = ['*.js', '*.jsm']
39
+ filenames = ['*.js', '*.jsm', '*.mjs']
41
40
  mimetypes = ['application/javascript', 'application/x-javascript',
42
41
  'text/x-javascript', 'text/javascript']
43
42
 
@@ -53,7 +52,7 @@ class JavascriptLexer(RegexLexer):
53
52
  'slashstartsregex': [
54
53
  include('commentsandwhitespace'),
55
54
  (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
56
- r'([gimuy]+\b|\B)', String.Regex, '#pop'),
55
+ r'([gimuys]+\b|\B)', String.Regex, '#pop'),
57
56
  (r'(?=/)', Text, ('#pop', 'badregex')),
58
57
  default('#pop')
59
58
  ],
@@ -64,39 +63,43 @@ class JavascriptLexer(RegexLexer):
64
63
  (r'\A#! ?/.*?\n', Comment.Hashbang), # recognized by node.js
65
64
  (r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
66
65
  include('commentsandwhitespace'),
67
- (r'(\.\d+|[0-9]+\.[0-9]*)([eE][-+]?[0-9]+)?', Number.Float),
68
- (r'0[bB][01]+', Number.Bin),
69
- (r'0[oO][0-7]+', Number.Oct),
70
- (r'0[xX][0-9a-fA-F]+', Number.Hex),
71
- (r'[0-9]+', Number.Integer),
66
+
67
+ # Numeric literals
68
+ (r'0[bB][01]+n?', Number.Bin),
69
+ (r'0[oO]?[0-7]+n?', Number.Oct), # Browsers support "0o7" and "07" (< ES5) notations
70
+ (r'0[xX][0-9a-fA-F]+n?', Number.Hex),
71
+ (r'[0-9]+n', Number.Integer), # Javascript BigInt requires an "n" postfix
72
+ # Javascript doesn't have actual integer literals, so every other
73
+ # numeric literal is handled by the regex below (including "normal")
74
+ # integers
75
+ (r'(\.[0-9]+|[0-9]+\.[0-9]*|[0-9]+)([eE][-+]?[0-9]+)?', Number.Float),
76
+
72
77
  (r'\.\.\.|=>', Punctuation),
73
78
  (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
74
79
  r'(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
75
80
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
76
81
  (r'[})\].]', Punctuation),
77
82
  (r'(for|in|while|do|break|return|continue|switch|case|default|if|else|'
78
- r'throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|'
79
- r'this|of)\b', Keyword, 'slashstartsregex'),
80
- (r'(var|let|with|function)\b', Keyword.Declaration, 'slashstartsregex'),
81
- (r'(abstract|boolean|byte|char|class|const|debugger|double|enum|export|'
82
- r'extends|final|float|goto|implements|import|int|interface|long|native|'
83
- r'package|private|protected|public|short|static|super|synchronized|throws|'
84
- r'transient|volatile)\b', Keyword.Reserved),
83
+ r'throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|await|async|'
84
+ r'this|of|static|export|import|debugger|extends|super)\b', Keyword, 'slashstartsregex'),
85
+ (r'(var|let|const|with|function|class)\b', Keyword.Declaration, 'slashstartsregex'),
86
+ (r'(abstract|boolean|byte|char|double|enum|final|float|goto'
87
+ r'implements|int|interface|long|native|package|private|protected'
88
+ r'public|short|synchronized|throws|transient|volatile)\b', Keyword.Reserved),
85
89
  (r'(true|false|null|NaN|Infinity|undefined)\b', Keyword.Constant),
86
- (r'(Array|Boolean|Date|Error|Function|Math|netscape|'
87
- r'Number|Object|Packages|RegExp|String|Promise|Proxy|sun|decodeURI|'
90
+ (r'(Array|Boolean|Date|BigInt|Error|Function|Math|'
91
+ r'Number|Object|RegExp|String|Promise|Proxy|decodeURI|'
88
92
  r'decodeURIComponent|encodeURI|encodeURIComponent|'
89
93
  r'Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|'
90
- r'document|this|window)\b', Name.Builtin),
94
+ r'document|this|window|globalThis|Symbol)\b', Name.Builtin),
91
95
  (JS_IDENT, Name.Other),
92
- (r'"(\\\\|\\"|[^"])*"', String.Double),
93
- (r"'(\\\\|\\'|[^'])*'", String.Single),
96
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
97
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
94
98
  (r'`', String.Backtick, 'interp'),
95
99
  ],
96
100
  'interp': [
97
101
  (r'`', String.Backtick, '#pop'),
98
- (r'\\\\', String.Backtick),
99
- (r'\\`', String.Backtick),
102
+ (r'\\.', String.Backtick),
100
103
  (r'\$\{', String.Interpol, 'interp-inside'),
101
104
  (r'\$', String.Backtick),
102
105
  (r'[^`\\$]+', String.Backtick),
@@ -106,7 +109,6 @@ class JavascriptLexer(RegexLexer):
106
109
  (r'\}', String.Interpol, '#pop'),
107
110
  include('root'),
108
111
  ],
109
- # (\\\\|\\`|[^`])*`', String.Backtick),
110
112
  }
111
113
 
112
114
 
@@ -155,7 +157,7 @@ class KalLexer(RegexLexer):
155
157
  'root': [
156
158
  include('commentsandwhitespace'),
157
159
  (r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
158
- r'([gim]+\b|\B)', String.Regex),
160
+ r'([gimuys]+\b|\B)', String.Regex),
159
161
  (r'\?|:|_(?=\n)|==?|!=|-(?!>)|[<>+*/-]=?',
160
162
  Operator),
161
163
  (r'\b(and|or|isnt|is|not|but|bitwise|mod|\^|xor|exists|'
@@ -177,13 +179,11 @@ class KalLexer(RegexLexer):
177
179
  (r'(?<![.$])(true|false|yes|no|on|off|null|nothing|none|'
178
180
  r'NaN|Infinity|undefined)\b',
179
181
  Keyword.Constant),
180
- (r'(Array|Boolean|Date|Error|Function|Math|netscape|'
181
- r'Number|Object|Packages|RegExp|String|sun|decodeURI|'
182
+ (r'(Array|Boolean|Date|Error|Function|Math|'
183
+ r'Number|Object|RegExp|String|decodeURI|'
182
184
  r'decodeURIComponent|encodeURI|encodeURIComponent|'
183
185
  r'eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|'
184
- r'window|'
185
- r'print)\b',
186
- Name.Builtin),
186
+ r'window|globalThis|Symbol|print)\b', Name.Builtin),
187
187
  (r'[$a-zA-Z_][\w.$]*\s*(:|[+\-*/]?\=)?\b', Name.Variable),
188
188
  (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
189
189
  (r'0x[0-9a-fA-F]+', Number.Hex),
@@ -250,7 +250,7 @@ class LiveScriptLexer(RegexLexer):
250
250
  ],
251
251
  'multilineregex': [
252
252
  include('commentsandwhitespace'),
253
- (r'//([gim]+\b|\B)', String.Regex, '#pop'),
253
+ (r'//([gimuys]+\b|\B)', String.Regex, '#pop'),
254
254
  (r'/', String.Regex),
255
255
  (r'[^/#]+', String.Regex)
256
256
  ],
@@ -258,12 +258,12 @@ class LiveScriptLexer(RegexLexer):
258
258
  include('commentsandwhitespace'),
259
259
  (r'//', String.Regex, ('#pop', 'multilineregex')),
260
260
  (r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
261
- r'([gim]+\b|\B)', String.Regex, '#pop'),
261
+ r'([gimuys]+\b|\B)', String.Regex, '#pop'),
262
+ (r'/', Operator, '#pop'),
262
263
  default('#pop'),
263
264
  ],
264
265
  'root': [
265
- # this next expr leads to infinite loops root -> slashstartsregex
266
- # (r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
266
+ (r'\A(?=\s|/)', Text, 'slashstartsregex'),
267
267
  include('commentsandwhitespace'),
268
268
  (r'(?:\([^()]+\))?[ ]*[~-]{1,2}>|'
269
269
  r'(?:\(?[^()\n]+\)?)?[ ]*<[~-]{1,2}', Name.Function),
@@ -282,11 +282,11 @@ class LiveScriptLexer(RegexLexer):
282
282
  (r'(?<![.$])(true|false|yes|no|on|off|'
283
283
  r'null|NaN|Infinity|undefined|void)\b',
284
284
  Keyword.Constant),
285
- (r'(Array|Boolean|Date|Error|Function|Math|netscape|'
286
- r'Number|Object|Packages|RegExp|String|sun|decodeURI|'
285
+ (r'(Array|Boolean|Date|Error|Function|Math|'
286
+ r'Number|Object|RegExp|String|decodeURI|'
287
287
  r'decodeURIComponent|encodeURI|encodeURIComponent|'
288
- r'eval|isFinite|isNaN|parseFloat|parseInt|document|window)\b',
289
- Name.Builtin),
288
+ r'eval|isFinite|isNaN|parseFloat|parseInt|document|window|'
289
+ r'globalThis|Symbol|Symbol|BigInt)\b', Name.Builtin),
290
290
  (r'[$a-zA-Z_][\w.\-:$]*\s*[:=]\s', Name.Variable,
291
291
  'slashstartsregex'),
292
292
  (r'@[$a-zA-Z_][\w.\-:$]*\s*[:=]\s', Name.Variable.Instance,
@@ -340,7 +340,7 @@ class LiveScriptLexer(RegexLexer):
340
340
 
341
341
  class DartLexer(RegexLexer):
342
342
  """
343
- For `Dart <http://dartlang.org/>`_ source code.
343
+ For `Dart <http://dart.dev/>`_ source code.
344
344
 
345
345
  .. versionadded:: 1.5
346
346
  """
@@ -361,17 +361,19 @@ class DartLexer(RegexLexer):
361
361
  (r'[^\S\n]+', Text),
362
362
  (r'//.*?\n', Comment.Single),
363
363
  (r'/\*.*?\*/', Comment.Multiline),
364
- (r'\b(class)\b(\s+)',
364
+ (r'\b(class|extension|mixin)\b(\s+)',
365
365
  bygroups(Keyword.Declaration, Text), 'class'),
366
- (r'\b(assert|break|case|catch|continue|default|do|else|finally|for|'
367
- r'if|in|is|new|return|super|switch|this|throw|try|while)\b',
366
+ (r'\b(as|assert|break|case|catch|const|continue|default|do|else|finally|'
367
+ r'for|if|in|is|new|rethrow|return|super|switch|this|throw|try|while)\b',
368
368
  Keyword),
369
- (r'\b(abstract|async|await|const|extends|factory|final|get|'
370
- r'implements|native|operator|set|static|sync|typedef|var|with|'
371
- r'yield)\b', Keyword.Declaration),
372
- (r'\b(bool|double|dynamic|int|num|Object|String|void)\b', Keyword.Type),
369
+ (r'\b(abstract|async|await|const|covariant|extends|external|factory|final|'
370
+ r'get|implements|late|native|on|operator|required|set|static|sync|typedef|'
371
+ r'var|with|yield)\b', Keyword.Declaration),
372
+ (r'\b(bool|double|dynamic|int|num|Function|Never|Null|Object|String|void)\b',
373
+ Keyword.Type),
373
374
  (r'\b(false|null|true)\b', Keyword.Constant),
374
375
  (r'[~!%^&*+=|?:<>/-]|as\b', Operator),
376
+ (r'@[a-zA-Z_$]\w*', Name.Decorator),
375
377
  (r'[a-zA-Z_$]\w*:', Name.Label),
376
378
  (r'[a-zA-Z_$]\w*', Name),
377
379
  (r'[(){}\[\],.;]', Punctuation),
@@ -388,7 +390,7 @@ class DartLexer(RegexLexer):
388
390
  'import_decl': [
389
391
  include('string_literal'),
390
392
  (r'\s+', Text),
391
- (r'\b(as|show|hide)\b', Keyword),
393
+ (r'\b(as|deferred|show|hide)\b', Keyword),
392
394
  (r'[a-zA-Z_$]\w*', Name),
393
395
  (r'\,', Punctuation),
394
396
  (r'\;', Punctuation, '#pop')
@@ -453,6 +455,10 @@ class TypeScriptLexer(RegexLexer):
453
455
 
454
456
  flags = re.DOTALL | re.MULTILINE
455
457
 
458
+ # Higher priority than the TypoScriptLexer, as TypeScript is far more
459
+ # common these days
460
+ priority = 0.5
461
+
456
462
  tokens = {
457
463
  'commentsandwhitespace': [
458
464
  (r'\s+', Text),
@@ -463,7 +469,7 @@ class TypeScriptLexer(RegexLexer):
463
469
  'slashstartsregex': [
464
470
  include('commentsandwhitespace'),
465
471
  (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
466
- r'([gim]+\b|\B)', String.Regex, '#pop'),
472
+ r'([gimuys]+\b|\B)', String.Regex, '#pop'),
467
473
  (r'(?=/)', Text, ('#pop', 'badregex')),
468
474
  default('#pop')
469
475
  ],
@@ -478,19 +484,20 @@ class TypeScriptLexer(RegexLexer):
478
484
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
479
485
  (r'[})\].]', Punctuation),
480
486
  (r'(for|in|while|do|break|return|continue|switch|case|default|if|else|'
481
- r'throw|try|catch|finally|new|delete|typeof|instanceof|void|'
482
- r'this)\b', Keyword, 'slashstartsregex'),
483
- (r'(var|let|with|function)\b', Keyword.Declaration, 'slashstartsregex'),
484
- (r'(abstract|boolean|byte|char|class|const|debugger|double|enum|export|'
485
- r'extends|final|float|goto|implements|import|int|interface|long|native|'
486
- r'package|private|protected|public|short|static|super|synchronized|throws|'
487
- r'transient|volatile)\b', Keyword.Reserved),
487
+ r'throw|try|catch|finally|new|delete|typeof|instanceof|void|of|'
488
+ r'this|async|await|debugger|yield|abstract|static|import|export|'
489
+ r'implements|super|extends|private|protected|public|readonly)\b',
490
+ Keyword, 'slashstartsregex'),
491
+ (r'(var|let|const|with|function|class|type|enum|interface)\b',
492
+ Keyword.Declaration, 'slashstartsregex'),
493
+ (r'(boolean|byte|char|double|final|float|goto|int|long|native|'
494
+ r'package|short|synchronized|throws|transient|volatile)\b', Keyword.Reserved),
488
495
  (r'(true|false|null|NaN|Infinity|undefined)\b', Keyword.Constant),
489
- (r'(Array|Boolean|Date|Error|Function|Math|netscape|'
490
- r'Number|Object|Packages|RegExp|String|sun|decodeURI|'
496
+ (r'(Array|Boolean|Date|Error|Function|Math|'
497
+ r'Number|Object|RegExp|String|decodeURI|'
491
498
  r'decodeURIComponent|encodeURI|encodeURIComponent|'
492
499
  r'Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|'
493
- r'window)\b', Name.Builtin),
500
+ r'window|globalThis|Symbol|BigInt)\b', Name.Builtin),
494
501
  # Match stuff like: module name {...}
495
502
  (r'\b(module)(\s*)(\s*[\w?.$][\w?.$]*)(\s*)',
496
503
  bygroups(Keyword.Reserved, Text, Name.Other, Text), 'slashstartsregex'),
@@ -502,16 +509,18 @@ class TypeScriptLexer(RegexLexer):
502
509
  (r'(super)(\s*)(\([\w,?.$\s]+\s*\))',
503
510
  bygroups(Keyword.Reserved, Text), 'slashstartsregex'),
504
511
  # Match stuff like: function() {...}
505
- (r'([a-zA-Z_?.$][\w?.$]*)\(\) \{', Name.Other, 'slashstartsregex'),
512
+ (r'([a-zA-Z_?.$][\w?.$]*)(?=\(\) \{)', Name.Other, 'slashstartsregex'),
506
513
  # Match stuff like: (function: return type)
507
514
  (r'([\w?.$][\w?.$]*)(\s*:\s*)([\w?.$][\w?.$]*)',
508
515
  bygroups(Name.Other, Text, Keyword.Type)),
509
516
  (r'[$a-zA-Z_]\w*', Name.Other),
510
- (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
511
- (r'0x[0-9a-fA-F]+', Number.Hex),
512
- (r'[0-9]+', Number.Integer),
513
- (r'"(\\\\|\\"|[^"])*"', String.Double),
514
- (r"'(\\\\|\\'|[^'])*'", String.Single),
517
+ (r'0[bB][01]+n?', Number.Bin),
518
+ (r'0[oO]?[0-7]+n?', Number.Oct), # Browsers support "0o7" and "07" (< ES5) notations
519
+ (r'0[xX][0-9a-fA-F]+n?', Number.Hex),
520
+ (r'[0-9]+n', Number.Integer),
521
+ (r'(\.[0-9]+|[0-9]+\.[0-9]*|[0-9]+)([eE][-+]?[0-9]+)?', Number.Float),
522
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
523
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
515
524
  (r'`', String.Backtick, 'interp'),
516
525
  # Match stuff like: Decorators
517
526
  (r'@\w+', Keyword.Declaration),
@@ -521,8 +530,7 @@ class TypeScriptLexer(RegexLexer):
521
530
  # there should be reflected here as well.
522
531
  'interp': [
523
532
  (r'`', String.Backtick, '#pop'),
524
- (r'\\\\', String.Backtick),
525
- (r'\\`', String.Backtick),
533
+ (r'\\.', String.Backtick),
526
534
  (r'\$\{', String.Interpol, 'interp-inside'),
527
535
  (r'\$', String.Backtick),
528
536
  (r'[^`\\$]+', String.Backtick),
@@ -534,12 +542,6 @@ class TypeScriptLexer(RegexLexer):
534
542
  ],
535
543
  }
536
544
 
537
- def analyse_text(text):
538
- if re.search('^(import.+(from\s+)?["\']|'
539
- '(export\s*)?(interface|class|function)\s+)',
540
- text, re.MULTILINE):
541
- return 1.0
542
-
543
545
 
544
546
  class LassoLexer(RegexLexer):
545
547
  """
@@ -768,9 +770,9 @@ class LassoLexer(RegexLexer):
768
770
  self._members = set()
769
771
  if self.builtinshighlighting:
770
772
  from pygments.lexers._lasso_builtins import BUILTINS, MEMBERS
771
- for key, value in iteritems(BUILTINS):
773
+ for key, value in BUILTINS.items():
772
774
  self._builtins.update(value)
773
- for key, value in iteritems(MEMBERS):
775
+ for key, value in MEMBERS.items():
774
776
  self._members.update(value)
775
777
  RegexLexer.__init__(self, **options)
776
778
 
@@ -869,8 +871,8 @@ class ObjectiveJLexer(RegexLexer):
869
871
  (r'(L|@)?"', String, 'string'),
870
872
  (r"(L|@)?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'",
871
873
  String.Char),
872
- (r'"(\\\\|\\"|[^"])*"', String.Double),
873
- (r"'(\\\\|\\'|[^'])*'", String.Single),
874
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
875
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
874
876
  (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float),
875
877
  (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
876
878
  (r'0x[0-9a-fA-F]+[Ll]?', Number.Hex),
@@ -907,11 +909,11 @@ class ObjectiveJLexer(RegexLexer):
907
909
  r'MIN|MAX|RAND|SQRT|E|LN2|LN10|LOG2E|LOG10E|PI|PI2|PI_2|SQRT1_2|'
908
910
  r'SQRT2)\b', Keyword.Constant),
909
911
 
910
- (r'(Array|Boolean|Date|Error|Function|Math|netscape|'
911
- r'Number|Object|Packages|RegExp|String|sun|decodeURI|'
912
+ (r'(Array|Boolean|Date|Error|Function|Math|'
913
+ r'Number|Object|RegExp|String|decodeURI|'
912
914
  r'decodeURIComponent|encodeURI|encodeURIComponent|'
913
915
  r'Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|'
914
- r'window)\b', Name.Builtin),
916
+ r'window|globalThis|Symbol)\b', Name.Builtin),
915
917
 
916
918
  (r'([$a-zA-Z_]\w*)(' + _ws + r')(?=\()',
917
919
  bygroups(Name.Function, using(this))),
@@ -1015,7 +1017,7 @@ class ObjectiveJLexer(RegexLexer):
1015
1017
  }
1016
1018
 
1017
1019
  def analyse_text(text):
1018
- if re.search('^\s*@import\s+[<"]', text, re.MULTILINE):
1020
+ if re.search(r'^\s*@import\s+[<"]', text, re.MULTILINE):
1019
1021
  # special directive found in most Objective-J files
1020
1022
  return True
1021
1023
  return False
@@ -1035,11 +1037,10 @@ class CoffeeScriptLexer(RegexLexer):
1035
1037
  filenames = ['*.coffee']
1036
1038
  mimetypes = ['text/coffeescript']
1037
1039
 
1038
-
1039
1040
  _operator_re = (
1040
1041
  r'\+\+|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|'
1041
1042
  r'\|\||\\(?=\n)|'
1042
- r'(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&\|\^/])=?')
1043
+ r'(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&|\^/])=?')
1043
1044
 
1044
1045
  flags = re.DOTALL
1045
1046
  tokens = {
@@ -1050,7 +1051,7 @@ class CoffeeScriptLexer(RegexLexer):
1050
1051
  ],
1051
1052
  'multilineregex': [
1052
1053
  (r'[^/#]+', String.Regex),
1053
- (r'///([gim]+\b|\B)', String.Regex, '#pop'),
1054
+ (r'///([gimuys]+\b|\B)', String.Regex, '#pop'),
1054
1055
  (r'#\{', String.Interpol, 'interpoling_string'),
1055
1056
  (r'[/#]', String.Regex),
1056
1057
  ],
@@ -1058,16 +1059,16 @@ class CoffeeScriptLexer(RegexLexer):
1058
1059
  include('commentsandwhitespace'),
1059
1060
  (r'///', String.Regex, ('#pop', 'multilineregex')),
1060
1061
  (r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
1061
- r'([gim]+\b|\B)', String.Regex, '#pop'),
1062
+ r'([gimuys]+\b|\B)', String.Regex, '#pop'),
1062
1063
  # This isn't really guarding against mishighlighting well-formed
1063
1064
  # code, just the ability to infinite-loop between root and
1064
1065
  # slashstartsregex.
1065
- (r'/', Operator),
1066
+ (r'/', Operator, '#pop'),
1066
1067
  default('#pop'),
1067
1068
  ],
1068
1069
  'root': [
1069
1070
  include('commentsandwhitespace'),
1070
- (r'^(?=\s|/)', Text, 'slashstartsregex'),
1071
+ (r'\A(?=\s|/)', Text, 'slashstartsregex'),
1071
1072
  (_operator_re, Operator, 'slashstartsregex'),
1072
1073
  (r'(?:\([^()]*\))?\s*[=-]>', Name.Function, 'slashstartsregex'),
1073
1074
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
@@ -1080,10 +1081,10 @@ class CoffeeScriptLexer(RegexLexer):
1080
1081
  (r'(?<![.$])(true|false|yes|no|on|off|null|'
1081
1082
  r'NaN|Infinity|undefined)\b',
1082
1083
  Keyword.Constant),
1083
- (r'(Array|Boolean|Date|Error|Function|Math|netscape|'
1084
- r'Number|Object|Packages|RegExp|String|sun|decodeURI|'
1084
+ (r'(Array|Boolean|Date|Error|Function|Math|'
1085
+ r'Number|Object|RegExp|String|decodeURI|'
1085
1086
  r'decodeURIComponent|encodeURI|encodeURIComponent|'
1086
- r'eval|isFinite|isNaN|parseFloat|parseInt|document|window)\b',
1087
+ r'eval|isFinite|isNaN|parseFloat|parseInt|document|window|globalThis|Symbol)\b',
1087
1088
  Name.Builtin),
1088
1089
  (r'[$a-zA-Z_][\w.:$]*\s*[:=]\s', Name.Variable,
1089
1090
  'slashstartsregex'),
@@ -1137,7 +1138,7 @@ class CoffeeScriptLexer(RegexLexer):
1137
1138
 
1138
1139
  class MaskLexer(RegexLexer):
1139
1140
  """
1140
- For `Mask <http://github.com/atmajs/MaskJS>`__ markup.
1141
+ For `Mask <https://github.com/atmajs/MaskJS>`__ markup.
1141
1142
 
1142
1143
  .. versionadded:: 2.0
1143
1144
  """
@@ -1459,21 +1460,24 @@ class EarlGreyLexer(RegexLexer):
1459
1460
  (r'8r[0-7]+', Number.Oct),
1460
1461
  (r'2r[01]+', Number.Bin),
1461
1462
  (r'16r[a-fA-F0-9]+', Number.Hex),
1462
- (r'([3-79]|[12][0-9]|3[0-6])r[a-zA-Z\d]+(\.[a-zA-Z\d]+)?', Number.Radix),
1463
+ (r'([3-79]|[12][0-9]|3[0-6])r[a-zA-Z\d]+(\.[a-zA-Z\d]+)?',
1464
+ Number.Radix),
1463
1465
  (r'\d+', Number.Integer)
1464
1466
  ],
1465
1467
  }
1466
1468
 
1469
+
1467
1470
  class JuttleLexer(RegexLexer):
1468
1471
  """
1469
1472
  For `Juttle`_ source code.
1470
1473
 
1471
1474
  .. _Juttle: https://github.com/juttle/juttle
1472
1475
 
1476
+ .. versionadded:: 2.2
1473
1477
  """
1474
1478
 
1475
1479
  name = 'Juttle'
1476
- aliases = ['juttle', 'juttle']
1480
+ aliases = ['juttle']
1477
1481
  filenames = ['*.juttle']
1478
1482
  mimetypes = ['application/juttle', 'application/x-juttle',
1479
1483
  'text/x-juttle', 'text/juttle']
@@ -1489,7 +1493,7 @@ class JuttleLexer(RegexLexer):
1489
1493
  'slashstartsregex': [
1490
1494
  include('commentsandwhitespace'),
1491
1495
  (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
1492
- r'([gim]+\b|\B)', String.Regex, '#pop'),
1496
+ r'([gimuys]+\b|\B)', String.Regex, '#pop'),
1493
1497
  (r'(?=/)', Text, ('#pop', 'badregex')),
1494
1498
  default('#pop')
1495
1499
  ],
@@ -1500,26 +1504,33 @@ class JuttleLexer(RegexLexer):
1500
1504
  (r'^(?=\s|/)', Text, 'slashstartsregex'),
1501
1505
  include('commentsandwhitespace'),
1502
1506
  (r':\d{2}:\d{2}:\d{2}(\.\d*)?:', String.Moment),
1503
- (r':(now|beginning|end|forever|yesterday|today|tomorrow|(\d+(\.\d*)?|\.\d+)(ms|[smhdwMy])?):', String.Moment),
1504
- (r':\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d*)?)?(Z|[+-]\d{2}:\d{2}|[+-]\d{4})?:', String.Moment),
1505
- (r':((\d+(\.\d*)?|\.\d+)[ ]+)?(millisecond|second|minute|hour|day|week|month|year)[s]?'
1506
- r'(([ ]+and[ ]+(\d+[ ]+)?(millisecond|second|minute|hour|day|week|month|year)[s]?)'
1507
+ (r':(now|beginning|end|forever|yesterday|today|tomorrow|'
1508
+ r'(\d+(\.\d*)?|\.\d+)(ms|[smhdwMy])?):', String.Moment),
1509
+ (r':\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d*)?)?'
1510
+ r'(Z|[+-]\d{2}:\d{2}|[+-]\d{4})?:', String.Moment),
1511
+ (r':((\d+(\.\d*)?|\.\d+)[ ]+)?(millisecond|second|minute|hour|'
1512
+ r'day|week|month|year)[s]?'
1513
+ r'(([ ]+and[ ]+(\d+[ ]+)?(millisecond|second|minute|hour|'
1514
+ r'day|week|month|year)[s]?)'
1507
1515
  r'|[ ]+(ago|from[ ]+now))*:', String.Moment),
1508
1516
  (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
1509
1517
  r'(==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
1510
1518
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
1511
1519
  (r'[})\].]', Punctuation),
1512
1520
  (r'(import|return|continue|if|else)\b', Keyword, 'slashstartsregex'),
1513
- (r'(var|const|function|reducer|sub|input)\b', Keyword.Declaration, 'slashstartsregex'),
1521
+ (r'(var|const|function|reducer|sub|input)\b', Keyword.Declaration,
1522
+ 'slashstartsregex'),
1514
1523
  (r'(batch|emit|filter|head|join|keep|pace|pass|put|read|reduce|remove|'
1515
- r'sequence|skip|sort|split|tail|unbatch|uniq|view|write)\b', Keyword.Reserved),
1524
+ r'sequence|skip|sort|split|tail|unbatch|uniq|view|write)\b',
1525
+ Keyword.Reserved),
1516
1526
  (r'(true|false|null|Infinity)\b', Keyword.Constant),
1517
- (r'(Array|Date|Juttle|Math|Number|Object|RegExp|String)\b', Name.Builtin),
1527
+ (r'(Array|Date|Juttle|Math|Number|Object|RegExp|String)\b',
1528
+ Name.Builtin),
1518
1529
  (JS_IDENT, Name.Other),
1519
1530
  (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
1520
1531
  (r'[0-9]+', Number.Integer),
1521
- (r'"(\\\\|\\"|[^"])*"', String.Double),
1522
- (r"'(\\\\|\\'|[^'])*'", String.Single)
1532
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
1533
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
1523
1534
  ]
1524
1535
 
1525
1536
  }