pygments.rb 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +12 -0
  3. data/.rubocop.yml +18 -0
  4. data/CHANGELOG.adoc +4 -0
  5. data/Rakefile +1 -3
  6. data/bench.rb +9 -4
  7. data/{cache-lexers.rb → cache_lexers.rb} +0 -0
  8. data/lib/pygments/lexer.rb +1 -1
  9. data/lib/pygments/popen.rb +129 -127
  10. data/lib/pygments/version.rb +1 -1
  11. data/pygments.rb.gemspec +1 -1
  12. data/test/test_pygments.rb +6 -8
  13. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/AUTHORS +5 -0
  14. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/INSTALLER +0 -0
  15. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/LICENSE +1 -1
  16. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/METADATA +8 -9
  17. data/vendor/pygments-main/Pygments-2.8.0.dist-info/RECORD +494 -0
  18. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/REQUESTED +0 -0
  19. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/WHEEL +0 -0
  20. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/entry_points.txt +0 -0
  21. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.8.0.dist-info}/top_level.txt +0 -0
  22. data/vendor/pygments-main/pygments/__init__.py +2 -3
  23. data/vendor/pygments-main/pygments/__main__.py +1 -2
  24. data/vendor/pygments-main/pygments/cmdline.py +179 -159
  25. data/vendor/pygments-main/pygments/console.py +1 -2
  26. data/vendor/pygments-main/pygments/filter.py +1 -2
  27. data/vendor/pygments-main/pygments/filters/__init__.py +1 -2
  28. data/vendor/pygments-main/pygments/formatter.py +1 -2
  29. data/vendor/pygments-main/pygments/formatters/__init__.py +2 -3
  30. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -2
  31. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
  32. data/vendor/pygments-main/pygments/formatters/html.py +33 -18
  33. data/vendor/pygments-main/pygments/formatters/img.py +24 -10
  34. data/vendor/pygments-main/pygments/formatters/irc.py +1 -2
  35. data/vendor/pygments-main/pygments/formatters/latex.py +8 -9
  36. data/vendor/pygments-main/pygments/formatters/other.py +7 -10
  37. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -2
  38. data/vendor/pygments-main/pygments/formatters/svg.py +5 -4
  39. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -2
  40. data/vendor/pygments-main/pygments/formatters/terminal256.py +24 -3
  41. data/vendor/pygments-main/pygments/lexer.py +7 -6
  42. data/vendor/pygments-main/pygments/lexers/__init__.py +2 -3
  43. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -2
  44. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -2
  45. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +16 -12
  46. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -2
  47. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
  48. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -2
  49. data/vendor/pygments-main/pygments/lexers/_mapping.py +6 -3
  50. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -2
  51. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +2 -3
  52. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
  53. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +1 -2
  54. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -2
  55. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -2
  56. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -2
  57. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -2
  58. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +91 -55
  59. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
  60. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -2
  61. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -2
  62. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
  63. data/vendor/pygments-main/pygments/lexers/actionscript.py +7 -8
  64. data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
  65. data/vendor/pygments-main/pygments/lexers/algebra.py +1 -2
  66. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  67. data/vendor/pygments-main/pygments/lexers/amdgpu.py +48 -0
  68. data/vendor/pygments-main/pygments/lexers/ampl.py +1 -2
  69. data/vendor/pygments-main/pygments/lexers/apl.py +1 -2
  70. data/vendor/pygments-main/pygments/lexers/archetype.py +2 -3
  71. data/vendor/pygments-main/pygments/lexers/arrow.py +1 -2
  72. data/vendor/pygments-main/pygments/lexers/asm.py +1 -2
  73. data/vendor/pygments-main/pygments/lexers/automation.py +7 -2
  74. data/vendor/pygments-main/pygments/lexers/bare.py +1 -2
  75. data/vendor/pygments-main/pygments/lexers/basic.py +3 -4
  76. data/vendor/pygments-main/pygments/lexers/bibtex.py +1 -2
  77. data/vendor/pygments-main/pygments/lexers/boa.py +4 -5
  78. data/vendor/pygments-main/pygments/lexers/business.py +3 -4
  79. data/vendor/pygments-main/pygments/lexers/c_cpp.py +2 -4
  80. data/vendor/pygments-main/pygments/lexers/c_like.py +1 -2
  81. data/vendor/pygments-main/pygments/lexers/capnproto.py +1 -2
  82. data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
  83. data/vendor/pygments-main/pygments/lexers/chapel.py +3 -4
  84. data/vendor/pygments-main/pygments/lexers/clean.py +1 -2
  85. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
  86. data/vendor/pygments-main/pygments/lexers/configs.py +6 -5
  87. data/vendor/pygments-main/pygments/lexers/console.py +1 -2
  88. data/vendor/pygments-main/pygments/lexers/crystal.py +53 -79
  89. data/vendor/pygments-main/pygments/lexers/csound.py +1 -2
  90. data/vendor/pygments-main/pygments/lexers/css.py +11 -8
  91. data/vendor/pygments-main/pygments/lexers/d.py +3 -4
  92. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
  93. data/vendor/pygments-main/pygments/lexers/data.py +2 -3
  94. data/vendor/pygments-main/pygments/lexers/devicetree.py +1 -2
  95. data/vendor/pygments-main/pygments/lexers/diff.py +1 -2
  96. data/vendor/pygments-main/pygments/lexers/dotnet.py +7 -8
  97. data/vendor/pygments-main/pygments/lexers/dsls.py +3 -4
  98. data/vendor/pygments-main/pygments/lexers/dylan.py +1 -2
  99. data/vendor/pygments-main/pygments/lexers/ecl.py +4 -6
  100. data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
  101. data/vendor/pygments-main/pygments/lexers/elm.py +1 -2
  102. data/vendor/pygments-main/pygments/lexers/email.py +1 -2
  103. data/vendor/pygments-main/pygments/lexers/erlang.py +1 -2
  104. data/vendor/pygments-main/pygments/lexers/esoteric.py +1 -2
  105. data/vendor/pygments-main/pygments/lexers/ezhil.py +1 -2
  106. data/vendor/pygments-main/pygments/lexers/factor.py +3 -4
  107. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -2
  108. data/vendor/pygments-main/pygments/lexers/felix.py +1 -2
  109. data/vendor/pygments-main/pygments/lexers/floscript.py +1 -2
  110. data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
  111. data/vendor/pygments-main/pygments/lexers/fortran.py +9 -7
  112. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -2
  113. data/vendor/pygments-main/pygments/lexers/freefem.py +1 -2
  114. data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
  115. data/vendor/pygments-main/pygments/lexers/futhark.py +110 -0
  116. data/vendor/pygments-main/pygments/lexers/gdscript.py +1 -2
  117. data/vendor/pygments-main/pygments/lexers/go.py +2 -3
  118. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +1 -2
  119. data/vendor/pygments-main/pygments/lexers/graph.py +1 -2
  120. data/vendor/pygments-main/pygments/lexers/graphics.py +3 -4
  121. data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
  122. data/vendor/pygments-main/pygments/lexers/haskell.py +1 -2
  123. data/vendor/pygments-main/pygments/lexers/haxe.py +3 -4
  124. data/vendor/pygments-main/pygments/lexers/hdl.py +2 -6
  125. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
  126. data/vendor/pygments-main/pygments/lexers/html.py +7 -8
  127. data/vendor/pygments-main/pygments/lexers/idl.py +1 -2
  128. data/vendor/pygments-main/pygments/lexers/igor.py +1 -2
  129. data/vendor/pygments-main/pygments/lexers/inferno.py +1 -2
  130. data/vendor/pygments-main/pygments/lexers/installers.py +1 -2
  131. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -2
  132. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
  133. data/vendor/pygments-main/pygments/lexers/j.py +2 -3
  134. data/vendor/pygments-main/pygments/lexers/javascript.py +57 -61
  135. data/vendor/pygments-main/pygments/lexers/julia.py +1 -2
  136. data/vendor/pygments-main/pygments/lexers/jvm.py +174 -108
  137. data/vendor/pygments-main/pygments/lexers/lisp.py +7 -8
  138. data/vendor/pygments-main/pygments/lexers/make.py +3 -4
  139. data/vendor/pygments-main/pygments/lexers/markup.py +11 -14
  140. data/vendor/pygments-main/pygments/lexers/math.py +1 -2
  141. data/vendor/pygments-main/pygments/lexers/matlab.py +2644 -84
  142. data/vendor/pygments-main/pygments/lexers/mime.py +2 -3
  143. data/vendor/pygments-main/pygments/lexers/ml.py +7 -8
  144. data/vendor/pygments-main/pygments/lexers/modeling.py +1 -2
  145. data/vendor/pygments-main/pygments/lexers/modula2.py +3 -4
  146. data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
  147. data/vendor/pygments-main/pygments/lexers/mosel.py +1 -2
  148. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
  149. data/vendor/pygments-main/pygments/lexers/nimrod.py +1 -2
  150. data/vendor/pygments-main/pygments/lexers/nit.py +1 -2
  151. data/vendor/pygments-main/pygments/lexers/nix.py +1 -2
  152. data/vendor/pygments-main/pygments/lexers/oberon.py +1 -2
  153. data/vendor/pygments-main/pygments/lexers/objective.py +3 -4
  154. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -2
  155. data/vendor/pygments-main/pygments/lexers/other.py +1 -2
  156. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -2
  157. data/vendor/pygments-main/pygments/lexers/parsers.py +25 -26
  158. data/vendor/pygments-main/pygments/lexers/pascal.py +1 -2
  159. data/vendor/pygments-main/pygments/lexers/pawn.py +2 -5
  160. data/vendor/pygments-main/pygments/lexers/perl.py +1 -2
  161. data/vendor/pygments-main/pygments/lexers/php.py +3 -4
  162. data/vendor/pygments-main/pygments/lexers/pointless.py +1 -2
  163. data/vendor/pygments-main/pygments/lexers/pony.py +1 -2
  164. data/vendor/pygments-main/pygments/lexers/praat.py +1 -2
  165. data/vendor/pygments-main/pygments/lexers/prolog.py +3 -4
  166. data/vendor/pygments-main/pygments/lexers/promql.py +1 -2
  167. data/vendor/pygments-main/pygments/lexers/python.py +19 -12
  168. data/vendor/pygments-main/pygments/lexers/qvt.py +1 -2
  169. data/vendor/pygments-main/pygments/lexers/r.py +1 -2
  170. data/vendor/pygments-main/pygments/lexers/rdf.py +1 -2
  171. data/vendor/pygments-main/pygments/lexers/rebol.py +1 -2
  172. data/vendor/pygments-main/pygments/lexers/resource.py +1 -2
  173. data/vendor/pygments-main/pygments/lexers/ride.py +1 -2
  174. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -2
  175. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
  176. data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -2
  177. data/vendor/pygments-main/pygments/lexers/ruby.py +30 -24
  178. data/vendor/pygments-main/pygments/lexers/rust.py +1 -2
  179. data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
  180. data/vendor/pygments-main/pygments/lexers/scdoc.py +1 -2
  181. data/vendor/pygments-main/pygments/lexers/scripting.py +5 -6
  182. data/vendor/pygments-main/pygments/lexers/sgf.py +1 -2
  183. data/vendor/pygments-main/pygments/lexers/shell.py +5 -10
  184. data/vendor/pygments-main/pygments/lexers/sieve.py +1 -2
  185. data/vendor/pygments-main/pygments/lexers/slash.py +1 -2
  186. data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -2
  187. data/vendor/pygments-main/pygments/lexers/smv.py +1 -2
  188. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
  189. data/vendor/pygments-main/pygments/lexers/solidity.py +1 -2
  190. data/vendor/pygments-main/pygments/lexers/special.py +29 -28
  191. data/vendor/pygments-main/pygments/lexers/sql.py +8 -13
  192. data/vendor/pygments-main/pygments/lexers/stata.py +1 -2
  193. data/vendor/pygments-main/pygments/lexers/supercollider.py +3 -4
  194. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -2
  195. data/vendor/pygments-main/pygments/lexers/templates.py +15 -16
  196. data/vendor/pygments-main/pygments/lexers/teraterm.py +1 -2
  197. data/vendor/pygments-main/pygments/lexers/testing.py +1 -2
  198. data/vendor/pygments-main/pygments/lexers/text.py +1 -2
  199. data/vendor/pygments-main/pygments/lexers/textedit.py +3 -4
  200. data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -2
  201. data/vendor/pygments-main/pygments/lexers/theorem.py +7 -5
  202. data/vendor/pygments-main/pygments/lexers/tnt.py +1 -2
  203. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -2
  204. data/vendor/pygments-main/pygments/lexers/typoscript.py +1 -2
  205. data/vendor/pygments-main/pygments/lexers/unicon.py +1 -2
  206. data/vendor/pygments-main/pygments/lexers/urbi.py +3 -4
  207. data/vendor/pygments-main/pygments/lexers/usd.py +1 -2
  208. data/vendor/pygments-main/pygments/lexers/varnish.py +2 -3
  209. data/vendor/pygments-main/pygments/lexers/verification.py +1 -2
  210. data/vendor/pygments-main/pygments/lexers/web.py +1 -2
  211. data/vendor/pygments-main/pygments/lexers/webidl.py +1 -2
  212. data/vendor/pygments-main/pygments/lexers/webmisc.py +5 -5
  213. data/vendor/pygments-main/pygments/lexers/whiley.py +1 -2
  214. data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
  215. data/vendor/pygments-main/pygments/lexers/xorg.py +1 -2
  216. data/vendor/pygments-main/pygments/lexers/yang.py +1 -2
  217. data/vendor/pygments-main/pygments/lexers/zig.py +1 -2
  218. data/vendor/pygments-main/pygments/modeline.py +1 -2
  219. data/vendor/pygments-main/pygments/plugin.py +2 -3
  220. data/vendor/pygments-main/pygments/regexopt.py +1 -2
  221. data/vendor/pygments-main/pygments/scanner.py +1 -2
  222. data/vendor/pygments-main/pygments/sphinxext.py +1 -2
  223. data/vendor/pygments-main/pygments/style.py +3 -4
  224. data/vendor/pygments-main/pygments/styles/__init__.py +3 -2
  225. data/vendor/pygments-main/pygments/styles/abap.py +1 -2
  226. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  227. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  228. data/vendor/pygments-main/pygments/styles/arduino.py +1 -2
  229. data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
  230. data/vendor/pygments-main/pygments/styles/borland.py +1 -2
  231. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  232. data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
  233. data/vendor/pygments-main/pygments/styles/default.py +1 -2
  234. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  235. data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
  236. data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
  237. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  238. data/vendor/pygments-main/pygments/styles/inkpot.py +1 -2
  239. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
  240. data/vendor/pygments-main/pygments/styles/manni.py +1 -2
  241. data/vendor/pygments-main/pygments/styles/material.py +118 -0
  242. data/vendor/pygments-main/pygments/styles/monokai.py +1 -2
  243. data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
  244. data/vendor/pygments-main/pygments/styles/native.py +1 -2
  245. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
  246. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
  247. data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
  248. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  249. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
  250. data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
  251. data/vendor/pygments-main/pygments/styles/sas.py +1 -2
  252. data/vendor/pygments-main/pygments/styles/solarized.py +4 -2
  253. data/vendor/pygments-main/pygments/styles/stata_dark.py +1 -2
  254. data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
  255. data/vendor/pygments-main/pygments/styles/tango.py +1 -2
  256. data/vendor/pygments-main/pygments/styles/trac.py +1 -2
  257. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  258. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  259. data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
  260. data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
  261. data/vendor/pygments-main/pygments/token.py +1 -2
  262. data/vendor/pygments-main/pygments/unistring.py +1 -2
  263. data/vendor/pygments-main/pygments/util.py +2 -5
  264. metadata +21 -14
  265. 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.functional
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
 
