pygments.rb 1.2.1 → 2.0.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 (381) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +13 -0
  3. data/.github/workflows/ci.yml +28 -0
  4. data/.github/workflows/release.yml +24 -0
  5. data/.gitignore +5 -6
  6. data/CHANGELOG.adoc +128 -0
  7. data/Gemfile +3 -1
  8. data/LICENSE +1 -1
  9. data/README.adoc +160 -0
  10. data/Rakefile +11 -21
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments/lexer.rb +5 -5
  15. data/lib/pygments/mentos.py +23 -110
  16. data/lib/pygments/popen.rb +148 -229
  17. data/lib/pygments/version.rb +2 -2
  18. data/lib/pygments.rb +10 -11
  19. data/pygments.rb.gemspec +12 -10
  20. data/test/test_pygments.rb +46 -104
  21. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +21 -3
  22. data/vendor/pygments-main/Pygments-2.7.3.dist-info/INSTALLER +1 -0
  23. data/vendor/pygments-main/{LICENSE → Pygments-2.7.3.dist-info/LICENSE} +1 -1
  24. data/vendor/pygments-main/Pygments-2.7.3.dist-info/METADATA +49 -0
  25. data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +482 -0
  26. data/vendor/pygments-main/Pygments-2.7.3.dist-info/REQUESTED +0 -0
  27. data/vendor/pygments-main/Pygments-2.7.3.dist-info/WHEEL +5 -0
  28. data/vendor/pygments-main/Pygments-2.7.3.dist-info/entry_points.txt +3 -0
  29. data/vendor/pygments-main/Pygments-2.7.3.dist-info/top_level.txt +1 -0
  30. data/vendor/pygments-main/bin/pygmentize +8 -0
  31. data/vendor/pygments-main/pygments/__init__.py +6 -11
  32. data/vendor/pygments-main/pygments/__main__.py +18 -0
  33. data/vendor/pygments-main/pygments/cmdline.py +38 -29
  34. data/vendor/pygments-main/pygments/console.py +6 -9
  35. data/vendor/pygments-main/pygments/filter.py +4 -6
  36. data/vendor/pygments-main/pygments/filters/__init__.py +609 -21
  37. data/vendor/pygments-main/pygments/formatter.py +4 -4
  38. data/vendor/pygments-main/pygments/formatters/__init__.py +9 -8
  39. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -3
  40. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  41. data/vendor/pygments-main/pygments/formatters/html.py +223 -135
  42. data/vendor/pygments-main/pygments/formatters/img.py +68 -41
  43. data/vendor/pygments-main/pygments/formatters/irc.py +39 -39
  44. data/vendor/pygments-main/pygments/formatters/latex.py +56 -26
  45. data/vendor/pygments-main/pygments/formatters/other.py +12 -8
  46. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -29
  47. data/vendor/pygments-main/pygments/formatters/svg.py +38 -4
  48. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -31
  49. data/vendor/pygments-main/pygments/formatters/terminal256.py +22 -12
  50. data/vendor/pygments-main/pygments/lexer.py +41 -39
  51. data/vendor/pygments-main/pygments/lexers/__init__.py +28 -15
  52. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -5
  53. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -15
  54. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +11 -12
  55. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1338
  56. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
  58. data/vendor/pygments-main/pygments/lexers/_mapping.py +74 -29
  59. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -2
  60. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1282 -0
  61. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -20
  63. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -16
  64. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -2
  65. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -3
  66. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -125
  67. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +6 -4
  68. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  69. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +113 -0
  70. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +280 -0
  71. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  72. data/vendor/pygments-main/pygments/lexers/actionscript.py +8 -3
  73. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  74. data/vendor/pygments-main/pygments/lexers/algebra.py +20 -1
  75. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/ampl.py +3 -3
  77. data/vendor/pygments-main/pygments/lexers/apl.py +15 -15
  78. data/vendor/pygments-main/pygments/lexers/archetype.py +3 -3
  79. data/vendor/pygments-main/pygments/lexers/arrow.py +117 -0
  80. data/vendor/pygments-main/pygments/lexers/asm.py +440 -76
  81. data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
  82. data/vendor/pygments-main/pygments/lexers/bare.py +104 -0
  83. data/vendor/pygments-main/pygments/lexers/basic.py +166 -4
  84. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -5
  85. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +17 -2
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +67 -42
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -7
  90. data/vendor/pygments-main/pygments/lexers/chapel.py +23 -13
  91. data/vendor/pygments-main/pygments/lexers/clean.py +135 -244
  92. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
  93. data/vendor/pygments-main/pygments/lexers/configs.py +187 -36
  94. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/crystal.py +3 -4
  96. data/vendor/pygments-main/pygments/lexers/csound.py +288 -187
  97. data/vendor/pygments-main/pygments/lexers/css.py +18 -16
  98. data/vendor/pygments-main/pygments/lexers/d.py +10 -5
  99. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
  100. data/vendor/pygments-main/pygments/lexers/data.py +240 -97
  101. data/vendor/pygments-main/pygments/lexers/devicetree.py +109 -0
  102. data/vendor/pygments-main/pygments/lexers/diff.py +4 -4
  103. data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -24
  104. data/vendor/pygments-main/pygments/lexers/dsls.py +144 -62
  105. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -18
  106. data/vendor/pygments-main/pygments/lexers/ecl.py +16 -2
  107. data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
  108. data/vendor/pygments-main/pygments/lexers/elm.py +5 -5
  109. data/vendor/pygments-main/pygments/lexers/email.py +151 -0
  110. data/vendor/pygments-main/pygments/lexers/erlang.py +29 -32
  111. data/vendor/pygments-main/pygments/lexers/esoteric.py +46 -19
  112. data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -13
  113. data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
  114. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
  115. data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
  116. data/vendor/pygments-main/pygments/lexers/floscript.py +83 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +41 -40
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +5 -4
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
  120. data/vendor/pygments-main/pygments/lexers/freefem.py +898 -0
  121. data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
  122. data/vendor/pygments-main/pygments/lexers/gdscript.py +346 -0
  123. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  124. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +62 -5
  125. data/vendor/pygments-main/pygments/lexers/graph.py +14 -9
  126. data/vendor/pygments-main/pygments/lexers/graphics.py +272 -25
  127. data/vendor/pygments-main/pygments/lexers/haskell.py +48 -21
  128. data/vendor/pygments-main/pygments/lexers/haxe.py +6 -6
  129. data/vendor/pygments-main/pygments/lexers/hdl.py +176 -86
  130. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -1
  131. data/vendor/pygments-main/pygments/lexers/html.py +31 -19
  132. data/vendor/pygments-main/pygments/lexers/idl.py +19 -8
  133. data/vendor/pygments-main/pygments/lexers/igor.py +244 -112
  134. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -2
  135. data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
  136. data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -15
  137. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -2
  138. data/vendor/pygments-main/pygments/lexers/j.py +3 -3
  139. data/vendor/pygments-main/pygments/lexers/javascript.py +60 -45
  140. data/vendor/pygments-main/pygments/lexers/julia.py +44 -46
  141. data/vendor/pygments-main/pygments/lexers/jvm.py +265 -165
  142. data/vendor/pygments-main/pygments/lexers/lisp.py +882 -804
  143. data/vendor/pygments-main/pygments/lexers/make.py +10 -6
  144. data/vendor/pygments-main/pygments/lexers/markup.py +213 -43
  145. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  146. data/vendor/pygments-main/pygments/lexers/matlab.py +98 -41
  147. data/vendor/pygments-main/pygments/lexers/mime.py +226 -0
  148. data/vendor/pygments-main/pygments/lexers/ml.py +198 -9
  149. data/vendor/pygments-main/pygments/lexers/modeling.py +26 -18
  150. data/vendor/pygments-main/pygments/lexers/modula2.py +25 -6
  151. data/vendor/pygments-main/pygments/lexers/monte.py +1 -1
  152. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  153. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
  154. data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -4
  155. data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
  156. data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
  157. data/vendor/pygments-main/pygments/lexers/oberon.py +17 -1
  158. data/vendor/pygments-main/pygments/lexers/objective.py +16 -16
  159. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
  160. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  161. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
  162. data/vendor/pygments-main/pygments/lexers/parsers.py +23 -58
  163. data/vendor/pygments-main/pygments/lexers/pascal.py +22 -22
  164. data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
  165. data/vendor/pygments-main/pygments/lexers/perl.py +260 -148
  166. data/vendor/pygments-main/pygments/lexers/php.py +64 -10
  167. data/vendor/pygments-main/pygments/lexers/pointless.py +71 -0
  168. data/vendor/pygments-main/pygments/lexers/pony.py +94 -0
  169. data/vendor/pygments-main/pygments/lexers/praat.py +38 -30
  170. data/vendor/pygments-main/pygments/lexers/prolog.py +36 -36
  171. data/vendor/pygments-main/pygments/lexers/promql.py +183 -0
  172. data/vendor/pygments-main/pygments/lexers/python.py +439 -227
  173. data/vendor/pygments-main/pygments/lexers/qvt.py +6 -6
  174. data/vendor/pygments-main/pygments/lexers/r.py +13 -275
  175. data/vendor/pygments-main/pygments/lexers/rdf.py +232 -39
  176. data/vendor/pygments-main/pygments/lexers/rebol.py +8 -8
  177. data/vendor/pygments-main/pygments/lexers/resource.py +2 -2
  178. data/vendor/pygments-main/pygments/lexers/ride.py +139 -0
  179. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  180. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
  181. data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -31
  182. data/vendor/pygments-main/pygments/lexers/ruby.py +22 -24
  183. data/vendor/pygments-main/pygments/lexers/rust.py +76 -72
  184. data/vendor/pygments-main/pygments/lexers/sas.py +1 -1
  185. data/vendor/pygments-main/pygments/lexers/scdoc.py +83 -0
  186. data/vendor/pygments-main/pygments/lexers/scripting.py +75 -13
  187. data/vendor/pygments-main/pygments/lexers/sgf.py +61 -0
  188. data/vendor/pygments-main/pygments/lexers/shell.py +162 -42
  189. data/vendor/pygments-main/pygments/lexers/sieve.py +69 -0
  190. data/vendor/pygments-main/pygments/lexers/slash.py +185 -0
  191. data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -2
  192. data/vendor/pygments-main/pygments/lexers/smv.py +3 -3
  193. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/solidity.py +92 -0
  195. data/vendor/pygments-main/pygments/lexers/special.py +5 -3
  196. data/vendor/pygments-main/pygments/lexers/sql.py +333 -177
  197. data/vendor/pygments-main/pygments/lexers/stata.py +107 -44
  198. data/vendor/pygments-main/pygments/lexers/supercollider.py +6 -1
  199. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
  200. data/vendor/pygments-main/pygments/lexers/templates.py +102 -121
  201. data/vendor/pygments-main/pygments/lexers/teraterm.py +335 -0
  202. data/vendor/pygments-main/pygments/lexers/testing.py +6 -6
  203. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  204. data/vendor/pygments-main/pygments/lexers/textedit.py +4 -4
  205. data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -13
  206. data/vendor/pygments-main/pygments/lexers/theorem.py +69 -53
  207. data/vendor/pygments-main/pygments/lexers/tnt.py +263 -0
  208. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  209. data/vendor/pygments-main/pygments/lexers/typoscript.py +4 -11
  210. data/vendor/pygments-main/pygments/lexers/unicon.py +412 -0
  211. data/vendor/pygments-main/pygments/lexers/urbi.py +14 -1
  212. data/vendor/pygments-main/pygments/lexers/usd.py +90 -0
  213. data/vendor/pygments-main/pygments/lexers/varnish.py +3 -3
  214. data/vendor/pygments-main/pygments/lexers/verification.py +13 -10
  215. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  216. data/vendor/pygments-main/pygments/lexers/webidl.py +299 -0
  217. data/vendor/pygments-main/pygments/lexers/webmisc.py +31 -28
  218. data/vendor/pygments-main/pygments/lexers/whiley.py +5 -5
  219. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/xorg.py +5 -4
  221. data/vendor/pygments-main/pygments/lexers/yang.py +104 -0
  222. data/vendor/pygments-main/pygments/lexers/zig.py +124 -0
  223. data/vendor/pygments-main/pygments/modeline.py +1 -1
  224. data/vendor/pygments-main/pygments/plugin.py +4 -2
  225. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  226. data/vendor/pygments-main/pygments/scanner.py +2 -2
  227. data/vendor/pygments-main/pygments/sphinxext.py +2 -4
  228. data/vendor/pygments-main/pygments/style.py +61 -24
  229. data/vendor/pygments-main/pygments/styles/__init__.py +10 -4
  230. data/vendor/pygments-main/pygments/styles/abap.py +1 -1
  231. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  232. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  233. data/vendor/pygments-main/pygments/styles/arduino.py +2 -2
  234. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  238. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  239. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  240. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  241. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  242. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  243. data/vendor/pygments-main/pygments/styles/inkpot.py +67 -0
  244. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  245. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  246. data/vendor/pygments-main/pygments/styles/monokai.py +4 -3
  247. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  248. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  249. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  250. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  251. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  252. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  253. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -1
  254. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/sas.py +1 -1
  256. data/vendor/pygments-main/pygments/styles/solarized.py +134 -0
  257. data/vendor/pygments-main/pygments/styles/stata_dark.py +41 -0
  258. data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -15
  259. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  260. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  261. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  262. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  263. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  264. data/vendor/pygments-main/pygments/token.py +1 -1
  265. data/vendor/pygments-main/pygments/unistring.py +47 -108
  266. data/vendor/pygments-main/pygments/util.py +15 -92
  267. metadata +68 -136
  268. data/CHANGELOG.md +0 -111
  269. data/README.md +0 -121
  270. data/circle.yml +0 -20
  271. data/test/test_data.c +0 -2581
  272. data/test/test_data.py +0 -514
  273. data/test/test_data_generated +0 -2582
  274. data/vendor/custom_lexers/github.py +0 -565
  275. data/vendor/pygments-main/CHANGES +0 -1186
  276. data/vendor/pygments-main/MANIFEST.in +0 -6
  277. data/vendor/pygments-main/Makefile +0 -65
  278. data/vendor/pygments-main/README.rst +0 -39
  279. data/vendor/pygments-main/REVISION +0 -1
  280. data/vendor/pygments-main/TODO +0 -12
  281. data/vendor/pygments-main/doc/Makefile +0 -153
  282. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  283. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  284. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  285. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  286. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  287. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  288. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  289. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  290. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  291. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  292. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  293. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  294. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  295. data/vendor/pygments-main/doc/conf.py +0 -241
  296. data/vendor/pygments-main/doc/docs/api.rst +0 -354
  297. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  298. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  299. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
  300. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  301. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  302. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  303. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  304. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  305. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  306. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  307. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
  308. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  309. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  310. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  311. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  312. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  313. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  314. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  315. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  316. data/vendor/pygments-main/doc/download.rst +0 -41
  317. data/vendor/pygments-main/doc/faq.rst +0 -139
  318. data/vendor/pygments-main/doc/index.rst +0 -54
  319. data/vendor/pygments-main/doc/languages.rst +0 -154
  320. data/vendor/pygments-main/doc/make.bat +0 -190
  321. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  322. data/vendor/pygments-main/external/autopygmentize +0 -101
  323. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  324. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  325. data/vendor/pygments-main/external/moin-parser.py +0 -112
  326. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  327. data/vendor/pygments-main/external/rst-directive.py +0 -82
  328. data/vendor/pygments-main/pygmentize +0 -8
  329. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  330. data/vendor/pygments-main/requirements.txt +0 -5
  331. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  332. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  333. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  334. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  335. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  336. data/vendor/pygments-main/scripts/pylintrc +0 -301
  337. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  338. data/vendor/pygments-main/setup.cfg +0 -10
  339. data/vendor/pygments-main/setup.py +0 -77
  340. data/vendor/pygments-main/tox.ini +0 -7
  341. data/vendor/simplejson/.gitignore +0 -10
  342. data/vendor/simplejson/.travis.yml +0 -5
  343. data/vendor/simplejson/CHANGES.txt +0 -291
  344. data/vendor/simplejson/LICENSE.txt +0 -19
  345. data/vendor/simplejson/MANIFEST.in +0 -5
  346. data/vendor/simplejson/README.rst +0 -19
  347. data/vendor/simplejson/conf.py +0 -179
  348. data/vendor/simplejson/index.rst +0 -628
  349. data/vendor/simplejson/scripts/make_docs.py +0 -18
  350. data/vendor/simplejson/setup.py +0 -104
  351. data/vendor/simplejson/simplejson/__init__.py +0 -510
  352. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  353. data/vendor/simplejson/simplejson/decoder.py +0 -425
  354. data/vendor/simplejson/simplejson/encoder.py +0 -567
  355. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  356. data/vendor/simplejson/simplejson/scanner.py +0 -77
  357. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  358. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  359. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  360. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  361. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  362. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  363. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  364. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  365. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  366. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  367. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  368. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  369. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  370. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  371. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  372. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  373. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  374. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  375. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  376. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  377. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  378. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  379. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  380. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  381. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for C/C++ languages.
