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
@@ -0,0 +1,118 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.thingsdb
4
+ ~~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for the ThingsDB language.
7
+
8
+ :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ import re
13
+ from pygments.lexer import RegexLexer, include, bygroups
14
+ from pygments.token import Comment, Keyword, Name, Number, String, Text, \
15
+ Operator, Punctuation, Whitespace
16
+
17
+ __all__ = ['ThingsDBLexer']
18
+
19
+
20
+ class ThingsDBLexer(RegexLexer):
21
+ """
22
+ Lexer for the ThingsDB programming language.
23
+
24
+ .. versionadded:: 2.9
25
+ """
26
+ name = 'ThingsDB'
27
+ aliases = ['ti', 'thingsdb']
28
+ filenames = ['*.ti']
29
+
30
+ tokens = {
31
+ 'root': [
32
+ include('expression'),
33
+ ],
34
+ 'expression': [
35
+ include('comments'),
36
+ include('whitespace'),
37
+
38
+ # numbers
39
+ (r'[-+]?0b[01]+', Number.Bin),
40
+ (r'[-+]?0o[0-8]+', Number.Oct),
41
+ (r'([-+]?0x[0-9a-fA-F]+)', Number.Hex),
42
+ (r'[-+]?[0-9]+', Number.Integer),
43
+ (r'[-+]?((inf|nan)([^0-9A-Za-z_]|$)|[0-9]*\.[0-9]+(e[+-][0-9]+)?)',
44
+ Number.Float),
45
+
46
+ # strings
47
+ (r'(?:"(?:[^"]*)")+', String.Double),
48
+ (r"(?:'(?:[^']*)')+", String.Single),
49
+
50
+ # literals
51
+ (r'(true|false|nil)\b', Keyword.Constant),
52
+
53
+ # regular expressions
54
+ (r'(/[^/\\]*(?:\\.[^/\\]*)*/i?)', String.Regex),
55
+
56
+ # thing id's
57
+ (r'#[0-9]+', Comment.Preproc),
58
+
59
+ # name, assignments and functions
60
+ include('names'),
61
+
62
+ (r'[(){}\[\],;]', Punctuation),
63
+ (r'[+\-*/%&|<>^!~@=:?]', Operator),
64
+ ],
65
+ 'names': [
66
+ (r'(\.)'
67
+ r'(add|call|contains|del|endswith|extend|filter|find|findindex|'
68
+ r'get|has|id|indexof|keys|len|lower|map|pop|push|remove|set|sort|'
69
+ r'splice|startswith|test|unwrap|upper|values|wrap)'
70
+ r'(\()',
71
+ bygroups(Name.Function, Name.Function, Punctuation), 'arguments'),
72
+ (r'(array|assert|assert_err|auth_err|backup_info|backups_info|'
73
+ r'bad_data_err|bool|closure|collection_info|collections_info|'
74
+ r'counters|deep|del_backup|del_collection|del_expired|del_node|'
75
+ r'del_procedure|del_token|del_type|del_user|err|float|'
76
+ r'forbidden_err|grant|int|isarray|isascii|isbool|isbytes|iserr|'
77
+ r'isfloat|isinf|isint|islist|isnan|isnil|israw|isset|isstr|'
78
+ r'isthing|istuple|isutf8|lookup_err|max_quota_err|mod_type|new|'
79
+ r'new_backup|new_collection|new_node|new_procedure|new_token|'
80
+ r'new_type|new_user|node_err|node_info|nodes_info|now|'
81
+ r'num_arguments_err|operation_err|overflow_err|procedure_doc|'
82
+ r'procedure_info|procedures_info|raise|refs|rename_collection|'
83
+ r'rename_user|reset_counters|return|revoke|run|set_log_level|set|'
84
+ r'set_quota|set_type|shutdown|str|syntax_err|thing|try|type|'
85
+ r'type_err|type_count|type_info|types_info|user_info|users_info|'
86
+ r'value_err|wse|zero_div_err)'
87
+ r'(\()',
88
+ bygroups(Name.Function, Punctuation),
89
+ 'arguments'),
90
+ (r'(\.[A-Za-z_][0-9A-Za-z_]*)'
91
+ r'(\s*)(=)',
92
+ bygroups(Name.Attribute, Text, Operator)),
93
+ (r'\.[A-Za-z_][0-9A-Za-z_]*', Name.Attribute),
94
+ (r'([A-Za-z_][0-9A-Za-z_]*)(\s*)(=)',
95
+ bygroups(Name.Variable, Text, Operator)),
96
+ (r'[A-Za-z_][0-9A-Za-z_]*', Name.Variable),
97
+ ],
98
+ 'whitespace': [
99
+ (r'\n', Whitespace),
100
+ (r'\s+', Whitespace),
101
+ ],
102
+ 'comments': [
103
+ (r'//(.*?)\n', Comment.Single),
104
+ (r'/\*', Comment.Multiline, 'comment'),
105
+ ],
106
+ 'comment': [
107
+ (r'[^*/]+', Comment.Multiline),
108
+ (r'/\*', Comment.Multiline, '#push'),
109
+ (r'\*/', Comment.Multiline, '#pop'),
110
+ (r'[*/]', Comment.Multiline),
111
+ ],
112
+ 'arguments': [
113
+ include('expression'),
114
+ (',', Punctuation),
115
+ (r'\(', Punctuation, '#push'),
116
+ (r'\)', Punctuation, '#pop'),
117
+ ],
118
+ }
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.tnt
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for Typographic Number Theory.
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
 
