pygments.rb 1.2.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +13 -0
  3. data/.github/workflows/ci.yml +40 -0
  4. data/.github/workflows/release.yml +24 -0
  5. data/.gitignore +5 -5
  6. data/.rubocop.yml +18 -0
  7. data/CHANGELOG.adoc +132 -0
  8. data/Gemfile +3 -1
  9. data/LICENSE +1 -1
  10. data/README.adoc +160 -0
  11. data/Rakefile +12 -21
  12. data/bench.rb +14 -8
  13. data/{cache-lexers.rb → cache_lexers.rb} +3 -2
  14. data/lexers +0 -0
  15. data/lib/pygments.rb +10 -11
  16. data/lib/pygments/lexer.rb +6 -6
  17. data/lib/pygments/mentos.py +23 -110
  18. data/lib/pygments/popen.rb +196 -275
  19. data/lib/pygments/version.rb +2 -2
  20. data/pygments.rb.gemspec +12 -10
  21. data/test/test_pygments.rb +50 -110
  22. data/vendor/pygments-main/{AUTHORS → Pygments-2.8.0.dist-info/AUTHORS} +26 -3
  23. data/vendor/pygments-main/Pygments-2.8.0.dist-info/INSTALLER +1 -0
  24. data/vendor/pygments-main/{LICENSE → Pygments-2.8.0.dist-info/LICENSE} +1 -1
  25. data/vendor/pygments-main/Pygments-2.8.0.dist-info/METADATA +48 -0
  26. data/vendor/pygments-main/Pygments-2.8.0.dist-info/RECORD +494 -0
  27. data/vendor/pygments-main/Pygments-2.8.0.dist-info/REQUESTED +0 -0
  28. data/vendor/pygments-main/Pygments-2.8.0.dist-info/WHEEL +5 -0
  29. data/vendor/pygments-main/Pygments-2.8.0.dist-info/entry_points.txt +3 -0
  30. data/vendor/pygments-main/Pygments-2.8.0.dist-info/top_level.txt +1 -0
  31. data/vendor/pygments-main/bin/pygmentize +8 -0
  32. data/vendor/pygments-main/pygments/__init__.py +6 -12
  33. data/vendor/pygments-main/pygments/__main__.py +17 -0
  34. data/vendor/pygments-main/pygments/cmdline.py +213 -184
  35. data/vendor/pygments-main/pygments/console.py +6 -10
  36. data/vendor/pygments-main/pygments/filter.py +4 -7
  37. data/vendor/pygments-main/pygments/filters/__init__.py +609 -22
  38. data/vendor/pygments-main/pygments/formatter.py +4 -5
  39. data/vendor/pygments-main/pygments/formatters/__init__.py +10 -10
  40. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -4
  41. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
  42. data/vendor/pygments-main/pygments/formatters/html.py +242 -139
  43. data/vendor/pygments-main/pygments/formatters/img.py +91 -50
  44. data/vendor/pygments-main/pygments/formatters/irc.py +39 -40
  45. data/vendor/pygments-main/pygments/formatters/latex.py +62 -33
  46. data/vendor/pygments-main/pygments/formatters/other.py +18 -17
  47. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -30
  48. data/vendor/pygments-main/pygments/formatters/svg.py +40 -5
  49. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -32
  50. data/vendor/pygments-main/pygments/formatters/terminal256.py +45 -14
  51. data/vendor/pygments-main/pygments/lexer.py +47 -44
  52. data/vendor/pygments-main/pygments/lexers/__init__.py +29 -17
  53. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -6
  54. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -16
  55. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +21 -18
  56. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1339
  57. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
  58. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -5
  59. data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -31
  60. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -3
  61. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1281 -0
  62. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
  63. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -21
  64. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -17
  65. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -3
  66. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -4
  67. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -126
  68. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +96 -58
  69. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
  70. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +112 -0
  71. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +279 -0
  72. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
  73. data/vendor/pygments-main/pygments/lexers/actionscript.py +14 -10
  74. data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
  75. data/vendor/pygments-main/pygments/lexers/algebra.py +20 -2
  76. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  77. data/vendor/pygments-main/pygments/lexers/amdgpu.py +48 -0
  78. data/vendor/pygments-main/pygments/lexers/ampl.py +3 -4
  79. data/vendor/pygments-main/pygments/lexers/apl.py +15 -16
  80. data/vendor/pygments-main/pygments/lexers/archetype.py +4 -5
  81. data/vendor/pygments-main/pygments/lexers/arrow.py +116 -0
  82. data/vendor/pygments-main/pygments/lexers/asm.py +440 -77
  83. data/vendor/pygments-main/pygments/lexers/automation.py +7 -2
  84. data/vendor/pygments-main/pygments/lexers/bare.py +103 -0
  85. data/vendor/pygments-main/pygments/lexers/basic.py +168 -7
  86. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -6
  87. data/vendor/pygments-main/pygments/lexers/boa.py +101 -0
  88. data/vendor/pygments-main/pygments/lexers/business.py +19 -5
  89. data/vendor/pygments-main/pygments/lexers/c_cpp.py +138 -48
  90. data/vendor/pygments-main/pygments/lexers/c_like.py +67 -43
  91. data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -8
  92. data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
  93. data/vendor/pygments-main/pygments/lexers/chapel.py +25 -16
  94. data/vendor/pygments-main/pygments/lexers/clean.py +135 -245
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
  96. data/vendor/pygments-main/pygments/lexers/configs.py +190 -38
  97. data/vendor/pygments-main/pygments/lexers/console.py +1 -2
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +54 -81
  99. data/vendor/pygments-main/pygments/lexers/csound.py +288 -188
  100. data/vendor/pygments-main/pygments/lexers/css.py +28 -23
  101. data/vendor/pygments-main/pygments/lexers/d.py +12 -8
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
  103. data/vendor/pygments-main/pygments/lexers/data.py +240 -98
  104. data/vendor/pygments-main/pygments/lexers/devicetree.py +108 -0
  105. data/vendor/pygments-main/pygments/lexers/diff.py +4 -5
  106. data/vendor/pygments-main/pygments/lexers/dotnet.py +46 -31
  107. data/vendor/pygments-main/pygments/lexers/dsls.py +146 -65
  108. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -19
  109. data/vendor/pygments-main/pygments/lexers/ecl.py +17 -5
  110. data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
  111. data/vendor/pygments-main/pygments/lexers/elm.py +5 -6
  112. data/vendor/pygments-main/pygments/lexers/email.py +150 -0
  113. data/vendor/pygments-main/pygments/lexers/erlang.py +29 -33
  114. data/vendor/pygments-main/pygments/lexers/esoteric.py +46 -20
  115. data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -14
  116. data/vendor/pygments-main/pygments/lexers/factor.py +3 -4
  117. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -2
  118. data/vendor/pygments-main/pygments/lexers/felix.py +1 -2
  119. data/vendor/pygments-main/pygments/lexers/floscript.py +82 -0
  120. data/vendor/pygments-main/pygments/lexers/forth.py +41 -41
  121. data/vendor/pygments-main/pygments/lexers/fortran.py +13 -10
  122. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -3
  123. data/vendor/pygments-main/pygments/lexers/freefem.py +897 -0
  124. data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
  125. data/vendor/pygments-main/pygments/lexers/futhark.py +110 -0
  126. data/vendor/pygments-main/pygments/lexers/gdscript.py +345 -0
  127. data/vendor/pygments-main/pygments/lexers/go.py +2 -3
  128. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +62 -6
  129. data/vendor/pygments-main/pygments/lexers/graph.py +14 -10
  130. data/vendor/pygments-main/pygments/lexers/graphics.py +274 -28
  131. data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
  132. data/vendor/pygments-main/pygments/lexers/haskell.py +48 -22
  133. data/vendor/pygments-main/pygments/lexers/haxe.py +8 -9
  134. data/vendor/pygments-main/pygments/lexers/hdl.py +176 -90
  135. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
  136. data/vendor/pygments-main/pygments/lexers/html.py +37 -26
  137. data/vendor/pygments-main/pygments/lexers/idl.py +19 -9
  138. data/vendor/pygments-main/pygments/lexers/igor.py +244 -113
  139. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
  140. data/vendor/pygments-main/pygments/lexers/installers.py +1 -2
  141. data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -16
  142. data/vendor/pygments-main/pygments/lexers/iolang.py +3 -4
  143. data/vendor/pygments-main/pygments/lexers/j.py +4 -5
  144. data/vendor/pygments-main/pygments/lexers/javascript.py +115 -104
  145. data/vendor/pygments-main/pygments/lexers/julia.py +44 -47
  146. data/vendor/pygments-main/pygments/lexers/jvm.py +368 -202
  147. data/vendor/pygments-main/pygments/lexers/lisp.py +887 -810
  148. data/vendor/pygments-main/pygments/lexers/make.py +12 -9
  149. data/vendor/pygments-main/pygments/lexers/markup.py +212 -45
  150. data/vendor/pygments-main/pygments/lexers/math.py +1 -2
  151. data/vendor/pygments-main/pygments/lexers/matlab.py +2705 -88
  152. data/vendor/pygments-main/pygments/lexers/mime.py +225 -0
  153. data/vendor/pygments-main/pygments/lexers/ml.py +203 -15
  154. data/vendor/pygments-main/pygments/lexers/modeling.py +26 -19
  155. data/vendor/pygments-main/pygments/lexers/modula2.py +27 -9
  156. data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
  157. data/vendor/pygments-main/pygments/lexers/mosel.py +447 -0
  158. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
  159. data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -5
  160. data/vendor/pygments-main/pygments/lexers/nit.py +1 -2
  161. data/vendor/pygments-main/pygments/lexers/nix.py +1 -2
  162. data/vendor/pygments-main/pygments/lexers/oberon.py +17 -2
  163. data/vendor/pygments-main/pygments/lexers/objective.py +18 -19
  164. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -2
  165. data/vendor/pygments-main/pygments/lexers/other.py +1 -2
  166. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -2
  167. data/vendor/pygments-main/pygments/lexers/parsers.py +47 -83
  168. data/vendor/pygments-main/pygments/lexers/pascal.py +22 -23
  169. data/vendor/pygments-main/pygments/lexers/pawn.py +31 -28
  170. data/vendor/pygments-main/pygments/lexers/perl.py +260 -149
  171. data/vendor/pygments-main/pygments/lexers/php.py +66 -13
  172. data/vendor/pygments-main/pygments/lexers/pointless.py +70 -0
  173. data/vendor/pygments-main/pygments/lexers/pony.py +93 -0
  174. data/vendor/pygments-main/pygments/lexers/praat.py +38 -31
  175. data/vendor/pygments-main/pygments/lexers/prolog.py +38 -39
  176. data/vendor/pygments-main/pygments/lexers/promql.py +182 -0
  177. data/vendor/pygments-main/pygments/lexers/python.py +450 -231
  178. data/vendor/pygments-main/pygments/lexers/qvt.py +6 -7
  179. data/vendor/pygments-main/pygments/lexers/r.py +13 -276
  180. data/vendor/pygments-main/pygments/lexers/rdf.py +232 -40
  181. data/vendor/pygments-main/pygments/lexers/rebol.py +8 -9
  182. data/vendor/pygments-main/pygments/lexers/resource.py +2 -3
  183. data/vendor/pygments-main/pygments/lexers/ride.py +138 -0
  184. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -2
  185. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
  186. data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -32
  187. data/vendor/pygments-main/pygments/lexers/ruby.py +50 -46
  188. data/vendor/pygments-main/pygments/lexers/rust.py +76 -73
  189. data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
  190. data/vendor/pygments-main/pygments/lexers/scdoc.py +82 -0
  191. data/vendor/pygments-main/pygments/lexers/scripting.py +79 -18
  192. data/vendor/pygments-main/pygments/lexers/sgf.py +60 -0
  193. data/vendor/pygments-main/pygments/lexers/shell.py +164 -49
  194. data/vendor/pygments-main/pygments/lexers/sieve.py +68 -0
  195. data/vendor/pygments-main/pygments/lexers/slash.py +184 -0
  196. data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -3
  197. data/vendor/pygments-main/pygments/lexers/smv.py +3 -4
  198. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
  199. data/vendor/pygments-main/pygments/lexers/solidity.py +91 -0
  200. data/vendor/pygments-main/pygments/lexers/special.py +31 -28
  201. data/vendor/pygments-main/pygments/lexers/sql.py +330 -179
  202. data/vendor/pygments-main/pygments/lexers/stata.py +107 -45
  203. data/vendor/pygments-main/pygments/lexers/supercollider.py +8 -4
  204. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -2
  205. data/vendor/pygments-main/pygments/lexers/templates.py +116 -136
  206. data/vendor/pygments-main/pygments/lexers/teraterm.py +334 -0
  207. data/vendor/pygments-main/pygments/lexers/testing.py +6 -7
  208. data/vendor/pygments-main/pygments/lexers/text.py +2 -2
  209. data/vendor/pygments-main/pygments/lexers/textedit.py +6 -7
  210. data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -14
  211. data/vendor/pygments-main/pygments/lexers/theorem.py +74 -56
  212. data/vendor/pygments-main/pygments/lexers/tnt.py +262 -0
  213. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -2
  214. data/vendor/pygments-main/pygments/lexers/typoscript.py +4 -12
  215. data/vendor/pygments-main/pygments/lexers/unicon.py +411 -0
  216. data/vendor/pygments-main/pygments/lexers/urbi.py +16 -4
  217. data/vendor/pygments-main/pygments/lexers/usd.py +89 -0
  218. data/vendor/pygments-main/pygments/lexers/varnish.py +4 -5
  219. data/vendor/pygments-main/pygments/lexers/verification.py +13 -11
  220. data/vendor/pygments-main/pygments/lexers/web.py +1 -2
  221. data/vendor/pygments-main/pygments/lexers/webidl.py +298 -0
  222. data/vendor/pygments-main/pygments/lexers/webmisc.py +35 -32
  223. data/vendor/pygments-main/pygments/lexers/whiley.py +5 -6
  224. data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
  225. data/vendor/pygments-main/pygments/lexers/xorg.py +5 -5
  226. data/vendor/pygments-main/pygments/lexers/yang.py +103 -0
  227. data/vendor/pygments-main/pygments/lexers/zig.py +123 -0
  228. data/vendor/pygments-main/pygments/modeline.py +1 -2
  229. data/vendor/pygments-main/pygments/plugin.py +4 -3
  230. data/vendor/pygments-main/pygments/regexopt.py +1 -2
  231. data/vendor/pygments-main/pygments/scanner.py +2 -3
  232. data/vendor/pygments-main/pygments/sphinxext.py +2 -5
  233. data/vendor/pygments-main/pygments/style.py +61 -25
  234. data/vendor/pygments-main/pygments/styles/__init__.py +12 -5
  235. data/vendor/pygments-main/pygments/styles/abap.py +1 -2
  236. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  237. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  238. data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
  239. data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
  240. data/vendor/pygments-main/pygments/styles/borland.py +1 -2
  241. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  242. data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
  243. data/vendor/pygments-main/pygments/styles/default.py +1 -2
  244. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  245. data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
  246. data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
  247. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  248. data/vendor/pygments-main/pygments/styles/inkpot.py +66 -0
  249. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
  250. data/vendor/pygments-main/pygments/styles/manni.py +1 -2
  251. data/vendor/pygments-main/pygments/styles/material.py +118 -0
  252. data/vendor/pygments-main/pygments/styles/monokai.py +4 -4
  253. data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
  254. data/vendor/pygments-main/pygments/styles/native.py +1 -2
  255. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
  256. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
  257. data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
  258. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  259. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
  260. data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
  261. data/vendor/pygments-main/pygments/styles/sas.py +1 -2
  262. data/vendor/pygments-main/pygments/styles/solarized.py +136 -0
  263. data/vendor/pygments-main/pygments/styles/stata_dark.py +40 -0
  264. data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -16
  265. data/vendor/pygments-main/pygments/styles/tango.py +1 -2
  266. data/vendor/pygments-main/pygments/styles/trac.py +1 -2
  267. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  268. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  269. data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
  270. data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
  271. data/vendor/pygments-main/pygments/token.py +1 -2
  272. data/vendor/pygments-main/pygments/unistring.py +47 -109
  273. data/vendor/pygments-main/pygments/util.py +16 -96
  274. metadata +76 -137
  275. data/CHANGELOG.md +0 -105
  276. data/README.md +0 -121
  277. data/circle.yml +0 -20
  278. data/test/test_data.c +0 -2581
  279. data/test/test_data.py +0 -514
  280. data/test/test_data_generated +0 -2582
  281. data/vendor/custom_lexers/github.py +0 -565
  282. data/vendor/pygments-main/CHANGES +0 -1186
  283. data/vendor/pygments-main/MANIFEST.in +0 -6
  284. data/vendor/pygments-main/Makefile +0 -65
  285. data/vendor/pygments-main/README.rst +0 -39
  286. data/vendor/pygments-main/REVISION +0 -1
  287. data/vendor/pygments-main/TODO +0 -12
  288. data/vendor/pygments-main/doc/Makefile +0 -153
  289. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  290. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  291. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  292. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  293. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  294. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  295. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  296. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  297. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  298. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  299. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  300. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  301. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  302. data/vendor/pygments-main/doc/conf.py +0 -241
  303. data/vendor/pygments-main/doc/docs/api.rst +0 -354
  304. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  305. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  306. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
  307. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  308. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  309. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  310. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  311. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  312. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  313. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  314. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
  315. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  316. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  317. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  318. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  319. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  320. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  321. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  322. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  323. data/vendor/pygments-main/doc/download.rst +0 -41
  324. data/vendor/pygments-main/doc/faq.rst +0 -139
  325. data/vendor/pygments-main/doc/index.rst +0 -54
  326. data/vendor/pygments-main/doc/languages.rst +0 -154
  327. data/vendor/pygments-main/doc/make.bat +0 -190
  328. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  329. data/vendor/pygments-main/external/autopygmentize +0 -101
  330. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  331. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  332. data/vendor/pygments-main/external/moin-parser.py +0 -112
  333. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  334. data/vendor/pygments-main/external/rst-directive.py +0 -82
  335. data/vendor/pygments-main/pygmentize +0 -8
  336. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  337. data/vendor/pygments-main/requirements.txt +0 -5
  338. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  339. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  340. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  341. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  342. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  343. data/vendor/pygments-main/scripts/pylintrc +0 -301
  344. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  345. data/vendor/pygments-main/setup.cfg +0 -10
  346. data/vendor/pygments-main/setup.py +0 -77
  347. data/vendor/pygments-main/tox.ini +0 -7
  348. data/vendor/simplejson/.gitignore +0 -10
  349. data/vendor/simplejson/.travis.yml +0 -5
  350. data/vendor/simplejson/CHANGES.txt +0 -291
  351. data/vendor/simplejson/LICENSE.txt +0 -19
  352. data/vendor/simplejson/MANIFEST.in +0 -5
  353. data/vendor/simplejson/README.rst +0 -19
  354. data/vendor/simplejson/conf.py +0 -179
  355. data/vendor/simplejson/index.rst +0 -628
  356. data/vendor/simplejson/scripts/make_docs.py +0 -18
  357. data/vendor/simplejson/setup.py +0 -104
  358. data/vendor/simplejson/simplejson/__init__.py +0 -510
  359. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  360. data/vendor/simplejson/simplejson/decoder.py +0 -425
  361. data/vendor/simplejson/simplejson/encoder.py +0 -567
  362. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  363. data/vendor/simplejson/simplejson/scanner.py +0 -77
  364. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  365. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  366. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  367. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  368. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  369. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  370. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  371. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  372. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  373. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  374. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  375. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  376. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  377. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  378. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  379. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  380. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  381. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  382. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  383. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  384. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  385. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  386. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  387. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  388. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -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,23 +1,22 @@
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-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
12
11
  import re