7
7
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -33,10 +33,22 @@ class CFamilyLexer(RegexLexer):
33
33
  #: only one /* */ style comment
34
34
  _ws1 = r'\s*(?:/[*].*?[*]/\s*)?'
35
35
 
36
+ # Hexadecimal part in an hexadecimal integer/floating-point literal.
37
+ # This includes decimal separators matching.
38
+ _hexpart = r'[0-9a-fA-F](\'?[0-9a-fA-F])*'
39
+ # Decimal part in an decimal integer/floating-point literal.
40
+ # This includes decimal separators matching.
41
+ _decpart = r'\d(\'?\d)*'
42
+ # Integer literal suffix (e.g. 'ull' or 'll').
43
+ _intsuffix = r'(([uU][lL]{0,2})|[lL]{1,2}[uU]?)?'
44
+
45
+ # Identifier regex with C and C++ Universal Character Name (UCN) support.
46
+ _ident = r'(?:[a-zA-Z_$]|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8})(?:[\w$]|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8})*'
47
+
36
48
  tokens = {
37
49
  'whitespace': [
38
50
  # preprocessor directives: without whitespace
39
- ('^#if\s+0', Comment.Preproc, 'if0'),
51
+ (r'^#if\s+0', Comment.Preproc, 'if0'),
40
52
  ('^#', Comment.Preproc, 'macro'),
41
53
  # or with whitespace
42
54
  ('^(' + _ws1 + r')(#if\s+0)',
@@ -52,27 +64,33 @@ class CFamilyLexer(RegexLexer):
52
64
  (r'/(\\\n)?[*][\w\W]*', Comment.Multiline),
53
65
  ],
54
66
  'statements': [
55
- (r'(L?)(")', bygroups(String.Affix, String), 'string'),
56
- (r"(L?)(')(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])(')",
67
+ (r'([LuU]|u8)?(")', bygroups(String.Affix, String), 'string'),
68
+ (r"([LuU]|u8)?(')(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])(')",
57
69
  bygroups(String.Affix, String.Char, String.Char, String.Char)),
58
- (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float),
59
- (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
60
- (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex),
61
- (r'0[0-7]+[LlUu]*', Number.Oct),
62
- (r'\d+[LlUu]*', Number.Integer),
70
+
71
+ # Hexadecimal floating-point literals (C11, C++17)
72
+ (r'0[xX](' + _hexpart + r'\.' + _hexpart + r'|\.' + _hexpart + r'|' + _hexpart + r')[pP][+-]?' + _hexpart + r'[lL]?', Number.Float),
73
+
74
+ (r'(-)?(' + _decpart + r'\.' + _decpart + r'|\.' + _decpart + r'|' + _decpart + r')[eE][+-]?' + _decpart + r'[fFlL]?', Number.Float),
75
+ (r'(-)?((' + _decpart + r'\.(' + _decpart + r')?|\.' + _decpart + r')[fFlL]?)|(' + _decpart + r'[fFlL])', Number.Float),
76
+ (r'(-)?0[xX]' + _hexpart + _intsuffix, Number.Hex),
77
+ (r'(-)?0[bB][01](\'?[01])*' + _intsuffix, Number.Bin),
78
+ (r'(-)?0(\'?[0-7])+' + _intsuffix, Number.Oct),
79
+ (r'(-)?' + _decpart + _intsuffix, Number.Integer),
63
80
  (r'\*/', Error),
64
81
  (r'[~!%^&*+=|?:<>/-]', Operator),
65
82
  (r'[()\[\],.]', Punctuation),
83
+ (r'(struct|union)(\s+)', bygroups(Keyword, Text), 'classname'),
66
84
  (words(('asm', 'auto', 'break', 'case', 'const', 'continue',
67
85
  'default', 'do', 'else', 'enum', 'extern', 'for', 'goto',
68
- 'if', 'register', 'restricted', 'return', 'sizeof',
69
- 'static', 'struct', 'switch', 'typedef', 'union',
70
- 'volatile', 'while'),
86
+ 'if', 'register', 'restricted', 'return', 'sizeof', 'struct',
87
+ 'static', 'switch', 'typedef', 'volatile', 'while', 'union',
88
+ 'thread_local', 'alignas', 'alignof', 'static_assert', '_Pragma'),
71
89
  suffix=r'\b'), Keyword),
72
90
  (r'(bool|int|long|float|short|double|char|unsigned|signed|void)\b',
73
91
  Keyword.Type),
74
92
  (words(('inline', '_inline', '__inline', 'naked', 'restrict',
75
- 'thread', 'typename'), suffix=r'\b'), Keyword.Reserved),
93
+ 'thread'), suffix=r'\b'), Keyword.Reserved),
76
94
  # Vector intrinsics
77
95
  (r'(__m(128i|128d|128|64))\b', Keyword.Reserved),
78
96
  # Microsoft-isms
@@ -83,22 +101,22 @@ class CFamilyLexer(RegexLexer):
83
101
  'identifier', 'forceinline', 'assume'),
