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,155 @@
1
+ """
2
+ pygments.lexers.meson
3
+ ~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Pygments lexer for the Meson build system
6
+
7
+ :copyright: Copyright 2021 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ import re
12
+
13
+ from pygments.lexer import (
14
+ RegexLexer,
15
+ words,
16
+ include,
17
+ )
18
+ from pygments.token import (
19
+ Comment,
20
+ Name,
21
+ Number,
22
+ Punctuation,
23
+ Operator,
24
+ Keyword,
25
+ String,
26
+ Whitespace,
27
+ )
28
+
29
+ __all__ = ['MesonLexer']
30
+
31
+
32
+ class MesonLexer(RegexLexer):
33
+ """
34
+ `meson <https://mesonbuild.com/>`_ language lexer.
35
+ The grammar definition use to transcribe the syntax was retrieved from
36
+ https://mesonbuild.com/Syntax.html#grammar for version 0.58
37
+ Some of those definitions are improperly transcribed so the Meson++
38
+ implementation was also checked: https://github.com/dcbaker/meson-plus-plus
39
+
40
+ .. versionadded:: 2.10
41
+ """
42
+
43
+ # TODO String interpolation @VARNAME@ inner matches
44
+ # TODO keyword_arg: value inner matches
45
+
46
+ name = 'Meson'
47
+ aliases = ['meson', 'meson.build']
48
+ filenames = ['meson.build', 'meson_options.txt']
49
+ mimetypes = ['text/x-meson']
50
+
51
+ flags = re.MULTILINE | re.UNICODE
52
+
53
+ tokens = {
54
+ 'root': [
55
+ (r'#.*?$', Comment),
56
+ (r"'''.*'''", String.Single),
57
+ (r'[1-9][0-9]*', Number.Integer),
58
+ (r'0o[0-7]+', Number.Oct),
59
+ (r'0x[a-fA-F0-9]+', Number.Hex),
60
+ include('string'),
61
+ include('keywords'),
62
+ include('expr'),
63
+ (r'[a-zA-Z_][a-zA-Z_0-9]*', Name),
64
+ (r'\s+', Whitespace),
65
+ ],
66
+ 'string': [
67
+ (r"[']{3}([']{0,2}([^\\']|\\(.|\n)))*[']{3}", String),
68
+ (r"'.*?(?<!\\)(\\\\)*?'", String),
69
+ ],
70
+ 'keywords': [
71
+ (words((
72
+ 'if',
73
+ 'elif',
74
+ 'else',
75
+ 'endif',
76
+ 'foreach',
77
+ 'endforeach',
78
+ 'break',
79
+ 'continue',
80
+ ),
81
+ suffix=r'\b'), Keyword),
82
+ ],
83
+ 'expr': [
84
+ (r'(in|and|or|not)\b', Operator.Word),
85
+ (r'(\*=|/=|%=|\+]=|-=|==|!=|\+|-|=)', Operator),
86
+ (r'[\[\]{}:().,?]', Punctuation),
87
+ (words(('true', 'false'), suffix=r'\b'), Keyword.Constant),
88
+ include('builtins'),
89
+ (words((
90
+ 'meson',
91
+ 'build_machine',
92
+ 'host_machine',
93
+ 'target_machine',
94
+ ),
95
+ suffix=r'\b'), Name.Variable.Magic),
96
+ ],
97
+ 'builtins': [
98
+ # This list was extracted from the v0.58 reference manual
99
+ (words((
100
+ 'add_global_arguments',
101
+ 'add_global_link_arguments',
102
+ 'add_languages',
103
+ 'add_project_arguments',
104
+ 'add_project_link_arguments',
105
+ 'add_test_setup',
106
+ 'assert',
107
+ 'benchmark',
108
+ 'both_libraries',
109
+ 'build_target',
110
+ 'configuration_data',
111
+ 'configure_file',
112
+ 'custom_target',
113
+ 'declare_dependency',
114
+ 'dependency',
115
+ 'disabler',
116
+ 'environment',
117
+ 'error',
118
+ 'executable',
119
+ 'files',
120
+ 'find_library',
121
+ 'find_program',
122
+ 'generator',
123
+ 'get_option',
124
+ 'get_variable',
125
+ 'include_directories',
126
+ 'install_data',
127
+ 'install_headers',
128
+ 'install_man',
129
+ 'install_subdir',
130
+ 'is_disabler',
131
+ 'is_variable',
132
+ 'jar',
133
+ 'join_paths',
134
+ 'library',
135
+ 'message',
136
+ 'project',
137
+ 'range',
138
+ 'run_command',
139
+ 'set_variable',
140
+ 'shared_library',
141
+ 'shared_module',
142
+ 'static_library',
143
+ 'subdir',
144
+ 'subdir_done',
145
+ 'subproject',
146
+ 'summary',
147
+ 'test',
148
+ 'vcs_tag',
149
+ 'warning',
150
+ ),
151
+ prefix=r'(?<!\.)',
152
+ suffix=r'\b'), Name.Builtin),
153
+ (r'(?<!\.)import\b', Name.Namespace),
154
+ ],
155
+ }
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.mime
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for Multipurpose Internet Mail Extensions (MIME) data.
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,20 +21,20 @@ __all__ = ["MIMELexer"]
22
21
  class MIMELexer(RegexLexer):
23
22
  """