13
12
 
14
13
  from pygments.lexer import Lexer, RegexLexer, bygroups, do_insertions, \
15
- default, include
14
+ default, include, inherit
16
15
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
17
16
  Number, Punctuation, Generic
18
17
  from pygments import unistring as uni
19
18
 
20
- __all__ = ['HaskellLexer', 'IdrisLexer', 'AgdaLexer', 'CryptolLexer',
19
+ __all__ = ['HaskellLexer', 'HspecLexer', 'IdrisLexer', 'AgdaLexer', 'CryptolLexer',
21
20
  'LiterateHaskellLexer', 'LiterateIdrisLexer', 'LiterateAgdaLexer',
22
21
  'LiterateCryptolLexer', 'KokaLexer']
23
22
 
@@ -66,17 +65,22 @@ class HaskellLexer(RegexLexer):
66
65
  (r"(')[" + uni.Lu + r"][\w\']*", Keyword.Type),
67
66
  (r"(')\[[^\]]*\]", Keyword.Type), # tuples and lists get special treatment in GHC
68
67
  (r"(')\([^)]*\)", Keyword.Type), # ..
68
+ (r"(')[:!#$%&*+.\\/<=>?@^|~-]+", Keyword.Type), # promoted type operators
69
69
  # Operators
70
70
  (r'\\(?![:!#$%&*+.\\/<=>?@^|~-]+)', Name.Function), # lambda operator
71
71
  (r'(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)', Operator.Word), # specials
72
72
  (r':[:!#$%&*+.\\/<=>?@^|~-]*', Keyword.Type), # Constructor operators
73
73
  (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator), # Other operators
74
74
  # Numbers
75
- (r'\d+[eE][+-]?\d+', Number.Float),
76
- (r'\d+\.\d+([eE][+-]?\d+)?', Number.Float),
77
- (r'0[oO][0-7]+', Number.Oct),
78
- (r'0[xX][\da-fA-F]+', Number.Hex),
79
- (r'\d+', Number.Integer),
75
+ (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*', Number.Float),
76
+ (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*'
77
+ r'(_*[pP][+-]?\d(_*\d)*)?', Number.Float),
78
+ (r'\d(_*\d)*_*[eE][+-]?\d(_*\d)*', Number.Float),
79
+ (r'\d(_*\d)*\.\d(_*\d)*(_*[eE][+-]?\d(_*\d)*)?', Number.Float),
80
+ (r'0[bB]_*[01](_*[01])*', Number.Bin),
81
+ (r'0[oO]_*[0-7](_*[0-7])*', Number.Oct),
82
+ (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*', Number.Hex),
83
+ (r'\d(_*\d)*', Number.Integer),
80
84
  # Character/String Literals
81
85
  (r"'", String.Char, 'character'),
82
86
  (r'"', String, 'string'),
@@ -154,6 +158,28 @@ class HaskellLexer(RegexLexer):
154
158
  }
155
159
 
156
160
 
161
+ class HspecLexer(HaskellLexer):
162
+ """
163
+ A Haskell lexer with support for Hspec constructs.
164
+
165
+ .. versionadded:: 2.4.0
166
+ """
167
+
168
+ name = 'Hspec'
169
+ aliases = ['hspec']
170
+ filenames = []
171
+ mimetypes = []
172
+
173
+ tokens = {
174
+ 'root': [
175
+ (r'(it\s*)("[^"]*")', bygroups(Text, String.Doc)),
176
+ (r'(describe\s*)("[^"]*")', bygroups(Text, String.Doc)),
177
+ (r'(context\s*)("[^"]*")', bygroups(Text, String.Doc)),
178
+ inherit,
179
+ ],
180
+ }
181
+
182
+
157
183
  class IdrisLexer(RegexLexer):
158
184
  """
159
185
  A lexer for the dependently typed programming language Idris.
@@ -171,6 +197,7 @@ class IdrisLexer(RegexLexer):
171
197
  'if', 'in', 'infix[lr]?', 'instance', 'rewrite', 'auto',
172
198
  'namespace', 'codata', 'mutual', 'private', 'public', 'abstract',
173
199
  'total', 'partial',
200
+ 'interface', 'implementation', 'export', 'covering', 'constructor',
174
201
  'let', 'proof', 'of', 'then', 'static', 'where', '_', 'with',
175
202
  'pattern', 'term', 'syntax', 'prefix',
176
203
  'postulate', 'parameters', 'record', 'dsl', 'impossible', 'implicit',
@@ -187,7 +214,7 @@ class IdrisLexer(RegexLexer):
187
214
  tokens = {
188
215
  'root': [
189
216
  # Comments
190
- (r'^(\s*)(%%%s)' % '|'.join(directives),
217
+ (r'^(\s*)(%%(%s))' % '|'.join(directives),
191
218
  bygroups(Text, Keyword.Reserved)),
192
219
  (r'(\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$', bygroups(Text, Comment.Single)),
193
220
  (r'(\s*)(\|{3}.*?)$', bygroups(Text, Comment.Single)),
@@ -299,10 +326,10 @@ class AgdaLexer(RegexLexer):
299
326
  # Identifiers
300
327
  (r'\b(%s)(?!\')\b' % '|'.join(reserved), Keyword.Reserved),
301
328
  (r'(import|module)(\s+)', bygroups(Keyword.Reserved, Text), 'module'),
302
- (r'\b(Set|Prop)\b', Keyword.Type),
329
+ (r'\b(Set|Prop)[\u2080-\u2089]*\b', Keyword.Type),
303
330
  # Special Symbols
304
331
  (r'(\(|\)|\{|\})', Operator),
305
- (u'(\\.{1,3}|\\||\u039B|\u2200|\u2192|:|=|->)', Operator.Word),
332
+ (r'(\.{1,3}|\||\u03BB|\u2200|\u2192|:|=|->)', Operator.Word),
306
333
  # Numbers
307
334
  (r'\d+[eE][+-]?\d+', Number.Float),
308
335
  (r'\d+\.\d+([eE][+-]?\d+)?', Number.Float),
@@ -418,8 +445,8 @@ class CryptolLexer(RegexLexer):
418
445
  (r'[A-Z]\w*', Keyword.Type),
419
446
  (r'(_[\w\']+|[a-z][\w\']*)', Name.Function),
420
447
  # TODO: these don't match the comments in docs, remove.
421
- #(r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single),
422
- #(r'{-', Comment.Multiline, 'comment'),
448
+ # (r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single),
449
+ # (r'{-', Comment.Multiline, 'comment'),
423
450
  (r',', Punctuation),
424
451
  (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator),
425
452
  # (HACK, but it makes sense to push two instances, believe me)
@@ -455,10 +482,10 @@ class CryptolLexer(RegexLexer):
455
482
  ],
456
483
  }
457
484
 
458
- EXTRA_KEYWORDS = set(('join', 'split', 'reverse', 'transpose', 'width',
459
- 'length', 'tail', '<<', '>>', '<<<', '>>>', 'const',
460
- 'reg', 'par', 'seq', 'ASSERT', 'undefined', 'error',
461
- 'trace'))
485
+ EXTRA_KEYWORDS = {'join', 'split', 'reverse', 'transpose', 'width',
486
+ 'length', 'tail', '<<', '>>', '<<<', '>>>', 'const',
487
+ 'reg', 'par', 'seq', 'ASSERT', 'undefined', 'error',
488
+ 'trace'}
462
489
 
463
490
  def get_tokens_unprocessed(self, text):
464
491
  stack = ['root']
@@ -531,8 +558,7 @@ class LiterateLexer(Lexer):
531
558
  latex += line
532
559
  insertions.append((len(code),
533
560
  list(lxlexer.get_tokens_unprocessed(latex))))
534
- for item in do_insertions(insertions, self.baselexer.get_tokens_unprocessed(code)):
535
- yield item
561
+ yield from do_insertions(insertions, self.baselexer.get_tokens_unprocessed(code))
536
562
 
537
563
 
538
564
  class LiterateHaskellLexer(LiterateLexer):
@@ -677,10 +703,10 @@ class KokaLexer(RegexLexer):
677
703
  symbols = r'[$%&*+@!/\\^~=.:\-?|<>]+'
678
704
 
679
705
  # symbol boundary: an operator keyword should not be followed by any of these
680
- sboundary = '(?!'+symbols+')'
706
+ sboundary = '(?!' + symbols + ')'
681
707
 
682
708
  # name boundary: a keyword should not be followed by any of these
683
- boundary = '(?![\w/])'
709
+ boundary = r'(?![\w/])'
684
710
 
685
711
  # koka token abstractions
686
712
  tokenType = Name.Attribute
@@ -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-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -43,7 +42,7 @@ class HaxeLexer(ExtendedRegexLexer):
43
42
  typeid = r'_*[A-Z]\w*'
44
43
 
45
44
  # combined ident and dollar and idtype
46
- ident = r'(?:_*[a-z]\w*|_+[0-9]\w*|' + typeid + '|_+|\$\w+)'
45
+ ident = r'(?:_*[a-z]\w*|_+[0-9]\w*|' + typeid + r'|_+|\$\w+)'
47
46
 
48
47
  binop = (r'(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|'
49
48
  r'!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|'
@@ -182,7 +181,7 @@ class HaxeLexer(ExtendedRegexLexer):
182
181
  (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float),
183
182
  (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float),
184
183
  (r'[0-9]+\.[0-9]+', Number.Float),
185
- (r'[0-9]+\.(?!' + ident + '|\.\.)', Number.Float),
184
+ (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float),
186
185
 
187
186
  # Int
188
187
  (r'0x[0-9a-fA-F]+', Number.Hex),
@@ -219,7 +218,7 @@ class HaxeLexer(ExtendedRegexLexer):
219
218
  (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'preproc-expr-chain')),
220
219
  (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'preproc-expr-chain')),
221
220
  (r'[0-9]+\.[0-9]+', Number.Float, ('#pop', 'preproc-expr-chain')),
222
- (r'[0-9]+\.(?!' + ident + '|\.\.)', Number.Float, ('#pop', 'preproc-expr-chain')),
221
+ (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float, ('#pop', 'preproc-expr-chain')),
223
222
 
224
223
  # Int
225
224
  (r'0x[0-9a-fA-F]+', Number.Hex, ('#pop', 'preproc-expr-chain')),
@@ -456,7 +455,7 @@ class HaxeLexer(ExtendedRegexLexer):
456
455
  (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'expr-chain')),
457
456
  (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'expr-chain')),
458
457
  (r'[0-9]+\.[0-9]+', Number.Float, ('#pop', 'expr-chain')),
459
- (r'[0-9]+\.(?!' + ident + '|\.\.)', Number.Float, ('#pop', 'expr-chain')),
458
+ (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float, ('#pop', 'expr-chain')),
460
459
 
461
460
  # Int
462
461
  (r'0x[0-9a-fA-F]+', Number.Hex, ('#pop', 'expr-chain')),
@@ -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')),
@@ -711,7 +710,7 @@ class HaxeLexer(ExtendedRegexLexer):
711
710
  (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float, '#pop'),
712
711
  (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float, '#pop'),
713
712
  (r'[0-9]+\.[0-9]+', Number.Float, '#pop'),
714
- (r'[0-9]+\.(?!' + ident + '|\.\.)', Number.Float, '#pop'),
713
+ (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float, '#pop'),
715
714
 
716
715
  # Int
717
716
  (r'0x[0-9a-fA-F]+', Number.Hex, '#pop'),
@@ -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-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -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),
@@ -105,11 +103,12 @@ class VerilogLexer(RegexLexer):
105
103
  (words((
106
104
  'byte', 'shortint', 'int', 'longint', 'integer', 'time',
107
105
  'bit', 'logic', 'reg', 'supply0', 'supply1', 'tri', 'triand',
108
- 'trior', 'tri0', 'tri1', 'trireg', 'uwire', 'wire', 'wand', 'wo'
106
+ 'trior', 'tri0', 'tri1', 'trireg', 'uwire', 'wire', 'wand', 'wor'
109
107
  'shortreal', 'real', 'realtime'), suffix=r'\b'),
110
108
  Keyword.Type),
111
109
  (r'[a-zA-Z_]\w*:(?!:)', Name.Label),
112
110
  (r'\$?[a-zA-Z_]\w*', Name),
111
+ (r'\\(\S+)', Name),
113
112
  ],
114
113
  'string': [
115
114
  (r'"', String, '#pop'),
@@ -131,14 +130,18 @@ class VerilogLexer(RegexLexer):
131
130
  ]
132
131
  }
133
132
 
134
- def get_tokens_unprocessed(self, text):
135
- for index, token, value in \
136
- RegexLexer.get_tokens_unprocessed(self, text):
137
- # Convention: mark all upper case names as constants
138
- if token is Name:
139
- if value.isupper():
140
- token = Name.Constant
141
- yield index, token, value
133
+ def analyse_text(text):
134
+ """Verilog code will use one of reg/wire/assign for sure, and that
135
+ is not common elsewhere."""
136
+ result = 0
137
+ if 'reg' in text:
138
+ result += 0.1
139
+ if 'wire' in text:
140
+ result += 0.1
141
+ if 'assign' in text:
142
+ result += 0.1
143
+
144
+ return result
142
145
 
143
146
 
144
147
  class SystemVerilogLexer(RegexLexer):
@@ -170,91 +173,183 @@ class SystemVerilogLexer(RegexLexer):
170
173
  (r'[{}#@]', Punctuation),
171
174
  (r'L?"', String, 'string'),
172
175
  (r"L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char),
176
+
173
177
  (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float),
174
178
  (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
175
- (r'([0-9]+)|(\'h)[0-9a-fA-F]+', Number.Hex),
176
- (r'([0-9]+)|(\'b)[01]+', Number.Bin),
177
- (r'([0-9]+)|(\'d)[0-9]+', Number.Integer),
178
- (r'([0-9]+)|(\'o)[0-7]+', Number.Oct),
179
- (r'\'[01xz]', Number),
180
- (r'\d+[Ll]?', Number.Integer),
181
- (r'\*/', Error),
179
+
180
+ (r'([1-9][_0-9]*)?\s*\'[sS]?[bB]\s*[xXzZ?01][_xXzZ?01]*',
181
+ Number.Bin),
182
+ (r'([1-9][_0-9]*)?\s*\'[sS]?[oO]\s*[xXzZ?0-7][_xXzZ?0-7]*',
183
+ Number.Oct),
184
+ (r'([1-9][_0-9]*)?\s*\'[sS]?[dD]\s*[xXzZ?0-9][_xXzZ?0-9]*',
185
+ Number.Integer),
186
+ (r'([1-9][_0-9]*)?\s*\'[sS]?[hH]\s*[xXzZ?0-9a-fA-F][_xXzZ?0-9a-fA-F]*',
187
+ Number.Hex),
188
+
189
+ (r'\'[01xXzZ]', Number),
190
+ (r'[0-9][_0-9]*', Number.Integer),
191
+
182
192
  (r'[~!%^&*+=|?:<>/-]', Operator),
183
- (r'[()\[\],.;\']', Punctuation),
193
+ (words(('inside', 'dist'), suffix=r'\b'), Operator.Word),
194
+
195
+ (r'[()\[\],.;\'$]', Punctuation),
184
196
  (r'`[a-zA-Z_]\w*', Name.Constant),
185
197
 
186
198
  (words((
187
- 'accept_on', 'alias', 'always', 'always_comb', 'always_ff', 'always_latch',
188
- 'and', 'assert', 'assign', 'assume', 'automatic', 'before', 'begin', 'bind', 'bins',
189
- 'binsof', 'bit', 'break', 'buf', 'bufif0', 'bufif1', 'byte', 'case', 'casex', 'casez',
190
- 'cell', 'chandle', 'checker', 'class', 'clocking', 'cmos', 'config', 'const', 'constraint',
191
- 'context', 'continue', 'cover', 'covergroup', 'coverpoint', 'cross', 'deassign',
192
- 'default', 'defparam', 'design', 'disable', 'dist', 'do', 'edge', 'else', 'end', 'endcase',
193
- 'endchecker', 'endclass', 'endclocking', 'endconfig', 'endfunction', 'endgenerate',
194
- 'endgroup', 'endinterface', 'endmodule', 'endpackage', 'endprimitive',
195
- 'endprogram', 'endproperty', 'endsequence', 'endspecify', 'endtable',
196
- 'endtask', 'enum', 'event', 'eventually', 'expect', 'export', 'extends', 'extern',
197
- 'final', 'first_match', 'for', 'force', 'foreach', 'forever', 'fork', 'forkjoin',
198
- 'function', 'generate', 'genvar', 'global', 'highz0', 'highz1', 'if', 'iff', 'ifnone',
199
- 'ignore_bins', 'illegal_bins', 'implies', 'import', 'incdir', 'include',
200
- 'initial', 'inout', 'input', 'inside', 'instance', 'int', 'integer', 'interface',
201
- 'intersect', 'join', 'join_any', 'join_none', 'large', 'let', 'liblist', 'library',
202
- 'local', 'localparam', 'logic', 'longint', 'macromodule', 'matches', 'medium',
203
- 'modport', 'module', 'nand', 'negedge', 'new', 'nexttime', 'nmos', 'nor', 'noshowcancelled',
204
- 'not', 'notif0', 'notif1', 'null', 'or', 'output', 'package', 'packed', 'parameter',
205
- 'pmos', 'posedge', 'primitive', 'priority', 'program', 'property', 'protected',
206
- 'pull0', 'pull1', 'pulldown', 'pullup', 'pulsestyle_ondetect', 'pulsestyle_onevent',
207
- 'pure', 'rand', 'randc', 'randcase', 'randsequence', 'rcmos', 'real', 'realtime',
208
- 'ref', 'reg', 'reject_on', 'release', 'repeat', 'restrict', 'return', 'rnmos',
209
- 'rpmos', 'rtran', 'rtranif0', 'rtranif1', 's_always', 's_eventually', 's_nexttime',
210
- 's_until', 's_until_with', 'scalared', 'sequence', 'shortint', 'shortreal',
211
- 'showcancelled', 'signed', 'small', 'solve', 'specify', 'specparam', 'static',
212
- 'string', 'strong', 'strong0', 'strong1', 'struct', 'super', 'supply0', 'supply1',
213
- 'sync_accept_on', 'sync_reject_on', 'table', 'tagged', 'task', 'this', 'throughout',
214
- 'time', 'timeprecision', 'timeunit', 'tran', 'tranif0', 'tranif1', 'tri', 'tri0',
215
- 'tri1', 'triand', 'trior', 'trireg', 'type', 'typedef', 'union', 'unique', 'unique0',
216
- 'unsigned', 'until', 'until_with', 'untyped', 'use', 'uwire', 'var', 'vectored',
217
- 'virtual', 'void', 'wait', 'wait_order', 'wand', 'weak', 'weak0', 'weak1', 'while',
218
- 'wildcard', 'wire', 'with', 'within', 'wor', 'xnor', 'xor'), suffix=r'\b'),
199
+ 'accept_on', 'alias', 'always', 'always_comb', 'always_ff',
200
+ 'always_latch', 'and', 'assert', 'assign', 'assume', 'automatic',
201
+ 'before', 'begin', 'bind', 'bins', 'binsof', 'break', 'buf',
202
+ 'bufif0', 'bufif1', 'case', 'casex', 'casez', 'cell',
203
+ 'checker', 'clocking', 'cmos', 'config',
204
+ 'constraint', 'context', 'continue', 'cover', 'covergroup',
205
+ 'coverpoint', 'cross', 'deassign', 'default', 'defparam', 'design',
206
+ 'disable', 'do', 'edge', 'else', 'end', 'endcase',
207
+ 'endchecker', 'endclocking', 'endconfig', 'endfunction',
208
+ 'endgenerate', 'endgroup', 'endinterface', 'endmodule', 'endpackage',
209
+ 'endprimitive', 'endprogram', 'endproperty', 'endsequence',
210
+ 'endspecify', 'endtable', 'endtask', 'enum', 'eventually',
211
+ 'expect', 'export', 'extern', 'final', 'first_match',
212
+ 'for', 'force', 'foreach', 'forever', 'fork', 'forkjoin', 'function',
213
+ 'generate', 'genvar', 'global', 'highz0', 'highz1', 'if', 'iff',
214
+ 'ifnone', 'ignore_bins', 'illegal_bins', 'implies', 'implements', 'import',
215
+ 'incdir', 'include', 'initial', 'inout', 'input',
216
+ 'instance', 'interconnect', 'interface', 'intersect', 'join',
217
+ 'join_any', 'join_none', 'large', 'let', 'liblist', 'library',
218
+ 'local', 'localparam', 'macromodule', 'matches',
219
+ 'medium', 'modport', 'module', 'nand', 'negedge', 'nettype', 'new', 'nexttime',
220
+ 'nmos', 'nor', 'noshowcancelled', 'not', 'notif0', 'notif1', 'null',
221
+ 'or', 'output', 'package', 'packed', 'parameter', 'pmos', 'posedge',
222
+ 'primitive', 'priority', 'program', 'property', 'protected', 'pull0',
223
+ 'pull1', 'pulldown', 'pullup', 'pulsestyle_ondetect',
224
+ 'pulsestyle_onevent', 'pure', 'rand', 'randc', 'randcase',
225
+ 'randsequence', 'rcmos', 'ref',
226
+ 'reject_on', 'release', 'repeat', 'restrict', 'return', 'rnmos',
227
+ 'rpmos', 'rtran', 'rtranif0', 'rtranif1', 's_always', 's_eventually',
228
+ 's_nexttime', 's_until', 's_until_with', 'scalared', 'sequence',
229
+ 'showcancelled', 'small', 'soft', 'solve',
230
+ 'specify', 'specparam', 'static', 'strong', 'strong0',
231
+ 'strong1', 'struct', 'super', 'sync_accept_on',
232
+ 'sync_reject_on', 'table', 'tagged', 'task', 'this', 'throughout',
233
+ 'timeprecision', 'timeunit', 'tran', 'tranif0', 'tranif1',
234
+ 'typedef', 'union', 'unique', 'unique0', 'until',
235
+ 'until_with', 'untyped', 'use', 'vectored',
236
+ 'virtual', 'wait', 'wait_order', 'weak', 'weak0',
237
+ 'weak1', 'while', 'wildcard', 'with', 'within',
238
+ 'xnor', 'xor'),
239
+ suffix=r'\b'),
219
240
  Keyword),
220
241
 
242
+ (r'(class)(\s+)([a-zA-Z_]\w*)',
243
+ bygroups(Keyword.Declaration, Text, Name.Class)),
244
+ (r'(extends)(\s+)([a-zA-Z_]\w*)',
245
+ bygroups(Keyword.Declaration, Text, Name.Class)),
246
+ (r'(endclass\b)(?:(\s*)(:)(\s*)([a-zA-Z_]\w*))?',
247
+ bygroups(Keyword.Declaration, Text, Punctuation, Text, Name.Class)),
248
+
221
249
  (words((
222
- '`__FILE__', '`__LINE__', '`begin_keywords', '`celldefine', '`default_nettype',
223
- '`define', '`else', '`elsif', '`end_keywords', '`endcelldefine', '`endif',
224
- '`ifdef', '`ifndef', '`include', '`line', '`nounconnected_drive', '`pragma',
225
- '`resetall', '`timescale', '`unconnected_drive', '`undef', '`undefineall'),
250
+ # Variable types
251
+ 'bit', 'byte', 'chandle', 'const', 'event', 'int', 'integer',
252
+ 'logic', 'longint', 'real', 'realtime', 'reg', 'shortint',
253
+ 'shortreal', 'signed', 'string', 'time', 'type', 'unsigned',
254
+ 'var', 'void',
255
+ # Net types
256
+ 'supply0', 'supply1', 'tri', 'triand', 'trior', 'trireg',
257
+ 'tri0', 'tri1', 'uwire', 'wand', 'wire', 'wor'),
258
+ suffix=r'\b'),
259
+ Keyword.Type),
260
+
261
+ (words((
262
+ '`__FILE__', '`__LINE__', '`begin_keywords', '`celldefine',
263
+ '`default_nettype', '`define', '`else', '`elsif', '`end_keywords',
264
+ '`endcelldefine', '`endif', '`ifdef', '`ifndef', '`include',
265
+ '`line', '`nounconnected_drive', '`pragma', '`resetall',
266
+ '`timescale', '`unconnected_drive', '`undef', '`undefineall'),
226
267
  suffix=r'\b'),
227
268
  Comment.Preproc),
228
269
 
229
270
  (words((
230
- '$display', '$displayb', '$displayh', '$displayo', '$dumpall', '$dumpfile',
231
- '$dumpflush', '$dumplimit', '$dumpoff', '$dumpon', '$dumpports',
232
- '$dumpportsall', '$dumpportsflush', '$dumpportslimit', '$dumpportsoff',
233
- '$dumpportson', '$dumpvars', '$fclose', '$fdisplay', '$fdisplayb',
234
- '$fdisplayh', '$fdisplayo', '$feof', '$ferror', '$fflush', '$fgetc',
235
- '$fgets', '$finish', '$fmonitor', '$fmonitorb', '$fmonitorh', '$fmonitoro',
236
- '$fopen', '$fread', '$fscanf', '$fseek', '$fstrobe', '$fstrobeb', '$fstrobeh',
237
- '$fstrobeo', '$ftell', '$fwrite', '$fwriteb', '$fwriteh', '$fwriteo',
238
- '$monitor', '$monitorb', '$monitorh', '$monitoro', '$monitoroff',
239
- '$monitoron', '$plusargs', '$random', '$readmemb', '$readmemh', '$rewind',
240
- '$sformat', '$sformatf', '$sscanf', '$strobe', '$strobeb', '$strobeh', '$strobeo',
241
- '$swrite', '$swriteb', '$swriteh', '$swriteo', '$test', '$ungetc',
242
- '$value$plusargs', '$write', '$writeb', '$writeh', '$writememb',
243
- '$writememh', '$writeo'), suffix=r'\b'),
271
+ # Simulation control tasks (20.2)
272
+ '$exit', '$finish', '$stop',
273
+ # Simulation time functions (20.3)
274
+ '$realtime', '$stime', '$time',
275
+ # Timescale tasks (20.4)
276
+ '$printtimescale', '$timeformat',
277
+ # Conversion functions
278
+ '$bitstoreal', '$bitstoshortreal', '$cast', '$itor',
279
+ '$realtobits', '$rtoi', '$shortrealtobits', '$signed',
280
+ '$unsigned',
281
+ # Data query functions (20.6)
282
+ '$bits', '$isunbounded', '$typename',
283
+ # Array query functions (20.7)
284
+ '$dimensions', '$high', '$increment', '$left', '$low', '$right',
285
+ '$size', '$unpacked_dimensions',
286
+ # Math functions (20.8)
287
+ '$acos', '$acosh', '$asin', '$asinh', '$atan', '$atan2',
288
+ '$atanh', '$ceil', '$clog2', '$cos', '$cosh', '$exp', '$floor',
289
+ '$hypot', '$ln', '$log10', '$pow', '$sin', '$sinh', '$sqrt',
290
+ '$tan', '$tanh',
291
+ # Bit vector system functions (20.9)
292
+ '$countbits', '$countones', '$isunknown', '$onehot', '$onehot0',
293
+ # Severity tasks (20.10)
294
+ '$info', '$error', '$fatal', '$warning',
295
+ # Assertion control tasks (20.12)
296
+ '$assertcontrol', '$assertfailoff', '$assertfailon',
297
+ '$assertkill', '$assertnonvacuouson', '$assertoff', '$asserton',
298
+ '$assertpassoff', '$assertpasson', '$assertvacuousoff',
299
+ # Sampled value system functions (20.13)
300
+ '$changed', '$changed_gclk', '$changing_gclk', '$falling_gclk',
301
+ '$fell', '$fell_gclk', '$future_gclk', '$past', '$past_gclk',
302
+ '$rising_gclk', '$rose', '$rose_gclk', '$sampled', '$stable',
303
+ '$stable_gclk', '$steady_gclk',
304
+ # Coverage control functions (20.14)
305
+ '$coverage_control', '$coverage_get', '$coverage_get_max',
306
+ '$coverage_merge', '$coverage_save', '$get_coverage',
307
+ '$load_coverage_db', '$set_coverage_db_name',
308
+ # Probabilistic distribution functions (20.15)
309
+ '$dist_chi_square', '$dist_erlang', '$dist_exponential',
310
+ '$dist_normal', '$dist_poisson', '$dist_t', '$dist_uniform',
311
+ '$random',
312
+ # Stochastic analysis tasks and functions (20.16)
313
+ '$q_add', '$q_exam', '$q_full', '$q_initialize', '$q_remove',
314
+ # PLA modeling tasks (20.17)
315
+ '$async$and$array', '$async$and$plane', '$async$nand$array',
316
+ '$async$nand$plane', '$async$nor$array', '$async$nor$plane',
317
+ '$async$or$array', '$async$or$plane', '$sync$and$array',
318
+ '$sync$and$plane', '$sync$nand$array', '$sync$nand$plane',
319
+ '$sync$nor$array', '$sync$nor$plane', '$sync$or$array',
320
+ '$sync$or$plane',
321
+ # Miscellaneous tasks and functions (20.18)
322
+ '$system',
323
+ # Display tasks (21.2)
324
+ '$display', '$displayb', '$displayh', '$displayo', '$monitor',
325
+ '$monitorb', '$monitorh', '$monitoro', '$monitoroff',
326
+ '$monitoron', '$strobe', '$strobeb', '$strobeh', '$strobeo',
327
+ '$write', '$writeb', '$writeh', '$writeo',
328
+ # File I/O tasks and functions (21.3)
329
+ '$fclose', '$fdisplay', '$fdisplayb', '$fdisplayh',
330
+ '$fdisplayo', '$feof', '$ferror', '$fflush', '$fgetc', '$fgets',
331
+ '$fmonitor', '$fmonitorb', '$fmonitorh', '$fmonitoro', '$fopen',
332
+ '$fread', '$fscanf', '$fseek', '$fstrobe', '$fstrobeb',
333
+ '$fstrobeh', '$fstrobeo', '$ftell', '$fwrite', '$fwriteb',
334
+ '$fwriteh', '$fwriteo', '$rewind', '$sformat', '$sformatf',
335
+ '$sscanf', '$swrite', '$swriteb', '$swriteh', '$swriteo',
336
+ '$ungetc',
337
+ # Memory load tasks (21.4)
338
+ '$readmemb', '$readmemh',
339
+ # Memory dump tasks (21.5)
340
+ '$writememb', '$writememh',
341
+ # Command line input (21.6)
342
+ '$test$plusargs', '$value$plusargs',
343
+ # VCD tasks (21.7)
344
+ '$dumpall', '$dumpfile', '$dumpflush', '$dumplimit', '$dumpoff',
345
+ '$dumpon', '$dumpports', '$dumpportsall', '$dumpportsflush',
346
+ '$dumpportslimit', '$dumpportsoff', '$dumpportson', '$dumpvars',
347
+ ), suffix=r'\b'),
244
348
  Name.Builtin),
245
349
 
246
- (r'(class)(\s+)', bygroups(Keyword, Text), 'classname'),
247
- (words((
248
- 'byte', 'shortint', 'int', 'longint', 'integer', 'time',
249
- 'bit', 'logic', 'reg', 'supply0', 'supply1', 'tri', 'triand',
250
- 'trior', 'tri0', 'tri1', 'trireg', 'uwire', 'wire', 'wand', 'wo'
251
- 'shortreal', 'real', 'realtime'), suffix=r'\b'),
252
- Keyword.Type),
253
350
  (r'[a-zA-Z_]\w*:(?!:)', Name.Label),
254
351
  (r'\$?[a-zA-Z_]\w*', Name),
255
- ],
256
- 'classname': [
257
- (r'[a-zA-Z_]\w*', Name.Class, '#pop'),
352
+ (r'\\(\S+)', Name),
258
353
  ],
259
354
  'string': [
260
355
  (r'"', String, '#pop'),
@@ -276,15 +371,6 @@ class SystemVerilogLexer(RegexLexer):
276
371
  ]
277
372
  }
278
373
 
279
- def get_tokens_unprocessed(self, text):
280
- for index, token, value in \
281
- RegexLexer.get_tokens_unprocessed(self, text):
282
- # Convention: mark all upper case names as constants
283
- if token is Name:
284
- if value.isupper():
285
- token = Name.Constant
286
- yield index, token, value
287
-
288
374
 
289
375
  class VhdlLexer(RegexLexer):
290
376
  """