84
102
  prefix=r'__', suffix=r'\b'), Keyword.Reserved),
85
103
  (r'(true|false|NULL)\b', Name.Builtin),
86
- (r'([a-zA-Z_]\w*)(\s*)(:)(?!:)', bygroups(Name.Label, Text, Punctuation)),
87
- ('[a-zA-Z_]\w*', Name),
104
+ (r'(' + _ident + r')(\s*)(:)(?!:)', bygroups(Name.Label, Text, Punctuation)),
105
+ (_ident, Name)
88
106
  ],
89
107
  'root': [
90
108
  include('whitespace'),
91
109
  # functions
92
- (r'((?:[\w*\s])+?(?:\s|[*]))' # return arguments
93
- r'([a-zA-Z_]\w*)' # method name
110
+ (r'((?:' + _ident + r'(?:[&*\s])+))' # return arguments
111
+ r'(' + _ident + r')' # method name
94
112
  r'(\s*\([^;]*?\))' # signature
95
113
  r'([^;{]*)(\{)',
96
114
  bygroups(using(this), Name.Function, using(this), using(this),
97
115
  Punctuation),
98
116
  'function'),
99
117
  # function declarations
100
- (r'((?:[\w*\s])+?(?:\s|[*]))' # return arguments
101
- r'([a-zA-Z_]\w*)' # method name
118
+ (r'((?:' + _ident + r'(?:[&*\s])+))' # return arguments
119
+ r'(' + _ident + r')' # method name
102
120
  r'(\s*\([^;]*?\))' # signature
103
121
  r'([^;]*)(;)',
104
122
  bygroups(using(this), Name.Function, using(this), using(this),
@@ -108,8 +126,8 @@ class CFamilyLexer(RegexLexer):
108
126
  'statement': [
109
127
  include('whitespace'),
110
128
  include('statements'),
111
- ('[{}]', Punctuation),
112
- (';', Punctuation, '#pop'),
129
+ (r'\}', Punctuation),
130
+ (r'[{;]', Punctuation, '#pop'),
113
131
  ],
114
132
  'function': [
115
133
  include('whitespace'),
@@ -127,8 +145,8 @@ class CFamilyLexer(RegexLexer):
127
145
  (r'\\', String), # stray backslash
128
146
  ],
129
147
  'macro': [
130
- (r'(include)(' + _ws1 + r')([^\n]+)',
131
- bygroups(Comment.Preproc, Text, Comment.PreprocFile)),
148
+ (r'(include)('+_ws1+r')("[^"]+")([^\n]*)', bygroups(Comment.Preproc, using(this), Comment.PreprocFile, Comment.Single)),
149
+ (r'(include)('+_ws1+r')(<[^>]+>)([^\n]*)', bygroups(Comment.Preproc, using(this), Comment.PreprocFile, Comment.Single)),
132
150
  (r'[^/\n]+', Comment.Preproc),
133
151
  (r'/[*](.|\n)*?[*]/', Comment.Multiline),
134
152
  (r'//.*?\n', Comment.Single, '#pop'),
@@ -141,28 +159,46 @@ class CFamilyLexer(RegexLexer):
141
159
  (r'^\s*#el(?:se|if).*\n', Comment.Preproc, '#pop'),
142
160
  (r'^\s*#endif.*?(?<!\\)\n', Comment.Preproc, '#pop'),
143
161
  (r'.*?\n', Comment),
162
+ ],
163
+ 'classname': [
164
+ (_ident, Name.Class, '#pop'),
165
+ # template specification
166
+ (r'\s*(?=>)', Text, '#pop'),
167
+ default('#pop')
144
168
  ]
145
169
  }
146
170
 
147
- stdlib_types = set((
171
+ stdlib_types = {
148
172
  'size_t', 'ssize_t', 'off_t', 'wchar_t', 'ptrdiff_t', 'sig_atomic_t', 'fpos_t',
149
173
  'clock_t', 'time_t', 'va_list', 'jmp_buf', 'FILE', 'DIR', 'div_t', 'ldiv_t',
150
- 'mbstate_t', 'wctrans_t', 'wint_t', 'wctype_t'))
151
- c99_types = set((
152
- '_Bool', '_Complex', 'int8_t', 'int16_t', 'int32_t', 'int64_t', 'uint8_t',
174
+ 'mbstate_t', 'wctrans_t', 'wint_t', 'wctype_t'}
175
+ c99_types = {
176
+ 'int8_t', 'int16_t', 'int32_t', 'int64_t', 'uint8_t',
153
177
  'uint16_t', 'uint32_t', 'uint64_t', 'int_least8_t', 'int_least16_t',
154
178
  'int_least32_t', 'int_least64_t', 'uint_least8_t', 'uint_least16_t',
155
179
  'uint_least32_t', 'uint_least64_t', 'int_fast8_t', 'int_fast16_t', 'int_fast32_t',
156
180
  'int_fast64_t', 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
157
- 'intptr_t', 'uintptr_t', 'intmax_t', 'uintmax_t'))
158
- linux_types = set((
181
+ 'intptr_t', 'uintptr_t', 'intmax_t', 'uintmax_t'}
182
+ linux_types = {
159
183
  'clockid_t', 'cpu_set_t', 'cpumask_t', 'dev_t', 'gid_t', 'id_t', 'ino_t', 'key_t',
160
184
  'mode_t', 'nfds_t', 'pid_t', 'rlim_t', 'sig_t', 'sighandler_t', 'siginfo_t',
161
- 'sigset_t', 'sigval_t', 'socklen_t', 'timer_t', 'uid_t'))
185
+ 'sigset_t', 'sigval_t', 'socklen_t', 'timer_t', 'uid_t'}
186
+ c11_atomic_types = {
187
+ 'atomic_bool', 'atomic_char', 'atomic_schar', 'atomic_uchar', 'atomic_short',
188
+ 'atomic_ushort', 'atomic_int', 'atomic_uint', 'atomic_long', 'atomic_ulong',
189
+ 'atomic_llong', 'atomic_ullong', 'atomic_char16_t', 'atomic_char32_t', 'atomic_wchar_t',
190
+ 'atomic_int_least8_t', 'atomic_uint_least8_t', 'atomic_int_least16_t',
191
+ 'atomic_uint_least16_t', 'atomic_int_least32_t', 'atomic_uint_least32_t',
192
+ 'atomic_int_least64_t', 'atomic_uint_least64_t', 'atomic_int_fast8_t',
193
+ 'atomic_uint_fast8_t', 'atomic_int_fast16_t', 'atomic_uint_fast16_t',
194
+ 'atomic_int_fast32_t', 'atomic_uint_fast32_t', 'atomic_int_fast64_t',
195
+ 'atomic_uint_fast64_t', 'atomic_intptr_t', 'atomic_uintptr_t', 'atomic_size_t',
196
+ 'atomic_ptrdiff_t', 'atomic_intmax_t', 'atomic_uintmax_t'}
162
197
 
163
198
  def __init__(self, **options):
164
199
  self.stdlibhighlighting = get_bool_opt(options, 'stdlibhighlighting', True)
165
200
  self.c99highlighting = get_bool_opt(options, 'c99highlighting', True)
201
+ self.c11highlighting = get_bool_opt(options, 'c11highlighting', True)
166
202
  self.platformhighlighting = get_bool_opt(options, 'platformhighlighting', True)
167
203
  RegexLexer.__init__(self, **options)
168
204
 
@@ -174,6 +210,8 @@ class CFamilyLexer(RegexLexer):
174
210
  token = Keyword.Type
175
211
  elif self.c99highlighting and value in self.c99_types:
176
212
  token = Keyword.Type
213
+ elif self.c11highlighting and value in self.c11_atomic_types:
214
+ token = Keyword.Type
177
215
  elif self.platformhighlighting and value in self.linux_types:
178
216
  token = Keyword.Type
179
217
  yield index, token, value
@@ -182,6 +220,25 @@ class CFamilyLexer(RegexLexer):
182
220
  class CLexer(CFamilyLexer):
183
221
  """
184
222
  For C source code with preprocessor directives.
223
+
224
+ Additional options accepted:
225
+
226
+ `stdlibhighlighting`
227
+ Highlight common types found in the C/C++ standard library (e.g. `size_t`).
228
+ (default: ``True``).
229
+
230
+ `c99highlighting`
231
+ Highlight common types found in the C99 standard library (e.g. `int8_t`).
232
+ Actually, this includes all fixed-width integer types.
233
+ (default: ``True``).
234
+
235
+ `c11highlighting`
236
+ Highlight atomic types found in the C11 standard library (e.g. `atomic_bool`).
237
+ (default: ``True``).
238
+
239
+ `platformhighlighting`
240
+ Highlight common types found in the platform SDK headers (e.g. `clockid_t` on Linux).
241
+ (default: ``True``).
185
242
  """
186
243
  name = 'C'
187
244
  aliases = ['c']
@@ -189,16 +246,46 @@ class CLexer(CFamilyLexer):
189
246
  mimetypes = ['text/x-chdr', 'text/x-csrc']
190
247
  priority = 0.1
191
248
 
249
+ tokens = {
250
+ 'statements': [
251
+ (words((
252
+ '_Alignas', '_Alignof', '_Noreturn', '_Generic', '_Thread_local',
253
+ '_Static_assert', '_Imaginary', 'noreturn', 'imaginary', 'complex'),
254
+ suffix=r'\b'), Keyword),
255
+ (words(('_Bool', '_Complex', '_Atomic'), suffix=r'\b'), Keyword.Type),
256
+ inherit
257
+ ]
258
+ }
259
+
192
260
  def analyse_text(text):
193
- if re.search('^\s*#include [<"]', text, re.MULTILINE):
261
+ if re.search(r'^\s*#include [<"]', text, re.MULTILINE):
194
262
  return 0.1
195
- if re.search('^\s*#ifn?def ', text, re.MULTILINE):
263
+ if re.search(r'^\s*#ifn?def ', text, re.MULTILINE):
196
264
  return 0.1
197
265
 
198
266
 
199
267
  class CppLexer(CFamilyLexer):
200
268
  """
201
269
  For C++ source code with preprocessor directives.
270
+
271
+ Additional options accepted:
272
+
273
+ `stdlibhighlighting`
274
+ Highlight common types found in the C/C++ standard library (e.g. `size_t`).
275
+ (default: ``True``).
276
+
277
+ `c99highlighting`
278
+ Highlight common types found in the C99 standard library (e.g. `int8_t`).
279
+ Actually, this includes all fixed-width integer types.
280
+ (default: ``True``).
281
+
282
+ `c11highlighting`
283
+ Highlight atomic types found in the C11 standard library (e.g. `atomic_bool`).
284
+ (default: ``True``).
285
+
286
+ `platformhighlighting`
287
+ Highlight common types found in the platform SDK headers (e.g. `clockid_t` on Linux).
288
+ (default: ``True``).
202
289
  """
203
290
  name = 'C++'
204
291
  aliases = ['cpp', 'c++']
@@ -210,23 +297,24 @@ class CppLexer(CFamilyLexer):
210
297
 
211
298
  tokens = {
212
299
  'statements': [
300
+ (r'(class|concept|typename)(\s+)', bygroups(Keyword, Text), 'classname'),
213
301
  (words((
214
302
  'catch', 'const_cast', 'delete', 'dynamic_cast', 'explicit',
215
303
  'export', 'friend', 'mutable', 'namespace', 'new', 'operator',
216
- 'private', 'protected', 'public', 'reinterpret_cast',
304
+ 'private', 'protected', 'public', 'reinterpret_cast', 'class',
217
305
  'restrict', 'static_cast', 'template', 'this', 'throw', 'throws',
218
- 'try', 'typeid', 'typename', 'using', 'virtual',
219
- 'constexpr', 'nullptr', 'decltype', 'thread_local',
220
- 'alignas', 'alignof', 'static_assert', 'noexcept', 'override',
221
- 'final'), suffix=r'\b'), Keyword),
222
- (r'char(16_t|32_t)\b', Keyword.Type),
223
- (r'(class)(\s+)', bygroups(Keyword, Text), 'classname'),
306
+ 'try', 'typeid', 'using', 'virtual', 'constexpr', 'nullptr', 'concept',
307
+ 'decltype', 'noexcept', 'override', 'final', 'constinit', 'consteval',
308
+ 'co_await', 'co_return', 'co_yield', 'requires', 'import', 'module',
309
+ 'typename'),
310
+ suffix=r'\b'), Keyword),
311
+ (r'char(16_t|32_t|8_t)\b', Keyword.Type),
312
+ (r'(enum)(\s+)', bygroups(Keyword, Text), 'enumname'),
313
+
224
314
  # C++11 raw strings
225
- (r'(R)(")([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)(")',
315
+ (r'((?:[LuU]|u8)?R)(")([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)(")',
226
316
  bygroups(String.Affix, String, String.Delimiter, String.Delimiter,
227
317
  String, String.Delimiter, String)),
228
- # C++11 UTF-8/16/32 strings
229
- (r'(u8|u|U)(")', bygroups(String.Affix, String), 'string'),
230
318
  inherit,
231
319
  ],
232
320
  'root': [
@@ -238,11 +326,15 @@ class CppLexer(CFamilyLexer):
238
326
  # Offload C++ extensions, http://offload.codeplay.com/
239
327
  (r'__(offload|blockingoffload|outer)\b', Keyword.Pseudo),
240
328
  ],
241
- 'classname': [
242
- (r'[a-zA-Z_]\w*', Name.Class, '#pop'),
329
+ 'enumname': [
330
+ include('whitespace'),
331
+ # 'enum class' and 'enum struct' C++11 support
332
+ (words(('class', 'struct'), suffix=r'\b'), Keyword),
333
+ (CFamilyLexer._ident, Name.Class, '#pop'),
243
334
  # template specification
244
335
  (r'\s*(?=>)', Text, '#pop'),
245
- ],
336
+ default('#pop')
337
+ ]
246
338
  }
247
339
 
248
340
  def analyse_text(text):
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for other C-like languages.
7
7
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -20,7 +20,7 @@ from pygments.lexers.c_cpp import CLexer, CppLexer
20
20
  from pygments.lexers import _mql_builtins
21
21
 
22
22
  __all__ = ['PikeLexer', 'NesCLexer', 'ClayLexer', 'ECLexer', 'ValaLexer',
23
- 'CudaLexer', 'SwigLexer', 'MqlLexer', 'ArduinoLexer']
23
+ 'CudaLexer', 'SwigLexer', 'MqlLexer', 'ArduinoLexer', 'CharmciLexer']
24
24
 
25
25
 
26
26
  class PikeLexer(CppLexer):
@@ -172,12 +172,7 @@ class ECLexer(CLexer):
172
172
  (r'(class)(\s+)', bygroups(Keyword, Text), 'classname'),
173
173
  (r'(null|value|this)\b', Name.Builtin),
174
174
  inherit,
175
- ],
176
- 'classname': [
177
- (r'[a-zA-Z_]\w*', Name.Class, '#pop'),
178
- # template specification
179
- (r'\s*(?=>)', Text, '#pop'),
180
- ],
175
+ ]
181
176
  }
