pygments.rb 2.0.0.rc3 → 2.3.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 (286) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +13 -1
  3. data/.gitignore +0 -1
  4. data/.rubocop.yml +16 -0
  5. data/CHANGELOG.adoc +19 -0
  6. data/README.adoc +1 -3
  7. data/Rakefile +0 -14
  8. data/bench.rb +11 -6
  9. data/lib/pygments/lexer.rb +84 -62
  10. data/lib/pygments/mentos.py +7 -49
  11. data/lib/pygments/popen.rb +133 -173
  12. data/lib/pygments/version.rb +1 -1
  13. data/lib/pygments.rb +15 -6
  14. data/pygments.rb.gemspec +16 -11
  15. data/test/test_pygments.rb +19 -40
  16. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/AUTHORS +13 -1
  17. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/INSTALLER +0 -0
  18. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/LICENSE +1 -1
  19. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/METADATA +8 -9
  20. data/vendor/pygments-main/Pygments-2.10.0.dist-info/RECORD +524 -0
  21. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/REQUESTED +0 -0
  22. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/WHEEL +0 -0
  23. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/entry_points.txt +0 -0
  24. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/top_level.txt +0 -0
  25. data/vendor/pygments-main/bin/pygmentize +1 -1
  26. data/vendor/pygments-main/pygments/__init__.py +2 -3
  27. data/vendor/pygments-main/pygments/__main__.py +1 -2
  28. data/vendor/pygments-main/pygments/cmdline.py +179 -159
  29. data/vendor/pygments-main/pygments/console.py +1 -2
  30. data/vendor/pygments-main/pygments/filter.py +1 -2
  31. data/vendor/pygments-main/pygments/filters/__init__.py +1 -2
  32. data/vendor/pygments-main/pygments/formatter.py +1 -2
  33. data/vendor/pygments-main/pygments/formatters/__init__.py +2 -3
  34. data/vendor/pygments-main/pygments/formatters/_mapping.py +2 -2
  35. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
  36. data/vendor/pygments-main/pygments/formatters/html.py +53 -25
  37. data/vendor/pygments-main/pygments/formatters/img.py +24 -10
  38. data/vendor/pygments-main/pygments/formatters/irc.py +1 -2
  39. data/vendor/pygments-main/pygments/formatters/latex.py +8 -9
  40. data/vendor/pygments-main/pygments/formatters/other.py +7 -10
  41. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +83 -0
  42. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -2
  43. data/vendor/pygments-main/pygments/formatters/svg.py +5 -4
  44. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -2
  45. data/vendor/pygments-main/pygments/formatters/terminal256.py +24 -3
  46. data/vendor/pygments-main/pygments/lexer.py +7 -6
  47. data/vendor/pygments-main/pygments/lexers/__init__.py +2 -3
  48. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -2
  49. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -2
  50. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +16 -12
  51. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +56 -16
  52. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +401 -0
  53. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
  54. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -2
  55. data/vendor/pygments-main/pygments/lexers/_mapping.py +73 -54
  56. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -2
  57. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +2 -3
  58. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
  59. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +1 -2
  60. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -2
  61. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -2
  62. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -2
  63. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -2
  64. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +91 -55
  65. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
  66. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -2
  67. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -2
  68. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
  69. data/vendor/pygments-main/pygments/lexers/actionscript.py +9 -10
  70. data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
  71. data/vendor/pygments-main/pygments/lexers/algebra.py +1 -2
  72. data/vendor/pygments-main/pygments/lexers/ambient.py +3 -4
  73. data/vendor/pygments-main/pygments/lexers/amdgpu.py +53 -0
  74. data/vendor/pygments-main/pygments/lexers/ampl.py +1 -2
  75. data/vendor/pygments-main/pygments/lexers/apdlexer.py +448 -0
  76. data/vendor/pygments-main/pygments/lexers/apl.py +7 -5
  77. data/vendor/pygments-main/pygments/lexers/archetype.py +2 -3
  78. data/vendor/pygments-main/pygments/lexers/arrow.py +1 -2
  79. data/vendor/pygments-main/pygments/lexers/asc.py +51 -0
  80. data/vendor/pygments-main/pygments/lexers/asm.py +87 -60
  81. data/vendor/pygments-main/pygments/lexers/automation.py +8 -3
  82. data/vendor/pygments-main/pygments/lexers/bare.py +1 -2
  83. data/vendor/pygments-main/pygments/lexers/basic.py +3 -4
  84. data/vendor/pygments-main/pygments/lexers/bibtex.py +3 -4
  85. data/vendor/pygments-main/pygments/lexers/boa.py +4 -5
  86. data/vendor/pygments-main/pygments/lexers/business.py +3 -4
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +61 -36
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +103 -5
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +1 -2
  90. data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
  91. data/vendor/pygments-main/pygments/lexers/chapel.py +52 -29
  92. data/vendor/pygments-main/pygments/lexers/clean.py +7 -8
  93. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
  94. data/vendor/pygments-main/pygments/lexers/configs.py +139 -48
  95. data/vendor/pygments-main/pygments/lexers/console.py +1 -2
  96. data/vendor/pygments-main/pygments/lexers/crystal.py +53 -79
  97. data/vendor/pygments-main/pygments/lexers/csound.py +3 -4
  98. data/vendor/pygments-main/pygments/lexers/css.py +11 -8
  99. data/vendor/pygments-main/pygments/lexers/d.py +3 -4
  100. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
  101. data/vendor/pygments-main/pygments/lexers/data.py +2 -3
  102. data/vendor/pygments-main/pygments/lexers/devicetree.py +2 -3
  103. data/vendor/pygments-main/pygments/lexers/diff.py +1 -2
  104. data/vendor/pygments-main/pygments/lexers/dotnet.py +7 -8
  105. data/vendor/pygments-main/pygments/lexers/dsls.py +3 -4
  106. data/vendor/pygments-main/pygments/lexers/dylan.py +1 -2
  107. data/vendor/pygments-main/pygments/lexers/ecl.py +4 -6
  108. data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
  109. data/vendor/pygments-main/pygments/lexers/elm.py +1 -2
  110. data/vendor/pygments-main/pygments/lexers/email.py +1 -2
  111. data/vendor/pygments-main/pygments/lexers/erlang.py +2 -3
  112. data/vendor/pygments-main/pygments/lexers/esoteric.py +1 -2
  113. data/vendor/pygments-main/pygments/lexers/ezhil.py +1 -2
  114. data/vendor/pygments-main/pygments/lexers/factor.py +3 -4
  115. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -2
  116. data/vendor/pygments-main/pygments/lexers/felix.py +1 -2
  117. data/vendor/pygments-main/pygments/lexers/floscript.py +2 -3
  118. data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
  119. data/vendor/pygments-main/pygments/lexers/fortran.py +9 -7
  120. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -2
  121. data/vendor/pygments-main/pygments/lexers/freefem.py +1 -2
  122. data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
  123. data/vendor/pygments-main/pygments/lexers/futhark.py +111 -0
  124. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +36 -0
  125. data/vendor/pygments-main/pygments/lexers/gdscript.py +1 -2
  126. data/vendor/pygments-main/pygments/lexers/go.py +3 -4
  127. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +1 -2
  128. data/vendor/pygments-main/pygments/lexers/graph.py +1 -2
  129. data/vendor/pygments-main/pygments/lexers/graphics.py +4 -5
  130. data/vendor/pygments-main/pygments/lexers/graphviz.py +58 -0
  131. data/vendor/pygments-main/pygments/lexers/gsql.py +92 -0
  132. data/vendor/pygments-main/pygments/lexers/haskell.py +5 -6
  133. data/vendor/pygments-main/pygments/lexers/haxe.py +4 -5
  134. data/vendor/pygments-main/pygments/lexers/hdl.py +2 -6
  135. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
  136. data/vendor/pygments-main/pygments/lexers/html.py +7 -8
  137. data/vendor/pygments-main/pygments/lexers/idl.py +1 -2
  138. data/vendor/pygments-main/pygments/lexers/igor.py +1 -2
  139. data/vendor/pygments-main/pygments/lexers/inferno.py +1 -2
  140. data/vendor/pygments-main/pygments/lexers/installers.py +3 -4
  141. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -2
  142. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
  143. data/vendor/pygments-main/pygments/lexers/j.py +2 -3
  144. data/vendor/pygments-main/pygments/lexers/javascript.py +170 -156
  145. data/vendor/pygments-main/pygments/lexers/jslt.py +94 -0
  146. data/vendor/pygments-main/pygments/lexers/julia.py +136 -185
  147. data/vendor/pygments-main/pygments/lexers/jvm.py +433 -307
  148. data/vendor/pygments-main/pygments/lexers/kuin.py +299 -0
  149. data/vendor/pygments-main/pygments/lexers/lisp.py +25 -23
  150. data/vendor/pygments-main/pygments/lexers/make.py +3 -4
  151. data/vendor/pygments-main/pygments/lexers/markup.py +13 -16
  152. data/vendor/pygments-main/pygments/lexers/math.py +1 -2
  153. data/vendor/pygments-main/pygments/lexers/matlab.py +2666 -93
  154. data/vendor/pygments-main/pygments/lexers/meson.py +155 -0
  155. data/vendor/pygments-main/pygments/lexers/mime.py +7 -23
  156. data/vendor/pygments-main/pygments/lexers/ml.py +8 -9
  157. data/vendor/pygments-main/pygments/lexers/modeling.py +1 -2
  158. data/vendor/pygments-main/pygments/lexers/modula2.py +3 -4
  159. data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
  160. data/vendor/pygments-main/pygments/lexers/mosel.py +1 -2
  161. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
  162. data/vendor/pygments-main/pygments/lexers/nimrod.py +2 -3
  163. data/vendor/pygments-main/pygments/lexers/nit.py +1 -2
  164. data/vendor/pygments-main/pygments/lexers/nix.py +1 -2
  165. data/vendor/pygments-main/pygments/lexers/oberon.py +1 -2
  166. data/vendor/pygments-main/pygments/lexers/objective.py +6 -7
  167. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -2
  168. data/vendor/pygments-main/pygments/lexers/other.py +1 -2
  169. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -2
  170. data/vendor/pygments-main/pygments/lexers/parsers.py +26 -27
  171. data/vendor/pygments-main/pygments/lexers/pascal.py +1 -2
  172. data/vendor/pygments-main/pygments/lexers/pawn.py +2 -5
  173. data/vendor/pygments-main/pygments/lexers/perl.py +1 -2
  174. data/vendor/pygments-main/pygments/lexers/php.py +3 -4
  175. data/vendor/pygments-main/pygments/lexers/pointless.py +1 -2
  176. data/vendor/pygments-main/pygments/lexers/pony.py +1 -2
  177. data/vendor/pygments-main/pygments/lexers/praat.py +1 -2
  178. data/vendor/pygments-main/pygments/lexers/procfile.py +43 -0
  179. data/vendor/pygments-main/pygments/lexers/prolog.py +3 -4
  180. data/vendor/pygments-main/pygments/lexers/promql.py +2 -3
  181. data/vendor/pygments-main/pygments/lexers/python.py +38 -17
  182. data/vendor/pygments-main/pygments/lexers/qvt.py +1 -2
  183. data/vendor/pygments-main/pygments/lexers/r.py +1 -2
  184. data/vendor/pygments-main/pygments/lexers/rdf.py +1 -2
  185. data/vendor/pygments-main/pygments/lexers/rebol.py +1 -2
  186. data/vendor/pygments-main/pygments/lexers/resource.py +2 -3
  187. data/vendor/pygments-main/pygments/lexers/ride.py +1 -2
  188. data/vendor/pygments-main/pygments/lexers/rnc.py +2 -3
  189. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
  190. data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -2
  191. data/vendor/pygments-main/pygments/lexers/ruby.py +31 -25
  192. data/vendor/pygments-main/pygments/lexers/rust.py +10 -12
  193. data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
  194. data/vendor/pygments-main/pygments/lexers/scdoc.py +1 -2
  195. data/vendor/pygments-main/pygments/lexers/scripting.py +12 -13
  196. data/vendor/pygments-main/pygments/lexers/sgf.py +1 -2
  197. data/vendor/pygments-main/pygments/lexers/shell.py +15 -17
  198. data/vendor/pygments-main/pygments/lexers/sieve.py +1 -2
  199. data/vendor/pygments-main/pygments/lexers/slash.py +1 -2
  200. data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -2
  201. data/vendor/pygments-main/pygments/lexers/smithy.py +79 -0
  202. data/vendor/pygments-main/pygments/lexers/smv.py +2 -3
  203. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
  204. data/vendor/pygments-main/pygments/lexers/solidity.py +1 -2
  205. data/vendor/pygments-main/pygments/lexers/special.py +44 -30
  206. data/vendor/pygments-main/pygments/lexers/sql.py +8 -13
  207. data/vendor/pygments-main/pygments/lexers/stata.py +1 -2
  208. data/vendor/pygments-main/pygments/lexers/supercollider.py +4 -5
  209. data/vendor/pygments-main/pygments/lexers/tcl.py +4 -5
  210. data/vendor/pygments-main/pygments/lexers/teal.py +88 -0
  211. data/vendor/pygments-main/pygments/lexers/templates.py +34 -35
  212. data/vendor/pygments-main/pygments/lexers/teraterm.py +2 -3
  213. data/vendor/pygments-main/pygments/lexers/testing.py +2 -3
  214. data/vendor/pygments-main/pygments/lexers/text.py +1 -2
  215. data/vendor/pygments-main/pygments/lexers/textedit.py +3 -4
  216. data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -2
  217. data/vendor/pygments-main/pygments/lexers/theorem.py +11 -7
  218. data/vendor/pygments-main/pygments/lexers/thingsdb.py +118 -0
  219. data/vendor/pygments-main/pygments/lexers/tnt.py +26 -17
  220. data/vendor/pygments-main/pygments/lexers/trafficscript.py +2 -3
  221. data/vendor/pygments-main/pygments/lexers/typoscript.py +1 -2
  222. data/vendor/pygments-main/pygments/lexers/unicon.py +1 -2
  223. data/vendor/pygments-main/pygments/lexers/urbi.py +3 -4
  224. data/vendor/pygments-main/pygments/lexers/usd.py +1 -2
  225. data/vendor/pygments-main/pygments/lexers/varnish.py +2 -3
  226. data/vendor/pygments-main/pygments/lexers/verification.py +1 -2
  227. data/vendor/pygments-main/pygments/lexers/web.py +1 -2
  228. data/vendor/pygments-main/pygments/lexers/webassembly.py +120 -0
  229. data/vendor/pygments-main/pygments/lexers/webidl.py +1 -2
  230. data/vendor/pygments-main/pygments/lexers/webmisc.py +5 -5
  231. data/vendor/pygments-main/pygments/lexers/whiley.py +1 -2
  232. data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
  233. data/vendor/pygments-main/pygments/lexers/xorg.py +1 -2
  234. data/vendor/pygments-main/pygments/lexers/yang.py +1 -2
  235. data/vendor/pygments-main/pygments/lexers/zig.py +1 -2
  236. data/vendor/pygments-main/pygments/modeline.py +1 -2
  237. data/vendor/pygments-main/pygments/plugin.py +2 -3
  238. data/vendor/pygments-main/pygments/regexopt.py +2 -3
  239. data/vendor/pygments-main/pygments/scanner.py +1 -2
  240. data/vendor/pygments-main/pygments/sphinxext.py +1 -2
  241. data/vendor/pygments-main/pygments/style.py +4 -5
  242. data/vendor/pygments-main/pygments/styles/__init__.py +5 -2
  243. data/vendor/pygments-main/pygments/styles/abap.py +1 -2
  244. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  245. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  246. data/vendor/pygments-main/pygments/styles/arduino.py +1 -2
  247. data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
  248. data/vendor/pygments-main/pygments/styles/borland.py +1 -2
  249. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  250. data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
  251. data/vendor/pygments-main/pygments/styles/default.py +1 -2
  252. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  253. data/vendor/pygments-main/pygments/styles/friendly.py +2 -2
  254. data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
  255. data/vendor/pygments-main/pygments/styles/gruvbox.py +107 -0
  256. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  257. data/vendor/pygments-main/pygments/styles/inkpot.py +1 -2
  258. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
  259. data/vendor/pygments-main/pygments/styles/manni.py +1 -2
  260. data/vendor/pygments-main/pygments/styles/material.py +118 -0
  261. data/vendor/pygments-main/pygments/styles/monokai.py +1 -2
  262. data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
  263. data/vendor/pygments-main/pygments/styles/native.py +2 -2
  264. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
  265. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
  266. data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
  267. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  268. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
  269. data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
  270. data/vendor/pygments-main/pygments/styles/sas.py +1 -2
  271. data/vendor/pygments-main/pygments/styles/solarized.py +4 -2
  272. data/vendor/pygments-main/pygments/styles/stata_dark.py +1 -2
  273. data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
  274. data/vendor/pygments-main/pygments/styles/tango.py +1 -2
  275. data/vendor/pygments-main/pygments/styles/trac.py +1 -2
  276. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  277. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  278. data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
  279. data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
  280. data/vendor/pygments-main/pygments/token.py +1 -2
  281. data/vendor/pygments-main/pygments/unistring.py +1 -2
  282. data/vendor/pygments-main/pygments/util.py +2 -5
  283. metadata +48 -23
  284. data/cache-lexers.rb +0 -9
  285. data/lexers +0 -0
  286. data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +0 -482
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.stata
4
3
  ~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for Stata