24
23
  Lexer for Multipurpose Internet Mail Extensions (MIME) data. This lexer is
25
- designed to process the nested mulitpart data.
24
+ designed to process nested multipart data.
26
25
 
27
26
  It assumes that the given data contains both header and body (and is
28
- splitted by empty line). If no valid header is found, then the entire data
29
- would be treated as body.
27
+ split at an empty line). If no valid header is found, then the entire data
28
+ will be treated as body.
30
29
 
31
30
  Additional options accepted:
32
31
 
33
32
  `MIME-max-level`
34
- Max recurssion level for nested MIME structure. Any negative number
33
+ Max recursion level for nested MIME structure. Any negative number
35
34
  would treated as unlimited. (default: -1)
36
35
 
37
36
  `Content-Type`
38
- Treat the data as specific content type. Useful when header is
37
+ Treat the data as a specific content type. Useful when header is
39
38
  missing, or this lexer would try to parse from header. (default:
40
39
  `text/plain`)
41
40
 
@@ -45,7 +44,7 @@ class MIMELexer(RegexLexer):
45
44
  would try to parse from header by default. (default: None)
46
45
 
47
46
  `Content-Transfer-Encoding`
48
- Treat the data as specific encoding. Or this lexer would try to parse
47
+ Treat the data as a specific encoding. Or this lexer would try to parse
49
48
  from header by default. (default: None)
50
49
 
51
50
  .. versionadded:: 2.5
@@ -64,21 +63,6 @@ class MIMELexer(RegexLexer):
64
63
  self.content_type = options.get("Content_Type", "text/plain")
65
64
  self.max_nested_level = get_int_opt(options, "MIME-max-level", -1)
66
65
 
67
- def analyse_text(text):
68
- try:
69
- header, body = text.strip().split("\n\n", 1)
70
- if not body.strip():
71
- return 0.1
72
-
73
- invalid_headers = MIMELexer.tokens["header"].sub("", header)
74
- if invalid_headers.strip():
75
- return 0.1
76
- else:
77
- return 1
78
-
79
- except ValueError:
80
- return 0.1
81
-
82
66
  def get_header_tokens(self, match):
83
67
  field = match.group(1)
84
68
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.ml
4
3
  ~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for ML family 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
 
@@ -142,7 +141,7 @@ class SMLLexer(RegexLexer):
142
141
  (r'#\s+(%s)' % symbolicid_re, Name.Label),
143
142
  # Some reserved words trigger a special, local lexer state change
144
143
  (r'\b(datatype|abstype)\b(?!\')', Keyword.Reserved, 'dname'),
145
- (r'(?=\b(exception)\b(?!\'))', Text, ('ename')),
144
+ (r'\b(exception)\b(?!\')', Keyword.Reserved, 'ename'),
146
145
  (r'\b(functor|include|open|signature|structure)\b(?!\')',
147
146
  Keyword.Reserved, 'sname'),
148
147
  (r'\b(type|eqtype)\b(?!\')', Keyword.Reserved, 'tname'),