182
177
 
183
178
 
@@ -245,7 +240,7 @@ class ValaLexer(RegexLexer):
245
240
  'ulong', 'unichar', 'ushort'), suffix=r'\b'),
246
241
  Keyword.Type),
247
242
  (r'(true|false|null)\b', Name.Builtin),
248
- ('[a-zA-Z_]\w*', Name),
243
+ (r'[a-zA-Z_]\w*', Name),
249
244
  ],
250
245
  'root': [
251
246
  include('whitespace'),
@@ -291,23 +286,23 @@ class CudaLexer(CLexer):
291
286
  aliases = ['cuda', 'cu']
292
287
  mimetypes = ['text/x-cuda']
293
288
 
294
- function_qualifiers = set(('__device__', '__global__', '__host__',
295
- '__noinline__', '__forceinline__'))
296
- variable_qualifiers = set(('__device__', '__constant__', '__shared__',
297
- '__restrict__'))
298
- vector_types = set(('char1', 'uchar1', 'char2', 'uchar2', 'char3', 'uchar3',
299
- 'char4', 'uchar4', 'short1', 'ushort1', 'short2', 'ushort2',
300
- 'short3', 'ushort3', 'short4', 'ushort4', 'int1', 'uint1',
301
- 'int2', 'uint2', 'int3', 'uint3', 'int4', 'uint4', 'long1',
302
- 'ulong1', 'long2', 'ulong2', 'long3', 'ulong3', 'long4',
303
- 'ulong4', 'longlong1', 'ulonglong1', 'longlong2',
304
- 'ulonglong2', 'float1', 'float2', 'float3', 'float4',
305
- 'double1', 'double2', 'dim3'))
306
- variables = set(('gridDim', 'blockIdx', 'blockDim', 'threadIdx', 'warpSize'))
307
- functions = set(('__threadfence_block', '__threadfence', '__threadfence_system',
308
- '__syncthreads', '__syncthreads_count', '__syncthreads_and',
309
- '__syncthreads_or'))
310
- execution_confs = set(('<<<', '>>>'))
289
+ function_qualifiers = {'__device__', '__global__', '__host__',
290
+ '__noinline__', '__forceinline__'}
291
+ variable_qualifiers = {'__device__', '__constant__', '__shared__',
292
+ '__restrict__'}
293
+ vector_types = {'char1', 'uchar1', 'char2', 'uchar2', 'char3', 'uchar3',
294
+ 'char4', 'uchar4', 'short1', 'ushort1', 'short2', 'ushort2',
295
+ 'short3', 'ushort3', 'short4', 'ushort4', 'int1', 'uint1',
296
+ 'int2', 'uint2', 'int3', 'uint3', 'int4', 'uint4', 'long1',
297
+ 'ulong1', 'long2', 'ulong2', 'long3', 'ulong3', 'long4',
298
+ 'ulong4', 'longlong1', 'ulonglong1', 'longlong2',
299
+ 'ulonglong2', 'float1', 'float2', 'float3', 'float4',
300
+ 'double1', 'double2', 'dim3'}
301
+ variables = {'gridDim', 'blockIdx', 'blockDim', 'threadIdx', 'warpSize'}
302
+ functions = {'__threadfence_block', '__threadfence', '__threadfence_system',
303
+ '__syncthreads', '__syncthreads_count', '__syncthreads_and',
304
+ '__syncthreads_or'}
305
+ execution_confs = {'<<<', '>>>'}
311
306
 
312
307
  def get_tokens_unprocessed(self, text):
313
308
  for index, token, value in CLexer.get_tokens_unprocessed(self, text):
@@ -344,7 +339,7 @@ class SwigLexer(CppLexer):
344
339
  # SWIG directives
345
340
  (r'(%[a-z_][a-z0-9_]*)', Name.Function),
346
341
  # Special variables
347
- ('\$\**\&?\w+', Name),
342
+ (r'\$\**\&?\w+', Name),
348
343
  # Stringification / additional preprocessor directives
349
344
  (r'##*[a-zA-Z_]\w*', Comment.Preproc),
350
345
  inherit,
@@ -352,7 +347,7 @@ class SwigLexer(CppLexer):
352
347
  }