@@ -0,0 +1,110 @@
1
+ """
2
+ pygments.lexers.futhark
3
+ ~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexer for the Futhark language
6
+
7
+ :copyright: Copyright 2006-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 RegexLexer, include, bygroups, default, words
14
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
15
+ Number, Punctuation, Error
16
+ from pygments import unistring as uni
17
+
18
+ __all__ = ['FutharkLexer']
19
+
20
+
21
+ line_re = re.compile('.*?\n')
22
+
23
+
24
+ class FutharkLexer(RegexLexer):
25
+ """
26
+ A Futhark lexer
27
+
28
+ .. versionadded:: 2.8.0
29
+ """
30
+ name = 'Futhark'
31
+ aliases = ['futhark']
32
+ filenames = ['*.fut']
33
+ mimetypes = ['text/x-futhark']
34
+
35
+ flags = re.MULTILINE | re.UNICODE
36
+
37
+ num_types = ('i8', 'i16', 'i32', 'i64', 'u8', 'u16', 'u32', 'u64', 'f32', 'f64')
38
+
39
+ other_types = ('bool', )
40
+
41
+ reserved = ('if', 'then', 'else', 'let', 'loop', 'in', 'with', 'type',
42
+ 'val', 'entry', 'for', 'while', 'do', 'case', 'match',
43
+ 'include', 'import', 'module', 'open', 'local', 'assert', '_')
44
+
45
+ ascii = ('NUL', 'SOH', '[SE]TX', 'EOT', 'ENQ', 'ACK',
46
+ 'BEL', 'BS', 'HT', 'LF', 'VT', 'FF', 'CR', 'S[OI]', 'DLE',
47
+ 'DC[1-4]', 'NAK', 'SYN', 'ETB', 'CAN',
48
+ 'EM', 'SUB', 'ESC', '[FGRU]S', 'SP', 'DEL')
49
+
50
+ num_postfix = r'(%s)?' % '|'.join(num_types)
51
+
52
+ identifier_re = '[a-zA-Z_][a-zA-Z_0-9\']*'
53
+
54
+ # opstart_re = '+\-\*/%=\!><\|&\^'
55
+
56
+ tokens = {
57
+ 'root': [
58
+ (r'--(.*?)\n', Comment.Single),
59
+ (r'\s+', Text.Whitespace),
60
+ (r'\(\)', Punctuation),
61
+ (r'\b(%s)(?!\')\b' % '|'.join(reserved), Keyword.Reserved),
62
+ (r'\b(%s)(?!\')\b' % '|'.join(num_types + other_types), Keyword.Type),
63
+
64
+ # Identifiers
65
+ (r'#\[([a-zA-Z_\(\) ]*)\]', Comment.Preproc),
66
+ (r'!?(%s\.)*%s' % (identifier_re, identifier_re), Name),
67
+
68
+ (r'\\', Operator),
69
+ (r'[-+/%=!><|&*^][-+/%=!><|&*^.]*', Operator),
70
+ (r'[][(),:;`{}]', Punctuation),
71
+
72
+ # Numbers
73
+ (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*' + num_postfix, Number.Float),
74
+ (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*'
75
+ r'(_*[pP][+-]?\d(_*\d)*)?' + num_postfix, Number.Float),
76
+ (r'\d(_*\d)*_*[eE][+-]?\d(_*\d)*' + num_postfix, Number.Float),
77
+ (r'\d(_*\d)*\.\d(_*\d)*(_*[eE][+-]?\d(_*\d)*)?' + num_postfix, Number.Float),
78
+ (r'0[bB]_*[01](_*[01])*' + num_postfix, Number.Bin),
79
+ (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*' + num_postfix, Number.Hex),
80
+ (r'\d(_*\d)*' + num_postfix, Number.Integer),
81
+
82
+ # Character/String Literals
83
+ (r"'", String.Char, 'character'),
84
+ (r'"', String, 'string'),
85
+ # Special
86
+ (r'\[[a-zA-Z_\d]*\]', Keyword.Type),
87
+ (r'\(\)', Name.Builtin),
88
+ ],
89
+ 'character': [
90
+ # Allows multi-chars, incorrectly.
91
+ (r"[^\\']'", String.Char, '#pop'),
92
+ (r"\\", String.Escape, 'escape'),
93
+ ("'", String.Char, '#pop'),
94
+ ],
95
+ 'string': [
96
+ (r'[^\\"]+', String),
97
+ (r"\\", String.Escape, 'escape'),
98
+ ('"', String, '#pop'),
99
+ ],
100
+
101
+ 'escape': [
102
+ (r'[abfnrtv"\'&\\]', String.Escape, '#pop'),
103
+ (r'\^[][' + uni.Lu + r'@^_]', String.Escape, '#pop'),
104
+ ('|'.join(ascii), String.Escape, '#pop'),
105
+ (r'o[0-7]+', String.Escape, '#pop'),
106
+ (r'x[\da-fA-F]+', String.Escape, '#pop'),
107
+ (r'\d+', String.Escape, '#pop'),
108
+ (r'\s+\\', String.Escape, '#pop'),
109
+ ],
110
+ }
@@ -1,4 +1,3 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.gdscript
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~
@@ -8,7 +7,7 @@
8
7
  Modified by Daniel J. Ramirez <djrmuv@gmail.com> based on the original
9
8
  python.py.
10
9
 
11
- :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
10
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
12
11
  :license: BSD, see LICENSE for details.
13
12
  """