@@ -315,15 +314,14 @@ class SMLLexer(RegexLexer):
315
314
  'ename': [
316
315
  include('whitespace'),
317
316
 
318
- (r'(exception|and)\b(\s+)(%s)' % alphanumid_re,
317
+ (r'(and\b)(\s+)(%s)' % alphanumid_re,
319
318
  bygroups(Keyword.Reserved, Text, Name.Class)),
320
- (r'(exception|and)\b(\s*)(%s)' % symbolicid_re,
319
+ (r'(and\b)(\s*)(%s)' % symbolicid_re,
321
320
  bygroups(Keyword.Reserved, Text, Name.Class)),
322
321
  (r'\b(of)\b(?!\')', Keyword.Reserved),
322
+ (r'(%s)|(%s)' % (alphanumid_re, symbolicid_re), Name.Class),
323
323
 
324
- include('breakout'),
325
- include('core'),
326
- (r'\S+', Error),
324
+ default('#pop'),
327
325
  ],
328
326
 
329
327
  'datcon': [
@@ -445,6 +443,7 @@ class OcamlLexer(RegexLexer):
445
443
  ],
446
444
  }
447
445
 
446
+
448
447
  class OpaLexer(RegexLexer):
449
448
  """
450
449
  Lexer for the Opa language (http://opalang.org).
@@ -776,7 +775,7 @@ class ReasonLexer(RegexLexer):
776
775
  """
777
776
 
778
777
  name = 'ReasonML'
779
- aliases = ['reason', "reasonml"]
778
+ aliases = ['reasonml', 'reason']
780
779
  filenames = ['*.re', '*.rei']
781
780
  mimetypes = ['text/x-reasonml']
782
781
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.modeling
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for modeling 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
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.modula2
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Multi-Dialect Lexer for Modula-2.
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
 
@@ -228,8 +227,8 @@ class Modula2Lexer(RegexLexer):
228
227
  (r'[0-9A-F]+H', Number.Hex),
229
228
  ],
230
229
  'string_literals': [
231
- (r"'(\\\\|\\'|[^'])*'", String), # single quoted string
232
- (r'"(\\\\|\\"|[^"])*"', String), # double quoted string
230
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
231
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
233
232
  ],
234
233
  'digraph_operators': [
235
234
  # Dot Product Operator
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.monte
4
3
  ~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for the Monte 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
 
@@ -1,4 +1,3 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.mosel
4
3
  ~~~~~~~~~~~~~~~~~~~~~
@@ -6,7 +5,7 @@
6
5
  Lexers for the mosel language.
7
6
  http://www.fico.com/en/products/fico-xpress-optimization
8
7
 
9
- :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
10
9
  :license: BSD, see LICENSE for details.
11
10
  """
12
11
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.ncl
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for NCAR Command 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.nimrod
4
3
  ~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for the Nim language (formerly known as Nimrod).
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 NimrodLexer(RegexLexer):
26
25
  """
27
26
 
28
27
  name = 'Nimrod'
29
- aliases = ['nim', 'nimrod']
28
+ aliases = ['nimrod', 'nim']
30
29
  filenames = ['*.nim', '*.nimrod']
31
30
  mimetypes = ['text/x-nim']
32
31
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.nit
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for the Nit 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.nix
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for the NixOS Nix 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.oberon
4
3
  ~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Oberon family 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
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.objective
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Objective-C family 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
 
@@ -261,11 +260,11 @@ class LogosLexer(ObjectiveCppLexer):
261
260
  'logos_classname'),
262
261
  (r'(%hook|%group)(\s+)([a-zA-Z$_][\w$]+)',
263
262
  bygroups(Keyword, Text, Name.Class)),