353
348
 
354
349
  # This is a far from complete set of SWIG directives
355
- swig_directives = set((
350
+ swig_directives = {
356
351
  # Most common directives
357
352
  '%apply', '%define', '%director', '%enddef', '%exception', '%extend',
358
353
  '%feature', '%fragment', '%ignore', '%immutable', '%import', '%include',
@@ -371,7 +366,7 @@ class SwigLexer(CppLexer):
371
366
  '%pythoncallback', '%pythoncode', '%pythondynamic', '%pythonmaybecall',
372
367
  '%pythonnondynamic', '%pythonprepend', '%refobject', '%shadow', '%sizeof',
373
368
  '%trackobjects', '%types', '%unrefobject', '%varargs', '%warn',
374
- '%warnfilter'))
369
+ '%warnfilter'}
375
370
 
376
371
  def analyse_text(text):
377
372
  rv = 0
@@ -412,6 +407,7 @@ class MqlLexer(CppLexer):
412
407
  ],
413
408
  }
414
409
 
410
+
415
411
  class ArduinoLexer(CppLexer):
416
412
  """
417
413
  For `Arduino(tm) <https://arduino.cc/>`_ source.
@@ -428,13 +424,13 @@ class ArduinoLexer(CppLexer):
428
424
  mimetypes = ['text/x-arduino']
429
425
 
430
426
  # Language sketch main structure functions
431
- structure = set(('setup', 'loop'))
427
+ structure = {'setup', 'loop'}
432
428
 
433
429
  # Language operators
434
- operators = set(('not', 'or', 'and', 'xor'))
430
+ operators = {'not', 'or', 'and', 'xor'}
435
431
 
436
432
  # Language 'variables'
437
- variables = set((
433
+ variables = {
438
434
  'DIGITAL_MESSAGE', 'FIRMATA_STRING', 'ANALOG_MESSAGE', 'REPORT_DIGITAL',
439
435
  'REPORT_ANALOG', 'INPUT_PULLUP', 'SET_PIN_MODE', 'INTERNAL2V56', 'SYSTEM_RESET',
440
436
  'LED_BUILTIN', 'INTERNAL1V1', 'SYSEX_START', 'INTERNAL', 'EXTERNAL', 'HIGH',
@@ -451,10 +447,10 @@ class ArduinoLexer(CppLexer):
451
447
  'signed', 'inline', 'delete', '_Bool', 'complex', '_Complex', '_Imaginary',
452
448
  'atomic_bool', 'atomic_char', 'atomic_schar', 'atomic_uchar', 'atomic_short',
453
449
  'atomic_ushort', 'atomic_int', 'atomic_uint', 'atomic_long', 'atomic_ulong',
454
- 'atomic_llong', 'atomic_ullong', 'PROGMEM'))
450
+ 'atomic_llong', 'atomic_ullong', 'PROGMEM'}
455
451
 
456
452
  # Language shipped functions and class ( )
457
- functions = set((
453
+ functions = {
458
454
  'KeyboardController', 'MouseController', 'SoftwareSerial', 'EthernetServer',
459
455
  'EthernetClient', 'LiquidCrystal', 'RobotControl', 'GSMVoiceCall',
460
456
  'EthernetUDP', 'EsploraTFT', 'HttpClient', 'RobotMotor', 'WiFiClient',
@@ -514,16 +510,15 @@ class ArduinoLexer(CppLexer):
514
510
  'peek', 'beep', 'rect', 'line', 'open', 'seek', 'fill', 'size', 'turn', 'stop',
515
511
  'home', 'find', 'step', 'tone', 'sqrt', 'RSSI', 'SSID', 'end', 'bit', 'tan',
516
512
  'cos', 'sin', 'pow', 'map', 'abs', 'max', 'min', 'get', 'run', 'put',
517
- 'isAlphaNumeric', 'isAlpha', 'isAscii', 'isWhitespace', 'isControl', 'isDigit',
518
- 'isGraph', 'isLowerCase', 'isPrintable', 'isPunct', 'isSpace', 'isUpperCase',
519
- 'isHexadecimalDigit'))
513
+ 'isAlphaNumeric', 'isAlpha', 'isAscii', 'isWhitespace', 'isControl', 'isDigit',
514
+ 'isGraph', 'isLowerCase', 'isPrintable', 'isPunct', 'isSpace', 'isUpperCase',
515
+ 'isHexadecimalDigit'}
520
516
 
521
517
  # do not highlight
522
- suppress_highlight = set((
523
- 'namespace', 'template', 'mutable', 'using', 'asm', 'typeid',
524
- 'typename', 'this', 'alignof', 'constexpr', 'decltype', 'noexcept',
525
- 'static_assert', 'thread_local', 'restrict'))
526
-
518
+ suppress_highlight = {
519
+ 'namespace', 'template', 'mutable', 'using', 'asm', 'typeid',
520
+ 'typename', 'this', 'alignof', 'constexpr', 'decltype', 'noexcept',
521
+ 'static_assert', 'thread_local', 'restrict'}
527
522
 
528
523
  def get_tokens_unprocessed(self, text):
529
524
  for index, token, value in CppLexer.get_tokens_unprocessed(self, text):
@@ -539,3 +534,33 @@ class ArduinoLexer(CppLexer):
539
534
  yield index, Name.Function, value
540
535
  else:
541
536
  yield index, token, value
537
+
538
+
539
+ class CharmciLexer(CppLexer):
540
+ """
541
+ For `Charm++ <https://charm.cs.illinois.edu>`_ interface files (.ci).
542
+
543
+ .. versionadded:: 2.4
544
+ """
545
+
546
+ name = 'Charmci'
547
+ aliases = ['charmci']
548
+ filenames = ['*.ci']
549
+
550
+ mimetypes = []
551
+
552
+ tokens = {
553
+ 'statements': [
554
+ (r'(module)(\s+)', bygroups(Keyword, Text), 'classname'),
555
+ (words(('mainmodule', 'mainchare', 'chare', 'array', 'group',
556
+ 'nodegroup', 'message', 'conditional')), Keyword),
557
+ (words(('entry', 'aggregate', 'threaded', 'sync', 'exclusive',
558
+ 'nokeep', 'notrace', 'immediate', 'expedited', 'inline',
559
+ 'local', 'python', 'accel', 'readwrite', 'writeonly',
560
+ 'accelblock', 'memcritical', 'packed', 'varsize',
561
+ 'initproc', 'initnode', 'initcall', 'stacksize',
562
+ 'createhere', 'createhome', 'reductiontarget', 'iget',
563
+ 'nocopy', 'mutable', 'migratable', 'readonly')), Keyword),
564
+ inherit,
565
+ ],
566
+ }
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for the Cap'n Proto schema language.
7
7
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -44,34 +44,34 @@ class CapnProtoLexer(RegexLexer):
44
44
  ],
45
45
  'type': [
46
46
  (r'[^][=;,(){}$]+', Name.Class),
47
- (r'[[(]', Name.Class, 'parentype'),
47
+ (r'[\[(]', Name.Class, 'parentype'),
48
48
  default('#pop'),
49
49
  ],
50
50
  'parentype': [
51
51
  (r'[^][;()]+', Name.Class),
52
- (r'[[(]', Name.Class, '#push'),
52
+ (r'[\[(]', Name.Class, '#push'),
53
53
  (r'[])]', Name.Class, '#pop'),
54
54
  default('#pop'),
55
55
  ],
56
56
  'expression': [
57
57
  (r'[^][;,(){}$]+', Literal),
58
- (r'[[(]', Literal, 'parenexp'),
58
+ (r'[\[(]', Literal, 'parenexp'),
59
59
  default('#pop'),
60
60
  ],
61
61
  'parenexp': [
62
62
  (r'[^][;()]+', Literal),
63
- (r'[[(]', Literal, '#push'),
63
+ (r'[\[(]', Literal, '#push'),
64
64
  (r'[])]', Literal, '#pop'),
65
65
  default('#pop'),
66
66
  ],
67
67
  'annotation': [
68
68
  (r'[^][;,(){}=:]+', Name.Attribute),
69
- (r'[[(]', Name.Attribute, 'annexp'),
69
+ (r'[\[(]', Name.Attribute, 'annexp'),
70
70
  default('#pop'),
71
71
  ],
72
72
  'annexp': [
73
73
  (r'[^][;()]+', Name.Attribute),
74
- (r'[[(]', Name.Attribute, '#push'),
74
+ (r'[\[(]', Name.Attribute, '#push'),
75
75
  (r'[])]', Name.Attribute, '#pop'),
76
76
  default('#pop'),
77
77
  ],
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexer for the Chapel language.
7
7
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -18,7 +18,7 @@ __all__ = ['ChapelLexer']
18
18
 
19
19
  class ChapelLexer(RegexLexer):
20
20
  """