@@ -13,7 +12,7 @@ import re
13
12
 
14
13
  from pygments.lexer import Lexer
15
14
  from pygments.token import Text, Comment, Operator, Keyword, Name, Number, \
16
- Punctuation, Error
15
+ Punctuation, Error
17
16
 
18
17
  __all__ = ['TNTLexer']
19
18
 
@@ -67,15 +66,16 @@ class TNTLexer(Lexer):
67
66
  end += 1
68
67
  except IndexError:
69
68
  end = len(text)
70
- if required:
71
- assert end != start
69
+ if required and end == start:
70
+ raise AssertionError
72
71
  if end != start:
73
72
  self.cur.append((start, Text, text[start:end]))
74
73
  return end
75
74
 
76
75
  def variable(self, start, text):
77
76
  """Tokenize a variable."""
78
- assert text[start] in self.VARIABLES
77
+ if text[start] not in self.VARIABLES:
78
+ raise AssertionError
79
79
  end = start+1
80
80
  while text[end] in self.PRIMES:
81
81
  end += 1
@@ -98,10 +98,12 @@ class TNTLexer(Lexer):
98
98
  if text[start] == '(': # (...+...)
99
99
  self.cur.append((start, Punctuation, text[start]))
100
100
  start = self.term(start+1, text)
101
- assert text[start] in self.OPERATORS
101
+ if text[start] not in self.OPERATORS:
102
+ raise AssertionError
102
103
  self.cur.append((start, Operator, text[start]))
103
104
  start = self.term(start+1, text)
104
- assert text[start] == ')'
105
+ if text[start] != ')':
106
+ raise AssertionError
105
107
  self.cur.append((start, Punctuation, text[start]))
106
108
  return start+1
107
109
  raise AssertionError # no matches
@@ -117,21 +119,25 @@ class TNTLexer(Lexer):
117
119
  if text[start] in self.QUANTIFIERS: # Aa:<...>
118
120
  self.cur.append((start, Keyword.Declaration, text[start]))
119
121
  start = self.variable(start+1, text)
120
- assert text[start] == ':'
122
+ if text[start] != ':':
123
+ raise AssertionError
121
124
  self.cur.append((start, Punctuation, text[start]))
122
125
  return self.formula(start+1, text)
123
126
  if text[start] == '<': # <...&...>
124
127
  self.cur.append((start, Punctuation, text[start]))
125
128
  start = self.formula(start+1, text)
126
- assert text[start] in self.LOGIC
129
+ if text[start] not in self.LOGIC:
130
+ raise AssertionError
127
131
  self.cur.append((start, Operator, text[start]))