7
6
 
8
- :copyright: Copyright 2006-2020 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.supercollider
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for SuperCollider
7
6
 
8
- :copyright: Copyright 2006-2020 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
 
@@ -26,7 +25,7 @@ class SuperColliderLexer(RegexLexer):
26
25
  """
27
26
 
28
27
  name = 'SuperCollider'
29
- aliases = ['sc', 'supercollider']
28
+ aliases = ['supercollider', 'sc']
30
29
  filenames = ['*.sc', '*.scd']
31
30
  mimetypes = ['application/supercollider', 'text/supercollider', ]
32
31
 
@@ -84,8 +83,8 @@ class SuperColliderLexer(RegexLexer):
84
83
  (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
85
84
  (r'0x[0-9a-fA-F]+', Number.Hex),
86
85
  (r'[0-9]+', Number.Integer),
87
- (r'"(\\\\|\\"|[^"])*"', String.Double),
88
- (r"'(\\\\|\\'|[^'])*'", String.Single),
86
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
87
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
89
88
  ]
90
89
  }
91
90
 
@@ -1,17 +1,16 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.tcl
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Tcl and related languages.
7
6
 
8
- :copyright: Copyright 2006-2020 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
 
12
11
  from pygments.lexer import RegexLexer, include, words
13
12
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
14
- Number
13
+ Number, Whitespace
15
14
  from pygments.util import shebang_matches
16
15
 
17
16
  __all__ = ['TclLexer']
@@ -80,13 +79,13 @@ class TclLexer(RegexLexer):
80
79
  (r'!=|==|<<|>>|<=|>=|&&|\|\||\*\*|[-+~!*/%<>&^|?:]', Operator),
81
80
  ],
82
81
  'data': [
83
- (r'\s+', Text),
82
+ (r'\s+', Whitespace),
84
83
  (r'0x[a-fA-F0-9]+', Number.Hex),
85
84
  (r'0[0-7]+', Number.Oct),
86
85
  (r'\d+\.\d+', Number.Float),
87
86
  (r'\d+', Number.Integer),
88
87
  (r'\$([\w.:-]+)', Name.Variable),
89
- (r'([\w.:-]+)', Text),
88
+ (r'([\w.,@:-]+)', Text),
90
89
  ],
91
90
  'params': [
92
91
  (r';', Keyword, '#pop'),
@@ -0,0 +1,88 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.teal
4
+ ~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexer for TEAL.
7
+
8
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ from pygments.lexer import RegexLexer, bygroups, include, words
13
+ from pygments.token import Comment, Name, Number, String, Text, Keyword
14
+
15
+ __all__ = ['TealLexer']
16
+
17
+ class TealLexer(RegexLexer):
18
+ """
19
+ For the `Transaction Execution Approval Language (TEAL)
20
+ <https://developer.algorand.org/docs/reference/teal/specification/>`
21
+
22
+ For more information about the grammar, see:
23
+ https://github.com/algorand/go-algorand/blob/master/data/transactions/logic/assembler.go
24
+
25
+ .. versionadded:: 2.9
26
+ """
27
+ name = 'teal'
28
+ aliases = ['teal']
29
+ filenames = ['*.teal']
30
+
31
+ keywords = words({
32
+ 'Sender', 'Fee', 'FirstValid', 'FirstValidTime', 'LastValid', 'Note',
33
+ 'Lease', 'Receiver', 'Amount', 'CloseRemainderTo', 'VotePK',
34
+ 'SelectionPK', 'VoteFirst', 'VoteLast', 'VoteKeyDilution', 'Type',
35
+ 'TypeEnum', 'XferAsset', 'AssetAmount', 'AssetSender', 'AssetReceiver',
36
+ 'AssetCloseTo', 'GroupIndex', 'TxID', 'ApplicationID', 'OnCompletion',
37
+ 'ApplicationArgs', 'NumAppArgs', 'Accounts', 'NumAccounts',
38
+ 'ApprovalProgram', 'ClearStateProgram', 'RekeyTo', 'ConfigAsset',
39
+ 'ConfigAssetTotal', 'ConfigAssetDecimals', 'ConfigAssetDefaultFrozen',
40
+ 'ConfigAssetUnitName', 'ConfigAssetName', 'ConfigAssetURL',
41
+ 'ConfigAssetMetadataHash', 'ConfigAssetManager', 'ConfigAssetReserve',
42
+ 'ConfigAssetFreeze', 'ConfigAssetClawback', 'FreezeAsset',
43
+ 'FreezeAssetAccount', 'FreezeAssetFrozen',
44
+ 'NoOp', 'OptIn', 'CloseOut', 'ClearState', 'UpdateApplication',
45
+ 'DeleteApplication',
46
+ 'MinTxnFee', 'MinBalance', 'MaxTxnLife', 'ZeroAddress', 'GroupSize',
47
+ 'LogicSigVersion', 'Round', 'LatestTimestamp', 'CurrentApplicationID',
48
+ 'AssetBalance', 'AssetFrozen',
49
+ 'AssetTotal', 'AssetDecimals', 'AssetDefaultFrozen', 'AssetUnitName',
50
+ 'AssetName', 'AssetURL', 'AssetMetadataHash', 'AssetManager',
51
+ 'AssetReserve', 'AssetFreeze', 'AssetClawback',
52
+ }, suffix = r'\b')
53
+
54
+ identifier = r'[^ \t\n]+(?=\/\/)|[^ \t\n]+'
55
+ newline = r'\r?\n'
56
+ tokens = {
57
+ 'root': [
58
+ include('whitespace'),
59
+ # pragmas match specifically on the space character
60
+ (r'^#pragma .*' + newline, Comment.Directive),
61
+ # labels must be followed by a space,
62
+ # but anything after that is ignored
63
+ ('(' + identifier + ':' + ')' + '([ \t].*)',
64
+ bygroups(Name.Label, Comment.Single)),
65
+ (identifier, Name.Function, 'function-args'),
66
+ ],
67
+ 'function-args': [
68
+ include('whitespace'),
69
+ (r'"', String, 'string'),
70
+ (r'(b(?:ase)?(?:32|64) ?)(\(?[a-zA-Z0-9+/=]+\)?)',
71
+ bygroups(String.Affix, String.Other)),
72
+ (r'[A-Z2-7]{58}', Number), # address
73
+ (r'0x[\da-fA-F]+', Number.Hex),
74
+ (r'\d+', Number.Integer),
75
+ (keywords, Keyword),
76
+ (identifier, Name.Attributes), # branch targets
77
+ (newline, Text, '#pop'),
78
+ ],
79
+ 'string': [
80
+ (r'\\(?:["nrt\\]|x\d\d)', String.Escape),
81
+ (r'[^\\\"\n]+', String),
82
+ (r'"', String, '#pop'),
83
+ ],
84
+ 'whitespace': [
85
+ (r'[ \t]+', Text),
86
+ (r'//[^\n]+', Comment.Single),
87
+ ],
88
+ }
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.templates
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for various template engines' markup.
7
6
 
8
- :copyright: Copyright 2006-2020 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
 
@@ -179,8 +178,8 @@ class SmartyLexer(RegexLexer):
179
178
  (r'(true|false|null)\b', Keyword.Constant),
180
179
  (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
181
180
  r"0[xX][0-9a-fA-F]+[Ll]?", Number),
182
- (r'"(\\\\|\\"|[^"])*"', String.Double),
183
- (r"'(\\\\|\\'|[^'])*'", String.Single),
181
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
182
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
184
183
  (r'[a-zA-Z_]\w*', Name.Attribute)
185
184
  ]
186
185
  }
@@ -252,8 +251,8 @@ class VelocityLexer(RegexLexer):
252
251
  (r'\$!?\{?', Punctuation, 'variable'),
253
252
  (r'\s+', Text),
254
253
  (r'[,:]', Punctuation),
255
- (r'"(\\\\|\\"|[^"])*"', String.Double),
256
- (r"'(\\\\|\\'|[^'])*'", String.Single),
254
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
255
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
257
256
  (r"0[xX][0-9a-fA-F]+[Ll]?", Number),
258
257
  (r"\b[0-9]+\b", Number),
259
258
  (r'(true|false|null)\b', Keyword.Constant),
@@ -268,11 +267,11 @@ class VelocityLexer(RegexLexer):
268
267
 
269
268
  def analyse_text(text):
270
269
  rv = 0.0
271
- if re.search(r'#\{?macro\}?\(.*?\).*?#\{?end\}?', text):
270
+ if re.search(r'#\{?macro\}?\(.*?\).*?#\{?end\}?', text, re.DOTALL):
272
271
  rv += 0.25
273
- if re.search(r'#\{?if\}?\(.+?\).*?#\{?end\}?', text):
272
+ if re.search(r'#\{?if\}?\(.+?\).*?#\{?end\}?', text, re.DOTALL):
274
273
  rv += 0.15
275
- if re.search(r'#\{?foreach\}?\(.+?\).*?#\{?end\}?', text):
274
+ if re.search(r'#\{?foreach\}?\(.+?\).*?#\{?end\}?', text, re.DOTALL):
276
275
  rv += 0.15
277
276
  if re.search(r'\$!?\{?[a-zA-Z_]\w*(\([^)]*\))?'
278
277
  r'(\.\w+(\([^)]*\))?)*\}?', text):
@@ -371,8 +370,8 @@ class DjangoLexer(RegexLexer):
371
370
  (r'(loop|block|super|forloop)\b', Name.Builtin),
372
371
  (r'[a-zA-Z_][\w-]*', Name.Variable),
373
372
  (r'\.\w+', Name.Variable),
374
- (r':?"(\\\\|\\"|[^"])*"', String.Double),
375
- (r":?'(\\\\|\\'|[^'])*'", String.Single),
373
+ (r':?"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
374
+ (r":?'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
376
375
  (r'([{}()\[\]+\-*/%,:~]|[><=]=?|!=)', Operator),
377
376
  (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
378
377
  r"0[xX][0-9a-fA-F]+[Ll]?", Number),
@@ -490,7 +489,7 @@ class MyghtyJavascriptLexer(DelegatingLexer):
490
489
  """