21
- For `Chapel <http://chapel.cray.com/>`_ source.
21
+ For `Chapel <https://chapel-lang.org/>`_ source.
22
22
 
23
23
  .. versionadded:: 2.0
24
24
  """
@@ -38,20 +38,30 @@ class ChapelLexer(RegexLexer):
38
38
 
39
39
  (r'(config|const|in|inout|out|param|ref|type|var)\b',
40
40
  Keyword.Declaration),
41
- (r'(false|nil|true)\b', Keyword.Constant),
42
- (r'(bool|complex|imag|int|opaque|range|real|string|uint)\b',
41
+ (r'(false|nil|none|true)\b', Keyword.Constant),
42
+ (r'(bool|bytes|complex|imag|int|nothing|opaque|range|real|string|uint|void)\b',
43
43
  Keyword.Type),
44
44
  (words((
45
- 'align', 'as', 'atomic', 'begin', 'break', 'by', 'cobegin',
46
- 'coforall', 'continue', 'delete', 'dmapped', 'do', 'domain',
47
- 'else', 'enum', 'except', 'export', 'extern', 'for', 'forall',
48
- 'if', 'index', 'inline', 'iter', 'label', 'lambda', 'let',
49
- 'local', 'new', 'noinit', 'on', 'only', 'otherwise', 'pragma',
50
- 'private', 'public', 'reduce', 'require', 'return', 'scan',
51
- 'select', 'serial', 'single', 'sparse', 'subdomain', 'sync',
52
- 'then', 'use', 'when', 'where', 'while', 'with', 'yield',
45
+ 'align', 'as', 'atomic',
46
+ 'begin', 'borrowed', 'break', 'by',
47
+ 'catch', 'cobegin', 'coforall', 'continue',
48
+ 'defer', 'delete', 'dmapped', 'do', 'domain',
49
+ 'else', 'enum', 'except', 'export', 'extern',
50
+ 'for', 'forall', 'forwarding',
51
+ 'if', 'import', 'index', 'init', 'inline',
52
+ 'label', 'lambda', 'let', 'lifetime', 'local', 'locale'
53
+ 'new', 'noinit',
54
+ 'on', 'only', 'otherwise', 'override', 'owned',
55
+ 'pragma', 'private', 'prototype', 'public',
56
+ 'reduce', 'require', 'return',
57
+ 'scan', 'select', 'serial', 'shared', 'single', 'sparse', 'subdomain', 'sync',
58
+ 'then', 'this', 'throw', 'throws', 'try',
59
+ 'unmanaged', 'use',
60
+ 'when', 'where', 'while', 'with',
61
+ 'yield',
53
62
  'zip'), suffix=r'\b'),
54
63
  Keyword),
64
+ (r'(iter)((?:\s)+)', bygroups(Keyword, Text), 'procname'),
55
65
  (r'(proc)((?:\s)+)', bygroups(Keyword, Text), 'procname'),
56
66
  (r'(class|module|record|union)(\s+)', bygroups(Keyword, Text),
57
67
  'classname'),
@@ -96,7 +106,7 @@ class ChapelLexer(RegexLexer):
96
106
  (r'[a-zA-Z_][\w$]*', Name.Class, '#pop'),
97
107
  ],
98
108
  'procname': [
99
- (r'([a-zA-Z_][\w$]+|\~[a-zA-Z_][\w$]+|[+*/!~%<>=&^|\-]{1,2})',
109
+ (r'([a-zA-Z_][.\w$]*|\~[a-zA-Z_][.\w$]*|[+*/!~%<>=&^|\-]{1,2})',
100
110
  Name.Function, '#pop'),
101
111
  ],
102
112
  }