128
132
  start = self.formula(start+1, text)
129
- assert text[start] == '>'
133
+ if text[start] != '>':
134
+ raise AssertionError
130
135
  self.cur.append((start, Punctuation, text[start]))
131
136
  return start+1
132
137
  # ...=...
133
138
  start = self.term(start, text)
134
- assert text[start] == '='
139
+ if text[start] != '=':
140
+ raise AssertionError
135
141
  self.cur.append((start, Operator, text[start]))
136
142
  start = self.term(start+1, text)
137
143
  return start
@@ -139,7 +145,8 @@ class TNTLexer(Lexer):
139
145
  def rule(self, start, text):
140
146
  """Tokenize a rule."""
141
147
  match = self.RULES.match(text, start)
142
- assert match is not None
148
+ if match is None:
149
+ raise AssertionError
143
150
  groups = sorted(match.regs[1:]) # exclude whole match
144
151
  for group in groups:
145
152
  if group[0] >= 0: # this group matched
@@ -163,8 +170,10 @@ class TNTLexer(Lexer):
163
170
  self.cur.append((start+1, Text, text[start+1:end]))
164
171
  start = end
165
172
  match = self.LINENOS.match(text, start)
166
- assert match is not None
167
- assert text[match.end()] == ')'
173
+ if match is None:
174
+ raise AssertionError
175
+ if text[match.end()] != ')':
176
+ raise AssertionError
168
177
  self.cur.append((match.start(), Number.Integer, match.group(0)))
169
178
  self.cur.append((match.end(), Punctuation, text[match.end()]))
170
179
  return match.end() + 1
@@ -220,7 +229,7 @@ class TNTLexer(Lexer):
220
229
  orig = len(self.cur)
221
230
  try:
222
231
  start = end = self.formula(start, text)
223
- except AssertionError: # not well-formed
232
+ except (AssertionError, RecursionError): # not well-formed
224
233
  del self.cur[orig:]
225
234
  while text[end] not in self.WHITESPACE:
226
235
  end += 1
@@ -258,6 +267,6 @@ class TNTLexer(Lexer):
258
267
  try:
259
268
  del self.cur[orig:]
260
269
  except NameError:
261
- pass # if orig was never defined, fine
270
+ pass # if orig was never defined, fine
262
271
  self.error_till_line_end(start, text)
263
272
  return self.cur
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.trafficscript
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for RiverBed's TrafficScript (RTS) language.
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
 
@@ -24,7 +23,7 @@ class RtsLexer(RegexLexer):
24
23
  .. versionadded:: 2.1
25
24
  """
26
25
  name = 'TrafficScript'
27
- aliases = ['rts','trafficscript']
26
+ aliases = ['trafficscript', 'rts']
28
27
  filenames = ['*.rts']
29
28
 
30
29
  tokens = {
@@ -1,4 +1,3 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.typoscript
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -14,7 +13,7 @@
14
13
  `TypoScriptHtmlDataLexer`
15
14
  Lexer that highlights markers, constants and registers within html tags.
16
15
 
17
- :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
16
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
18
17
  :license: BSD, see LICENSE for details.
19
18
  """
20
19
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.unicon
4
3
  ~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for the Icon and Unicon languages, including ucode VM.
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.urbi
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for UrbiScript language.
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
 
@@ -117,11 +116,11 @@ class UrbiscriptLexer(ExtendedRegexLexer):
117
116
  ],
118
117
  'string.double': [
119
118
  (r'((?:\\\\|\\"|[^"])*?)(\\B\((\d+)\)\()', blob_callback),
120
- (r'(\\\\|\\"|[^"])*?"', String.Double, '#pop'),
119
+ (r'(\\\\|\\[^\\]|[^"\\])*?"', String.Double, '#pop'),
121
120
  ],
122
121
  'string.single': [
123
122
  (r"((?:\\\\|\\'|[^'])*?)(\\B\((\d+)\)\()", blob_callback),
124
- (r"(\\\\|\\'|[^'])*?'", String.Single, '#pop'),
123
+ (r"(\\\\|\\[^\\]|[^'\\])*?'", String.Single, '#pop'),
125
124
  ],