14
13
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.go
4
3
  ~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for the Google Go 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
 
@@ -90,7 +89,7 @@ class GoLexer(RegexLexer):
90
89
  # -- raw_string_lit
91
90
  (r'`[^`]*`', String),
92
91
  # -- interpreted_string_lit
93
- (r'"(\\\\|\\"|[^"])*"', String),
92
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
94
93
  # Tokens
95
94
  (r'(<<=|>>=|<<|>>|<=|>=|&\^=|&\^|\+=|-=|\*=|/=|%=|&=|\|=|&&|\|\|'
96
95
  r'|<-|\+\+|--|==|!=|:=|\.\.\.|[+\-*/%&])', Operator),
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.grammar_notation
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for grammar notations like BNF.
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.graph
4
3
  ~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for graph query 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.graphics
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for computer graphics and plotting 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
 
@@ -425,7 +424,7 @@ class AsymptoteLexer(RegexLexer):
425
424
  ],
426
425
  'statements': [
427
426
  # simple string (TeX friendly)
428
- (r'"(\\\\|\\"|[^"])*"', String),
427
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
429
428
  # C style string (with character escapes)
430
429
  (r"'", String, 'string'),
431
430
  (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float),
@@ -775,7 +774,7 @@ class PovrayLexer(RegexLexer):
775
774
  (r'[0-9]+\.[0-9]*', Number.Float),
776
775
  (r'\.[0-9]+', Number.Float),
777
776
  (r'[0-9]+', Number.Integer),
778
- (r'"(\\\\|\\"|[^"])*"', String),
777
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
779
778
  (r'\s+', Text),
780
779
  ]