491
490
 
492
491
  name = 'JavaScript+Myghty'
493
- aliases = ['js+myghty', 'javascript+myghty']
492
+ aliases = ['javascript+myghty', 'js+myghty']
494
493
  mimetypes = ['application/x-javascript+myghty',
495
494
  'text/x-javascript+myghty',
496
495
  'text/javascript+mygthy']
@@ -589,12 +588,12 @@ class MakoLexer(RegexLexer):
589
588
  tokens = {
590
589
  'root': [
591
590
  (r'(\s*)(%)(\s*end(?:\w+))(\n|\Z)',
592
- bygroups(Text, Comment.Preproc, Keyword, Other)),
591
+ bygroups(Text.Whitespace, Comment.Preproc, Keyword, Other)),
593
592
  (r'(\s*)(%)([^\n]*)(\n|\Z)',
594
- bygroups(Text, Comment.Preproc, using(PythonLexer), Other)),
593
+ bygroups(Text.Whitespace, Comment.Preproc, using(PythonLexer), Other)),
595
594
  (r'(\s*)(##[^\n]*)(\n|\Z)',
596
- bygroups(Text, Comment.Preproc, Other)),
597
- (r'(?s)<%doc>.*?</%doc>', Comment.Preproc),
595
+ bygroups(Text.Whitespace, Comment.Single, Text.Whitespace)),
596
+ (r'(?s)<%doc>.*?</%doc>', Comment.Multiline),
598
597
  (r'(<%)([\w.:]+)',
599
598
  bygroups(Comment.Preproc, Name.Builtin), 'tag'),