126
125
  # from http://pygments.org/docs/lexerdevelopment/#changing-states
127
126
  'comment': [
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.usd
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  The module that parses Pixar's Universal Scene Description file format.
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.varnish
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Varnish configuration
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
 
@@ -61,7 +60,7 @@ class VCLLexer(RegexLexer):
61
60
  bygroups(Name.Attribute, Operator, Name.Variable.Global, Punctuation)),
62
61
  (r'(\.probe)(\s*=\s*)(\{)',
63
62
  bygroups(Name.Attribute, Operator, Punctuation), 'probe'),
64
- (r'(\.\w+\b)(\s*=\s*)([^;]*)(\s*;)',
63
+ (r'(\.\w+\b)(\s*=\s*)([^;\s]*)(\s*;)',
65
64
  bygroups(Name.Attribute, Operator, using(this), Punctuation)),
66
65
  (r'\{', Punctuation, '#push'),
67
66
  (r'\}', Punctuation, '#pop'),
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.verification
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for Intermediate Verification Languages (IVLs).
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.web
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Just export previously exported lexers.
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
 
@@ -0,0 +1,120 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.webassembly
4
+ ~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for the WebAssembly text format.
7
+
8
+ The grammar can be found at https://github.com/WebAssembly/spec/blob/master/interpreter/README.md
9
+ and https://webassembly.github.io/spec/core/text/.
10
+
11
+
12
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
13
+ :license: BSD, see LICENSE for details.
14
+ """
15
+
16
+ from pygments.lexer import RegexLexer, words, bygroups, default
17
+ from pygments.token import Text, Comment, Operator, Keyword, String, Number, Punctuation, Literal, Error, Name
18
+
19
+ __all__ = ['WatLexer']
20
+
21
+ keywords = (
22
+ 'module', 'import', 'func', 'funcref', 'start', 'param', 'local', 'type',
23
+ 'result', 'export', 'memory', 'global', 'mut', 'data', 'table', 'elem',
24
+ 'if', 'then', 'else', 'end', 'block', 'loop'
25
+ )
26
+
27
+ builtins = (
28
+ 'unreachable', 'nop', 'block', 'loop', 'if', 'else', 'end', 'br', 'br_if',
29
+ 'br_table', 'return', 'call', 'call_indirect', 'drop', 'select',
30
+ 'local.get', 'local.set', 'local.tee', 'global.get', 'global.set',
31
+ 'i32.load', 'i64.load', 'f32.load', 'f64.load', 'i32.load8_s',
32
+ 'i32.load8_u', 'i32.load16_s', 'i32.load16_u', 'i64.load8_s',
33
+ 'i64.load8_u', 'i64.load16_s', 'i64.load16_u', 'i64.load32_s',
34
+ 'i64.load32_u', 'i32.store', 'i64.store', 'f32.store', 'f64.store',
35
+ 'i32.store8', 'i32.store16', 'i64.store8', 'i64.store16', 'i64.store32',
36
+ 'memory.size', 'memory.grow', 'i32.const', 'i64.const', 'f32.const',
37
+ 'f64.const', 'i32.eqz', 'i32.eq', 'i32.ne', 'i32.lt_s', 'i32.lt_u',
38
+ 'i32.gt_s', 'i32.gt_u', 'i32.le_s', 'i32.le_u', 'i32.ge_s', 'i32.ge_u',
39
+ 'i64.eqz', 'i64.eq', 'i64.ne', 'i64.lt_s', 'i64.lt_u', 'i64.gt_s',
40
+ 'i64.gt_u', 'i64.le_s', 'i64.le_u', 'i64.ge_s', 'i64.ge_u', 'f32.eq',
41
+ 'f32.ne', 'f32.lt', 'f32.gt', 'f32.le', 'f32.ge', 'f64.eq', 'f64.ne',
42
+ 'f64.lt', 'f64.gt', 'f64.le', 'f64.ge', 'i32.clz', 'i32.ctz', 'i32.popcnt',
43
+ 'i32.add', 'i32.sub', 'i32.mul', 'i32.div_s', 'i32.div_u', 'i32.rem_s',
44
+ 'i32.rem_u', 'i32.and', 'i32.or', 'i32.xor', 'i32.shl', 'i32.shr_s',
45
+ 'i32.shr_u', 'i32.rotl', 'i32.rotr', 'i64.clz', 'i64.ctz', 'i64.popcnt',
46
+ 'i64.add', 'i64.sub', 'i64.mul', 'i64.div_s', 'i64.div_u', 'i64.rem_s',
47
+ 'i64.rem_u', 'i64.and', 'i64.or', 'i64.xor', 'i64.shl', 'i64.shr_s',
48
+ 'i64.shr_u', 'i64.rotl', 'i64.rotr', 'f32.abs', 'f32.neg', 'f32.ceil',
49
+ 'f32.floor', 'f32.trunc', 'f32.nearest', 'f32.sqrt', 'f32.add', 'f32.sub',
50
+ 'f32.mul', 'f32.div', 'f32.min', 'f32.max', 'f32.copysign', 'f64.abs',
51
+ 'f64.neg', 'f64.ceil', 'f64.floor', 'f64.trunc', 'f64.nearest', 'f64.sqrt',
52
+ 'f64.add', 'f64.sub', 'f64.mul', 'f64.div', 'f64.min', 'f64.max',
53
+ 'f64.copysign', 'i32.wrap_i64', 'i32.trunc_f32_s', 'i32.trunc_f32_u',
54
+ 'i32.trunc_f64_s', 'i32.trunc_f64_u', 'i64.extend_i32_s',
55
+ 'i64.extend_i32_u', 'i64.trunc_f32_s', 'i64.trunc_f32_u',
56
+ 'i64.trunc_f64_s', 'i64.trunc_f64_u', 'f32.convert_i32_s',
57
+ 'f32.convert_i32_u', 'f32.convert_i64_s', 'f32.convert_i64_u',
58
+ 'f32.demote_f64', 'f64.convert_i32_s', 'f64.convert_i32_u',
59
+ 'f64.convert_i64_s', 'f64.convert_i64_u', 'f64.promote_f32',
60
+ 'i32.reinterpret_f32', 'i64.reinterpret_f64', 'f32.reinterpret_i32',
61
+ 'f64.reinterpret_i64',
62
+ )
63
+
64
+
65
+ class WatLexer(RegexLexer):
66
+ """Lexer for the `WebAssembly text format <https://webassembly.org/>`_.
67
+
68
+ .. versionadded:: 2.9
69
+ """
70
+
71
+ name = 'WebAssembly'
72
+ aliases = ['wast', 'wat']
73
+ filenames = ['*.wat', '*.wast']
74
+
75
+ tokens = {
76
+ 'root': [
77
+ (words(keywords, suffix=r'(?=[^a-z_\.])'), Keyword),
78
+ (words(builtins), Name.Builtin, 'arguments'),
79
+ (words(['i32', 'i64', 'f32', 'f64']), Keyword.Type),
80
+ (r'\$[A-Za-z0-9!#$%&\'*+./:<=>?@\\^_`|~-]+', Name.Variable), # yes, all of the are valid in identifiers
81
+ (r';;.*?$', Comment.Single),
82
+ (r'\(;', Comment.Multiline, 'nesting_comment'),
83
+ (r'[+-]?0x[\dA-Fa-f](_?[\dA-Fa-f])*(.([\dA-Fa-f](_?[\dA-Fa-f])*)?)?([pP][+-]?[\dA-Fa-f](_?[\dA-Fa-f])*)?', Number.Float),
84
+ (r'[+-]?\d.\d(_?\d)*[eE][+-]?\d(_?\d)*', Number.Float),
85
+ (r'[+-]?\d.\d(_?\d)*', Number.Float),
86
+ (r'[+-]?\d.[eE][+-]?\d(_?\d)*', Number.Float),
87
+ (r'[+-]?(inf|nan:0x[\dA-Fa-f](_?[\dA-Fa-f])*|nan)', Number.Float),
88
+ (r'[+-]?0x[\dA-Fa-f](_?[\dA-Fa-f])*', Number.Hex),
89
+ (r'[+-]?\d(_?\d)*', Number.Integer),
90
+ (r'[\(\)]', Punctuation),
91
+ (r'"', String.Double, 'string'),
92
+ (r'\s+', Text),
93
+ ],
94
+ 'nesting_comment': [
95
+ (r'\(;', Comment.Multiline, '#push'),
96
+ (r';\)', Comment.Multiline, '#pop'),
97
+ (r'[^;(]+', Comment.Multiline),
98
+ (r'[;(]', Comment.Multiline),
99
+ ],
100
+ 'string': [
101
+ (r'\\[\dA-Fa-f][\dA-Fa-f]', String.Escape), # must have exactly two hex digits
102
+ (r'\\t', String.Escape),
103
+ (r'\\n', String.Escape),
104
+ (r'\\r', String.Escape),
105
+ (r'\\"', String.Escape),
106
+ (r"\\'", String.Escape),
107
+ (r'\\u\{[\dA-Fa-f](_?[\dA-Fa-f])*\}', String.Escape),
108
+ (r'\\\\', String.Escape),
109
+ (r'"', String.Double, '#pop'),
110
+ (r'[^"\\]+', String.Double),
111
+ ],
112
+ 'arguments': [
113
+ (r'\s+', Text),
114
+ (r'(offset)(=)(0x[\dA-Fa-f](_?[\dA-Fa-f])*)', bygroups(Keyword, Operator, Number.Hex)),
115
+ (r'(offset)(=)(\d(_?\d)*)', bygroups(Keyword, Operator, Number.Integer)),
116
+ (r'(align)(=)(0x[\dA-Fa-f](_?[\dA-Fa-f])*)', bygroups(Keyword, Operator, Number.Hex)),
117
+ (r'(align)(=)(\d(_?\d)*)', bygroups(Keyword, Operator, Number.Integer)),
118
+ default('#pop'),
119
+ ]
120
+ }
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.webidl
4
3
  ~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Web IDL, including some extensions.
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.webmisc
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for misc. web stuff.
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
 
@@ -128,7 +127,8 @@ class XQueryLexer(ExtendedRegexLexer):
128
127
 
129
128
  def popstate_tag_callback(lexer, match, ctx):
130
129
  yield match.start(), Name.Tag, match.group(1)
131
- ctx.stack.append(lexer.xquery_parse_state.pop())
130
+ if lexer.xquery_parse_state:
131
+ ctx.stack.append(lexer.xquery_parse_state.pop())
132
132
  ctx.pos = match.end()
133
133
 
134
134
  def popstate_xmlcomment_callback(lexer, match, ctx):
@@ -857,8 +857,8 @@ class QmlLexer(RegexLexer):
857
857
  (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
858
858
  (r'0x[0-9a-fA-F]+', Number.Hex),
859
859
  (r'[0-9]+', Number.Integer),
860
- (r'"(\\\\|\\"|[^"])*"', String.Double),
861
- (r"'(\\\\|\\'|[^'])*'", String.Single),
860
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
861
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
862
862
  ]
863
863
  }
864
864
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.whiley
4
3
  ~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for the Whiley language.
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.x10
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for the X10 programming language.
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
 
@@ -62,7 +61,7 @@ class X10Lexer(RegexLexer):
62
61
  (r'\b(%s)\b' % '|'.join(types), Keyword.Type),
63
62
  (r'\b(%s)\b' % '|'.join(values), Keyword.Constant),
64
63
  (r'\b(%s)\b' % '|'.join(modifiers), Keyword.Declaration),
65
- (r'"(\\\\|\\"|[^"])*"', String),
64
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
66
65
  (r"'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'", String.Char),
67
66
  (r'.', Text)
68
67
  ],
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.xorg
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Xorg configs.
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.yang
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for the YANG 1.1 modeling language. See :rfc:`7950`.
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.zig
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Zig.
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.modeline
4
3
  ~~~~~~~~~~~~~~~~~
5
4
 
6
5
  A simple modeline parser (based on pymodeline).
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