264
- (r'(%config)(\s*\(\s*)(\w+)(\s*=\s*)(.*?)(\s*\)\s*)',
263
+ (r'(%config)(\s*\(\s*)(\w+)(\s*=)(.*?)(\)\s*)',
265
264
  bygroups(Keyword, Text, Name.Variable, Text, String, Text)),
266
265
  (r'(%ctor)(\s*)(\{)', bygroups(Keyword, Text, Punctuation),
267
266
  'function'),
268
- (r'(%new)(\s*)(\()(\s*.*?\s*)(\))',
267
+ (r'(%new)(\s*)(\()(.*?)(\))',
269
268
  bygroups(Keyword, Text, Keyword, String, Keyword)),
270
269
  (r'(\s*)(%end)(\s*)', bygroups(Text, Keyword, Text)),
271
270
  inherit,
@@ -413,7 +412,7 @@ class SwiftLexer(RegexLexer):
413
412
  ],
414
413
  'keywords': [
415
414
  (words((
416
- 'as', 'break', 'case', 'catch', 'continue', 'default', 'defer',
415
+ 'as', 'async', 'await', 'break', 'case', 'catch', 'continue', 'default', 'defer',
417
416
  'do', 'else', 'fallthrough', 'for', 'guard', 'if', 'in', 'is',
418
417
  'repeat', 'return', '#selector', 'switch', 'throw', 'try',
419
418
  'where', 'while'), suffix=r'\b'),
@@ -441,8 +440,8 @@ class SwiftLexer(RegexLexer):
441
440
  (r'(var|let)(\s+)([a-zA-Z_]\w*)', bygroups(Keyword.Declaration,
442
441
  Text, Name.Variable)),
443
442
  (words((
444
- 'class', 'deinit', 'enum', 'extension', 'func', 'import', 'init',
445
- 'internal', 'let', 'operator', 'private', 'protocol', 'public',
443
+ 'actor', 'associatedtype', 'class', 'deinit', 'enum', 'extension', 'func', 'import',
444
+ 'init', 'internal', 'let', 'operator', 'private', 'protocol', 'public',
446
445
  'static', 'struct', 'subscript', 'typealias', 'var'), suffix=r'\b'),
447
446
  Keyword.Declaration)
448
447
  ],
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.ooc
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for the Ooc 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.other
4
3
  ~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Just export lexer classes previously contained in this module.
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.parasail
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for ParaSail.
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.parsers
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for parser generators.
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
 
@@ -64,10 +63,10 @@ class RagelLexer(RegexLexer):
64
63
  (r'[+-]?[0-9]+', Number.Integer),
65
64
  ],
66
65
  'literals': [
67
- (r'"(\\\\|\\"|[^"])*"', String), # double quote string
68
- (r"'(\\\\|\\'|[^'])*'", String), # single quote string
69
- (r'\[(\\\\|\\\]|[^\]])*\]', String), # square bracket literals
70
- (r'/(?!\*)(\\\\|\\/|[^/])*/', String.Regex), # regular expressions
66
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
67
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
68
+ (r'\[(\\\\|\\[^\\]|[^\\\]])*\]', String), # square bracket literals
69
+ (r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/', String.Regex), # regular expressions
71
70
  ],
72
71
  'identifiers': [
73
72
  (r'[a-zA-Z_]\w*', Name.Variable),
@@ -106,15 +105,15 @@ class RagelLexer(RegexLexer):
106
105
  r'[^\\]\\[{}]', # allow escaped { or }
107
106
 
108
107
  # strings and comments may safely contain unsafe characters
109
- r'"(\\\\|\\"|[^"])*"', # double quote string
110
- r"'(\\\\|\\'|[^'])*'", # single quote string
108
+ r'"(\\\\|\\[^\\]|[^"\\])*"',
109
+ r"'(\\\\|\\[^\\]|[^'\\])*'",
111
110
  r'//.*$\n?', # single line comment
112
111
  r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
113
112
  r'\#.*$\n?', # ruby comment
114
113
 
115
114
  # regular expression: There's no reason for it to start
116
115
  # with a * and this stops confusion with comments.
117
- r'/(?!\*)(\\\\|\\/|[^/])*/',
116
+ r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/',
118
117
 
119
118
  # / is safe now that we've handled regex and javadoc comments
120
119
  r'/',
@@ -147,12 +146,12 @@ class RagelEmbeddedLexer(RegexLexer):
147
146
  r'%(?=[^%]|$)', # a single % sign is okay, just not 2 of them
148
147
 
149
148
  # strings and comments may safely contain unsafe characters
150
- r'"(\\\\|\\"|[^"])*"', # double quote string
151
- r"'(\\\\|\\'|[^'])*'", # single quote string
149
+ r'"(\\\\|\\[^\\]|[^"\\])*"',
150
+ r"'(\\\\|\\[^\\]|[^'\\])*'",
152
151
  r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
153
152
  r'//.*$\n?', # single line comment
154
153
  r'\#.*$\n?', # ruby/ragel comment
155
- r'/(?!\*)(\\\\|\\/|[^/])*/', # regular expression
154
+ r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/', # regular expression
156
155
 
157
156
  # / is safe now that we've handled regex and javadoc comments
158
157
  r'/',
@@ -182,7 +181,7 @@ class RagelEmbeddedLexer(RegexLexer):
182
181
 
183
182
  # specifically allow regex followed immediately by *
184
183
  # so it doesn't get mistaken for a comment
185
- r'/(?!\*)(\\\\|\\/|[^/])*/\*',
184
+ r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/\*',
186
185
 
187
186
  # allow / as long as it's not followed by another / or by a *
188
187
  r'/(?=[^/*]|$)',
@@ -193,9 +192,9 @@ class RagelEmbeddedLexer(RegexLexer):
193
192
  )) + r')+',
194
193
 
195
194
  # strings and comments may safely contain unsafe characters
196
- r'"(\\\\|\\"|[^"])*"', # double quote string
197
- r"'(\\\\|\\'|[^'])*'", # single quote string
198
- r"\[(\\\\|\\\]|[^\]])*\]", # square bracket literal
195
+ r'"(\\\\|\\[^\\]|[^"\\])*"',
196
+ r"'(\\\\|\\[^\\]|[^'\\])*'",
197
+ r"\[(\\\\|\\[^\\]|[^\]\\])*\]", # square bracket literal
199
198
  r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
200
199
  r'//.*$\n?', # single line comment
201
200
  r'\#.*$\n?', # ruby/ragel comment
@@ -416,8 +415,8 @@ class AntlrLexer(RegexLexer):
416
415
  (r':', Punctuation),
417
416
 
418
417
  # literals
419
- (r"'(\\\\|\\'|[^'])*'", String),
420
- (r'"(\\\\|\\"|[^"])*"', String),
418
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
419
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
421
420
  (r'<<([^>]|>[^>])>>', String),
422
421
  # identifiers
423
422
  # Tokens start with capital letter.
@@ -456,14 +455,14 @@ class AntlrLexer(RegexLexer):
456
455
  r'[^${}\'"/\\]+', # exclude unsafe characters
457
456
 
458
457
  # strings and comments may safely contain unsafe characters
459
- r'"(\\\\|\\"|[^"])*"', # double quote string
460
- r"'(\\\\|\\'|[^'])*'", # single quote string
458
+ r'"(\\\\|\\[^\\]|[^"\\])*"',
459
+ r"'(\\\\|\\[^\\]|[^'\\])*'",
461
460
  r'//.*$\n?', # single line comment
462
461
  r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
463
462
 
464
463
  # regular expression: There's no reason for it to start
465
464
  # with a * and this stops confusion with comments.
466
- r'/(?!\*)(\\\\|\\/|[^/])*/',
465
+ r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/',
467
466
 
468
467
  # backslashes are okay, as long as we are not backslashing a %
469
468
  r'\\(?!%)',
@@ -483,14 +482,14 @@ class AntlrLexer(RegexLexer):
483
482
  r'[^$\[\]\'"/]+', # exclude unsafe characters
484
483
 
485
484
  # strings and comments may safely contain unsafe characters
486
- r'"(\\\\|\\"|[^"])*"', # double quote string
487
- r"'(\\\\|\\'|[^'])*'", # single quote string
485
+ r'"(\\\\|\\[^\\]|[^"\\])*"',
486
+ r"'(\\\\|\\[^\\]|[^'\\])*'",
488
487
  r'//.*$\n?', # single line comment
489
488
  r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
490
489
 
491
490
  # regular expression: There's no reason for it to start
492
491
  # with a * and this stops confusion with comments.
493
- r'/(?!\*)(\\\\|\\/|[^/])*/',
492
+ r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/',
494
493
 
495
494
  # Now that we've handled regex and javadoc comments
496
495
  # it's safe to let / through.
@@ -653,7 +652,7 @@ class AntlrActionScriptLexer(DelegatingLexer):
653
652
  """
654
653
 
655
654
  name = 'ANTLR With ActionScript Target'
656
- aliases = ['antlr-as', 'antlr-actionscript']
655
+ aliases = ['antlr-actionscript', 'antlr-as']
657
656
  filenames = ['*.G', '*.g']
658
657
 
659
658
  def __init__(self, **options):
@@ -701,8 +700,8 @@ class TreetopBaseLexer(RegexLexer):
701
700
  'rule': [
702
701
  include('space'),
703
702
  include('end'),
704
- (r'"(\\\\|\\"|[^"])*"', String.Double),
705
- (r"'(\\\\|\\'|[^'])*'", String.Single),
703
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
704
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
706
705
  (r'([A-Za-z_]\w*)(:)', bygroups(Name.Label, Punctuation)),
707
706
  (r'[A-Za-z_]\w*', Name),
708
707
  (r'[()]', Punctuation),