600
599
  (r'(</%)([\w.:]+)(>)',
@@ -680,7 +679,7 @@ class MakoJavascriptLexer(DelegatingLexer):
680
679
  """
681
680
 
682
681
  name = 'JavaScript+Mako'
683
- aliases = ['js+mako', 'javascript+mako']
682
+ aliases = ['javascript+mako', 'js+mako']
684
683
  mimetypes = ['application/x-javascript+mako',
685
684
  'text/x-javascript+mako',
686
685
  'text/javascript+mako']
@@ -799,8 +798,8 @@ class CheetahJavascriptLexer(DelegatingLexer):
799
798
  """
800
799
 
801
800
  name = 'JavaScript+Cheetah'
802
- aliases = ['js+cheetah', 'javascript+cheetah',
803
- 'js+spitfire', 'javascript+spitfire']
801
+ aliases = ['javascript+cheetah', 'js+cheetah',
802
+ 'javascript+spitfire', 'js+spitfire']
804
803
  mimetypes = ['application/x-javascript+cheetah',
805
804
  'text/x-javascript+cheetah',
806
805
  'text/javascript+cheetah',
@@ -1027,7 +1026,7 @@ class XmlErbLexer(DelegatingLexer):
1027
1026
  """
1028
1027
 
1029
1028
  name = 'XML+Ruby'
1030
- aliases = ['xml+erb', 'xml+ruby']
1029
+ aliases = ['xml+ruby', 'xml+erb']
1031
1030
  alias_filenames = ['*.xml']
1032
1031
  mimetypes = ['application/xml+ruby']
1033
1032
 
@@ -1047,7 +1046,7 @@ class CssErbLexer(DelegatingLexer):
1047
1046
  """
1048
1047
 
1049
1048
  name = 'CSS+Ruby'
1050
- aliases = ['css+erb', 'css+ruby']
1049
+ aliases = ['css+ruby', 'css+erb']
1051
1050
  alias_filenames = ['*.css']
1052
1051
  mimetypes = ['text/css+ruby']
1053
1052
 
@@ -1065,7 +1064,7 @@ class JavascriptErbLexer(DelegatingLexer):
1065
1064
  """
1066
1065
 
1067
1066
  name = 'JavaScript+Ruby'
1068
- aliases = ['js+erb', 'javascript+erb', 'js+ruby', 'javascript+ruby']
1067
+ aliases = ['javascript+ruby', 'js+ruby', 'javascript+erb', 'js+erb']
1069
1068
  alias_filenames = ['*.js']
1070
1069
  mimetypes = ['application/x-javascript+ruby',
1071
1070
  'text/x-javascript+ruby',
@@ -1148,7 +1147,7 @@ class JavascriptPhpLexer(DelegatingLexer):
1148
1147
  """
1149
1148
 
1150
1149
  name = 'JavaScript+PHP'
1151
- aliases = ['js+php', 'javascript+php']
1150
+ aliases = ['javascript+php', 'js+php']
1152
1151
  alias_filenames = ['*.js']
1153
1152
  mimetypes = ['application/x-javascript+php',
1154
1153
  'text/x-javascript+php',
@@ -1230,7 +1229,7 @@ class JavascriptSmartyLexer(DelegatingLexer):
1230
1229
  """
1231
1230
 
1232
1231
  name = 'JavaScript+Smarty'
1233
- aliases = ['js+smarty', 'javascript+smarty']
1232
+ aliases = ['javascript+smarty', 'js+smarty']
1234
1233
  alias_filenames = ['*.js', '*.tpl']
1235
1234
  mimetypes = ['application/x-javascript+smarty',
1236
1235
  'text/x-javascript+smarty',
@@ -1312,8 +1311,8 @@ class JavascriptDjangoLexer(DelegatingLexer):
1312
1311
  """
1313
1312
 
1314
1313
  name = 'JavaScript+Django/Jinja'
1315
- aliases = ['js+django', 'javascript+django',
1316
- 'js+jinja', 'javascript+jinja']
1314
+ aliases = ['javascript+django', 'js+django',
1315
+ 'javascript+jinja', 'js+jinja']
1317
1316
  alias_filenames = ['*.js']
1318
1317
  mimetypes = ['application/x-javascript+django',
1319
1318
  'application/x-javascript+jinja',
@@ -1405,7 +1404,7 @@ class EvoqueLexer(RegexLexer):
1405
1404
  # see doc for handling first name arg: /directives/evoque/
1406
1405
  # + minor inconsistency: the "name" in e.g. $overlay{name=site_base}
1407
1406
  # should be using(PythonLexer), not passed out as String
1408
- (r'(\$)(evoque|overlay)(\{(%)?)(\s*[#\w\-"\'.]+[^=,%}]+?)?'
1407
+ (r'(\$)(evoque|overlay)(\{(%)?)(\s*[#\w\-"\'.]+)?'
1409
1408
  r'(.*?)((?(4)%)\})',
1410
1409
  bygroups(Punctuation, Name.Builtin, Punctuation, None,
1411
1410
  String, using(PythonLexer), Punctuation)),
@@ -1735,7 +1734,7 @@ class LassoCssLexer(DelegatingLexer):
1735
1734
 
1736
1735
  def analyse_text(text):
1737
1736
  rv = LassoLexer.analyse_text(text) - 0.05
1738
- if re.search(r'\w+:.+?;', text):
1737
+ if re.search(r'\w+:[^;]+;', text):
1739
1738
  rv += 0.1
1740
1739
  if 'padding:' in text:
1741
1740
  rv += 0.1
@@ -1751,7 +1750,7 @@ class LassoJavascriptLexer(DelegatingLexer):
1751
1750
  """
1752
1751
 
1753
1752
  name = 'JavaScript+Lasso'
1754
- aliases = ['js+lasso', 'javascript+lasso']
1753
+ aliases = ['javascript+lasso', 'js+lasso']
1755
1754
  alias_filenames = ['*.js']
1756
1755
  mimetypes = ['application/x-javascript+lasso',
1757
1756
  'text/x-javascript+lasso',
@@ -1834,8 +1833,8 @@ class HandlebarsLexer(RegexLexer):
1834
1833
  include('variable'),
1835
1834
 
1836
1835
  # borrowed from DjangoLexer
1837
- (r':?"(\\\\|\\"|[^"])*"', String.Double),
1838
- (r":?'(\\\\|\\'|[^'])*'", String.Single),
1836
+ (r':?"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
1837
+ (r":?'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
1839
1838
  (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
1840
1839
  r"0[xX][0-9a-fA-F]+[Ll]?", Number),
1841
1840
  ]
@@ -2147,8 +2146,8 @@ class TwigLexer(RegexLexer):
2147
2146
  (_ident_inner, Name.Variable),
2148
2147
  (r'\.' + _ident_inner, Name.Variable),
2149
2148
  (r'\.[0-9]+', Number),
2150
- (r':?"(\\\\|\\"|[^"])*"', String.Double),
2151
- (r":?'(\\\\|\\'|[^'])*'", String.Single),
2149
+ (r':?"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
2150
+ (r":?'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
2152
2151
  (r'([{}()\[\]+\-*/,:~%]|\.\.|\?|:|\*\*|\/\/|!=|[><=]=?)', Operator),
2153
2152
  (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
2154
2153
  r"0[xX][0-9a-fA-F]+[Ll]?", Number),
@@ -2227,8 +2226,8 @@ class Angular2Lexer(RegexLexer):
2227
2226
 
2228
2227
  # Literals
2229
2228
  (r':?(true|false)', String.Boolean),
2230
- (r':?"(\\\\|\\"|[^"])*"', String.Double),
2231
- (r":?'(\\\\|\\'|[^'])*'", String.Single),
2229
+ (r':?"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
2230
+ (r":?'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
2232
2231
  (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
2233
2232
  r"0[xX][0-9a-fA-F]+[Ll]?", Number),
2234
2233
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.teraterm
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for Tera Term macro files.
7
6
 
8
- :copyright: Copyright 2006-2020 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
 
@@ -25,7 +24,7 @@ class TeraTermLexer(RegexLexer):
25
24
  .. versionadded:: 2.4
26
25
  """
27
26
  name = 'Tera Term macro'
28
- aliases = ['ttl', 'teraterm', 'teratermmacro']
27
+ aliases = ['teratermmacro', 'teraterm', 'ttl']
29
28
  filenames = ['*.ttl']
30
29
  mimetypes = ['text/x-teratermmacro']
31
30
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.testing
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for testing languages.
7
6
 
8
- :copyright: Copyright 2006-2020 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
 
@@ -22,7 +21,7 @@ class GherkinLexer(RegexLexer):
22
21
  .. versionadded:: 1.2
23
22
  """
24
23
  name = 'Gherkin'
25
- aliases = ['cucumber', 'gherkin']
24
+ aliases = ['gherkin', 'cucumber']
26
25
  filenames = ['*.feature']
27
26
  mimetypes = ['text/x-gherkin']
28
27
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.text
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for non-source code file types.
7
6
 
8
- :copyright: Copyright 2006-2020 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.textedit
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for languages related to text processing.
7
6
 
8
- :copyright: Copyright 2006-2020 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
 
@@ -69,8 +68,8 @@ class AwkLexer(RegexLexer):
69
68
  (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
70
69
  (r'0x[0-9a-fA-F]+', Number.Hex),
71
70
  (r'[0-9]+', Number.Integer),
72
- (r'"(\\\\|\\"|[^"])*"', String.Double),
73
- (r"'(\\\\|\\'|[^'])*'", String.Single),
71
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
72
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
74
73
  ]
75
74
  }
76
75
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.textfmts
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for various text formats.
7
6
 
8
- :copyright: Copyright 2006-2020 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.theorem
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for theorem-proving languages.
7
6
 
8
- :copyright: Copyright 2006-2020 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
 
@@ -30,6 +29,8 @@ class CoqLexer(RegexLexer):
30
29
  filenames = ['*.v']
31
30
  mimetypes = ['text/x-coq']
32
31
 
32
+ flags = re.UNICODE
33
+
33
34
  keywords1 = (
34
35
  # Vernacular commands
35
36
  'Section', 'Module', 'End', 'Require', 'Import', 'Export', 'Variable',
@@ -42,6 +43,7 @@ class CoqLexer(RegexLexer):
42
43
  'Canonical', 'Coercion', 'Theorem', 'Lemma', 'Corollary',
43
44
  'Proposition', 'Fact', 'Remark', 'Example', 'Proof', 'Goal', 'Save',
44
45
  'Qed', 'Defined', 'Hint', 'Resolve', 'Rewrite', 'View', 'Search',
46
+ 'Abort', 'Admitted',
45
47
  'Show', 'Print', 'Printing', 'All', 'Graph', 'Projections', 'inside',
46
48
  'outside', 'Check', 'Global', 'Instance', 'Class', 'Existing',
47
49
  'Universe', 'Polymorphic', 'Monomorphic', 'Context'
@@ -54,7 +56,7 @@ class CoqLexer(RegexLexer):
54
56
  )
55
57
  keywords3 = (
56
58
  # Sorts
57
- 'Type', 'Prop',
59
+ 'Type', 'Prop', 'SProp',
58
60
  )
59
61
  keywords4 = (
60
62
  # Tactics
@@ -93,7 +95,8 @@ class CoqLexer(RegexLexer):
93
95
  '<->', '=', '>', '>]', r'>\}', r'\?', r'\?\?', r'\[', r'\[<', r'\[>',
94
96
  r'\[\|', ']', '_', '`', r'\{', r'\{<', r'\|', r'\|]', r'\}', '~', '=>',
95
97
  r'/\\', r'\\/', r'\{\|', r'\|\}',
96
- 'Π', 'λ',
98
+ # 'Π', 'Σ', # Not defined in the standard library
99
+ 'λ', '¬', '∧', '∨', '∀', '∃', '→', '↔', '≠', '≤', '≥',
97
100
  )
98
101
  operators = r'[!$%&*+\./:<=>?@^|~-]'
99
102
  prefix_syms = r'[!?~]'
@@ -123,14 +126,15 @@ class CoqLexer(RegexLexer):
123
126
  (r'0[bB][01][01_]*', Number.Bin),
124
127
  (r'-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)', Number.Float),
125
128
 
126
- (r"'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'",
127
- String.Char),
129
+ (r"'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'", String.Char),
130
+
128
131
  (r"'.'", String.Char),
129
132
  (r"'", Keyword), # a stray quote is another syntax element
130
133
 
131
134
  (r'"', String.Double, 'string'),
132
135
 
133
136
  (r'[~?][a-z][\w\']*:', Name),
137
+ (r'\S', Name.Builtin.Pseudo),
134
138
  ],
135
139
  'comment': [
136
140
  (r'[^(*)]+', Comment),
@@ -154,7 +158,7 @@ class CoqLexer(RegexLexer):
154
158
  }
155
159
 
156
160
  def analyse_text(text):
157
- if 'qed' in text and 'tauto' in text:
161
+ if 'Qed' in text and 'Proof' in text:
158
162
  return 1
159
163
 
160
164