781
780
  }
@@ -0,0 +1,57 @@
1
+ """
2
+ pygments.lexers.graphviz
3
+ ~~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexer for the DOT language (graphviz).
6
+
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ from pygments.lexer import RegexLexer, bygroups
12
+ from pygments.token import Comment, Keyword, Operator, Name, String, Number, Punctuation, Whitespace
13
+
14
+
15
+ __all__ = ['GraphvizLexer']
16
+
17
+
18
+ class GraphvizLexer(RegexLexer):
19
+ """
20
+ For graphviz DOT graph description language.
21
+
22
+ .. versionadded:: 2.8
23
+ """
24
+ name = 'Graphviz'
25
+ aliases = ['graphviz', 'dot']
26
+ filenames = ['*.gv', '*.dot']
27
+ mimetypes = ['text/x-graphviz', 'text/vnd.graphviz']
28
+ tokens = {
29
+ 'root': [
30
+ (r'\s+', Whitespace),
31
+ (r'(#|//).*?$', Comment.Single),
32
+ (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
33
+ (r'(?i)(node|edge|graph|digraph|subgraph|strict)\b', Keyword),
34
+ (r'--|->', Operator),
35
+ (r'[{}[\]:;,]', Punctuation),
36
+ (r'(\b\D\w*)(\s*)(=)(\s*)',
37
+ bygroups(Name.Attribute, Whitespace, Punctuation, Whitespace),
38
+ 'attr_id'),
39
+ (r'\b(n|ne|e|se|s|sw|w|nw|c|_)\b', Name.Builtin),
40
+ (r'\b\D\w*', Name.Tag), # node
41
+ (r'[-]?((\.[0-9]+)|([0-9]+(\.[0-9]*)?))', Number),
42
+ (r'"(\\"|[^"])*?"', Name.Tag), # quoted node
43
+ (r'<', Punctuation, 'xml'),
44
+ ],
45
+ 'attr_id': [
46
+ (r'\b\D\w*', String, '#pop'),
47
+ (r'[-]?((\.[0-9]+)|([0-9]+(\.[0-9]*)?))', Number, '#pop'),
48
+ (r'"(\\"|[^"])*?"', String.Double, '#pop'),
49
+ (r'<', Punctuation, ('#pop', 'xml')),
50
+ ],
51
+ 'xml': [
52
+ (r'<', Punctuation, '#push'),
53
+ (r'>', Punctuation, '#pop'),
54
+ (r'\s+', Whitespace),
55
+ (r'[^<>\s]', Name.Tag),
56
+ ]
57
+ }
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.haskell
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Haskell 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
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.haxe
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Haxe and related 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
 
@@ -467,7 +466,7 @@ class HaxeLexer(ExtendedRegexLexer):
467
466
  (r'"', String.Double, ('#pop', 'expr-chain', 'string-double')),
468
467
 
469
468
  # EReg
470
- (r'~/(\\\\|\\/|[^/\n])*/[gimsu]*', String.Regex, ('#pop', 'expr-chain')),
469
+ (r'~/(\\\\|\\[^\\]|[^/\\\n])*/[gimsu]*', String.Regex, ('#pop', 'expr-chain')),
471
470
 
472
471
  # Array
473
472
  (r'\[', Punctuation, ('#pop', 'expr-chain', 'array-decl')),
@@ -722,7 +721,7 @@ class HaxeLexer(ExtendedRegexLexer):
722
721
  (r'"', String.Double, ('#pop', 'string-double')),
723
722
 
724
723
  # EReg
725
- (r'~/(\\\\|\\/|[^/\n])*/[gim]*', String.Regex, '#pop'),
724
+ (r'~/(\\\\|\\[^\\]|[^/\\\n])*/[gim]*', String.Regex, '#pop'),
726
725
 
727
726
  # Array
728
727
  (r'\[', Operator, ('#pop', 'array-decl')),
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.hdl
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for hardware descriptor 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
 
@@ -13,7 +12,7 @@ import re
13
12
 
14
13
  from pygments.lexer import RegexLexer, bygroups, include, using, this, words
15
14
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
16
- Number, Punctuation, Error
15
+ Number, Punctuation
17
16
 
18
17
  __all__ = ['VerilogLexer', 'SystemVerilogLexer', 'VhdlLexer']
19
18
 
@@ -51,7 +50,6 @@ class VerilogLexer(RegexLexer):
51
50
  (r'([0-9]+)|(\'o)[0-7]+', Number.Oct),
52
51
  (r'\'[01xz]', Number),
53
52
  (r'\d+[Ll]?', Number.Integer),
54
- (r'\*/', Error),
55
53
  (r'[~!%^&*+=|?:<>/-]', Operator),
56
54
  (r'[()\[\],.;\']', Punctuation),
57
55
  (r'`[a-zA-Z_]\w*', Name.Constant),
@@ -191,8 +189,6 @@ class SystemVerilogLexer(RegexLexer):
191
189
  (r'\'[01xXzZ]', Number),
192
190
  (r'[0-9][_0-9]*', Number.Integer),
193
191
 
194
- (r'\*/', Error),
195
-
196
192
  (r'[~!%^&*+=|?:<>/-]', Operator),
197
193
  (words(('inside', 'dist'), suffix=r'\b'), Operator.Word),
198
194
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.hexdump
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for hexadecimal dumps.
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.html
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for HTML, XML and related 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
 
@@ -369,8 +368,8 @@ class HamlLexer(ExtendedRegexLexer):
369
368
  (r'\w+', Name.Variable, '#pop'),
370
369
  (r'@\w+', Name.Variable.Instance, '#pop'),
371
370
  (r'\$\w+', Name.Variable.Global, '#pop'),
372
- (r"'(\\\\|\\'|[^'\n])*'", String, '#pop'),
373
- (r'"(\\\\|\\"|[^"\n])*"', String, '#pop'),
371
+ (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, '#pop'),
372
+ (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, '#pop'),
374
373
  ],
375
374
 
376
375
  'html-comment-block': [
@@ -481,8 +480,8 @@ class ScamlLexer(ExtendedRegexLexer):
481
480
  (r'\w+', Name.Variable, '#pop'),
482
481
  (r'@\w+', Name.Variable.Instance, '#pop'),
483
482
  (r'\$\w+', Name.Variable.Global, '#pop'),
484
- (r"'(\\\\|\\'|[^'\n])*'", String, '#pop'),
485
- (r'"(\\\\|\\"|[^"\n])*"', String, '#pop'),
483
+ (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, '#pop'),
484
+ (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, '#pop'),
486
485
  ],
487
486
 
488
487
  'html-comment-block': [
@@ -590,8 +589,8 @@ class PugLexer(ExtendedRegexLexer):
590
589
  (r'\w+', Name.Variable, '#pop'),
591
590
  (r'@\w+', Name.Variable.Instance, '#pop'),
592
591
  (r'\$\w+', Name.Variable.Global, '#pop'),
593
- (r"'(\\\\|\\'|[^'\n])*'", String, '#pop'),
594
- (r'"(\\\\|\\"|[^"\n])*"', String, '#pop'),
592
+ (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, '#pop'),
593
+ (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, '#pop'),
595
594
  ],
596
595
 
597
596
  'html-comment-block': [
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.idl
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for IDL.
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.igor
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Igor Pro.
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