pygments.rb 1.1.2 → 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 (383) 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 -5
  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 +13 -19
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments.rb +10 -11
  15. data/lib/pygments/lexer.rb +5 -5
  16. data/lib/pygments/mentos.py +23 -110
  17. data/lib/pygments/popen.rb +148 -229
  18. data/lib/pygments/version.rb +2 -2
  19. data/pygments.rb.gemspec +12 -11
  20. data/test/test_pygments.rb +46 -104
  21. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +23 -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 +94 -41
  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 +42 -6
  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 +102 -38
  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 +62 -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 +8 -1
  57. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
  58. data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -33
  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 +445 -70
  81. data/vendor/pygments-main/pygments/lexers/automation.py +3 -3
  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 +13 -9
  85. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +69 -36
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +68 -43
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +20 -21
  90. data/vendor/pygments-main/pygments/lexers/chapel.py +25 -14
  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 +188 -37
  94. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/crystal.py +31 -23
  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 +147 -65
  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 +54 -25
  112. data/vendor/pygments-main/pygments/lexers/ezhil.py +24 -15
  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 +63 -6
  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 +52 -22
  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 +18 -12
  131. data/vendor/pygments-main/pygments/lexers/html.py +31 -19
  132. data/vendor/pygments-main/pygments/lexers/idl.py +20 -9
  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 +100 -66
  140. data/vendor/pygments-main/pygments/lexers/julia.py +46 -48
  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 +4 -3
  152. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  153. data/vendor/pygments-main/pygments/lexers/ncl.py +85 -244
  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 +23 -23
  164. data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
  165. data/vendor/pygments-main/pygments/lexers/perl.py +276 -160
  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 -226
  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 +86 -71
  184. data/vendor/pygments-main/pygments/lexers/sas.py +7 -7
  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 +175 -51
  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 +30 -26
  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 -42
  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 +144 -132
  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 +8 -14
  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 +5 -5
  214. data/vendor/pygments-main/pygments/lexers/verification.py +15 -12
  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 +50 -38
  218. data/vendor/pygments-main/pygments/lexers/whiley.py +11 -12
  219. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/xorg.py +37 -0
  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 +6 -5
  224. data/vendor/pygments-main/pygments/plugin.py +14 -18
  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 +13 -5
  230. data/vendor/pygments-main/pygments/styles/abap.py +29 -0
  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 +89 -0
  254. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/sas.py +3 -0
  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_light.py +39 -0
  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 +19 -95
  267. metadata +71 -137
  268. data/CHANGELOG.md +0 -98
  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 -1163
  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 -331
  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 -149
  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 -689
  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 -84
  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/pygments/styles/stata.py +0 -37
  331. data/vendor/pygments-main/requirements.txt +0 -5
  332. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  333. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  334. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  335. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  336. data/vendor/pygments-main/scripts/find_error.py +0 -1
  337. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  338. data/vendor/pygments-main/scripts/pylintrc +0 -301
  339. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  340. data/vendor/pygments-main/setup.cfg +0 -10
  341. data/vendor/pygments-main/setup.py +0 -77
  342. data/vendor/pygments-main/tox.ini +0 -7
  343. data/vendor/simplejson/.gitignore +0 -10
  344. data/vendor/simplejson/.travis.yml +0 -5
  345. data/vendor/simplejson/CHANGES.txt +0 -291
  346. data/vendor/simplejson/LICENSE.txt +0 -19
  347. data/vendor/simplejson/MANIFEST.in +0 -5
  348. data/vendor/simplejson/README.rst +0 -19
  349. data/vendor/simplejson/conf.py +0 -179
  350. data/vendor/simplejson/index.rst +0 -628
  351. data/vendor/simplejson/scripts/make_docs.py +0 -18
  352. data/vendor/simplejson/setup.py +0 -104
  353. data/vendor/simplejson/simplejson/__init__.py +0 -510
  354. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  355. data/vendor/simplejson/simplejson/decoder.py +0 -425
  356. data/vendor/simplejson/simplejson/encoder.py +0 -567
  357. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  358. data/vendor/simplejson/simplejson/scanner.py +0 -77
  359. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  360. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  361. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  362. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  363. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  364. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  365. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  366. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  367. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  368. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  369. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  370. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  371. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  372. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  373. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  374. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  375. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  376. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  377. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  378. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  379. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  380. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  381. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  382. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  383. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for CSS and related stylesheet formats.
7
7
 
8
- :copyright: Copyright 2006-2015 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
 
@@ -16,7 +16,6 @@ from pygments.lexer import ExtendedRegexLexer, RegexLexer, include, bygroups, \
16
16
  default, words, inherit
17
17
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
18
18
  Number, Punctuation
19
- from pygments.util import iteritems
20
19
 
21
20
  __all__ = ['CssLexer', 'SassLexer', 'ScssLexer', 'LessCssLexer']
22
21
 
@@ -125,7 +124,7 @@ _css_properties = (
125
124
  'wrap-flow', 'wrap-inside', 'wrap-through', 'writing-mode', 'z-index',
126
125
  )
127
126
 
128
- # List of keyword values obtained from:
127
+ # List of keyword values obtained from:
129
128
  # http://cssvalues.com/
130
129
  _keyword_values = (
131
130
  'absolute', 'alias', 'all', 'all-petite-caps', 'all-scroll',
@@ -263,7 +262,7 @@ _time_units = (
263
262
  's', 'ms',
264
263
  )
265
264
  _all_units = _angle_units + _frequency_units + _length_units + \
266
- _resolution_units + _time_units
265
+ _resolution_units + _time_units
267
266
 
268
267
 
269
268
  class CssLexer(RegexLexer):
@@ -322,16 +321,18 @@ class CssLexer(RegexLexer):
322
321
  include('urls'),
323
322
  (r'('+r'|'.join(_functional_notation_keyword_values)+r')(\()',
324
323
  bygroups(Name.Builtin, Punctuation), 'function-start'),
325
- (r'([a-zA-Z_][\w-]+)(\()', bygroups(Name.Function, Punctuation), 'function-start'),
324
+ (r'([a-zA-Z_][\w-]+)(\()',
325
+ bygroups(Name.Function, Punctuation), 'function-start'),
326
326
  (words(_keyword_values, suffix=r'\b'), Keyword.Constant),
327
327
  (words(_other_keyword_values, suffix=r'\b'), Keyword.Constant),
328
328
  (words(_color_keywords, suffix=r'\b'), Keyword.Constant),
329
- (words(_css_properties, suffix=r'\b'), Keyword), # for transition-property etc.
329
+ # for transition-property etc.
330
+ (words(_css_properties, suffix=r'\b'), Keyword),
330
331
  (r'\!important', Comment.Preproc),
331
332
  (r'/\*(?:.|\n)*?\*/', Comment),
332
333
 
333
334
  include('numeric-values'),
334
-
335
+
335
336
  (r'[~^*!%&<>|+=@:./?-]+', Operator),
336
337
  (r'[\[\](),]+', Punctuation),
337
338
  (r'"(\\\\|\\"|[^"])*"', String.Double),
@@ -351,12 +352,13 @@ class CssLexer(RegexLexer):
351
352
  # function-start may be entered recursively
352
353
  (r'(' + r'|'.join(_functional_notation_keyword_values) + r')(\()',
353
354
  bygroups(Name.Builtin, Punctuation), 'function-start'),
354
- (r'([a-zA-Z_][\w-]+)(\()', bygroups(Name.Function, Punctuation), 'function-start'),
355
+ (r'([a-zA-Z_][\w-]+)(\()',
356
+ bygroups(Name.Function, Punctuation), 'function-start'),
355
357
 
356
358
  (r'/\*(?:.|\n)*?\*/', Comment),
357
359
  include('numeric-values'),
358
360
  (r'[*+/-]', Operator),
359
- (r'[,]', Punctuation),
361
+ (r',', Punctuation),
360
362
  (r'"(\\\\|\\"|[^"])*"', String.Double),
361
363
  (r"'(\\\\|\\'|[^'])*'", String.Single),
362
364
  (r'[a-zA-Z_-]\w*', Name),
@@ -373,8 +375,8 @@ class CssLexer(RegexLexer):
373
375
  'numeric-values': [
374
376
  (r'\#[a-zA-Z0-9]{1,6}', Number.Hex),
375
377
  (r'[+\-]?[0-9]*[.][0-9]+', Number.Float, 'numeric-end'),
376
- (r'[+\-]?[0-9]+', Number.Integer, 'numeric-end'),
377
- ],
378
+ (r'[+\-]?[0-9]+', Number.Integer, 'numeric-end'),
379
+ ],
378
380
  'numeric-end': [
379
381
  (words(_all_units, suffix=r'\b'), Keyword.Type),
380
382
  (r'%', Keyword.Type),
@@ -394,7 +396,7 @@ common_sass_tokens = {
394
396
  'behind', 'below', 'bidi-override', 'blink', 'block', 'bold', 'bolder', 'both',
395
397
  'capitalize', 'center-left', 'center-right', 'center', 'circle',
396
398
  'cjk-ideographic', 'close-quote', 'collapse', 'condensed', 'continuous',
397
- 'crop', 'crosshair', 'cross', 'cursive', 'dashed', 'decimal-leading-zero',
399
+ 'crosshair', 'cross', 'cursive', 'dashed', 'decimal-leading-zero',
398
400
  'decimal', 'default', 'digits', 'disc', 'dotted', 'double', 'e-resize', 'embed',
399
401
  'extra-condensed', 'extra-expanded', 'expanded', 'fantasy', 'far-left',
400
402
  'far-right', 'faster', 'fast', 'fixed', 'georgian', 'groove', 'hebrew', 'help',
@@ -466,9 +468,9 @@ common_sass_tokens = {
466
468
  ],
467
469
 
468
470
  'string-single': [
469
- (r"(\\.|#(?=[^\n{])|[^\n'#])+", String.Double),
471
+ (r"(\\.|#(?=[^\n{])|[^\n'#])+", String.Single),
470
472
  (r'#\{', String.Interpol, 'interpolation'),
471
- (r"'", String.Double, '#pop'),
473
+ (r"'", String.Single, '#pop'),
472
474
  ],
473
475
 
474
476
  'string-url': [
@@ -609,7 +611,7 @@ class SassLexer(ExtendedRegexLexer):
609
611
  (r"\*/", Comment, '#pop'),
610
612
  ],
611
613
  }
612
- for group, common in iteritems(common_sass_tokens):
614
+ for group, common in common_sass_tokens.items():
613
615
  tokens[group] = copy.copy(common)
614
616
  tokens['value'].append((r'\n', Text, 'root'))
615
617
  tokens['selector'].append((r'\n', Text, 'root'))
@@ -659,7 +661,7 @@ class ScssLexer(RegexLexer):
659
661
  (r"\*/", Comment, '#pop'),
660
662
  ],
661
663
  }
662
- for group, common in iteritems(common_sass_tokens):
664
+ for group, common in common_sass_tokens.items():
663
665
  tokens[group] = copy.copy(common)
664
666
  tokens['value'].extend([(r'\n', Text), (r'[;{}]', Punctuation, '#pop')])
665
667
  tokens['selector'].extend([(r'\n', Text), (r'[;{}]', Punctuation, '#pop')])
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for D languages.
7
7
 
8
- :copyright: Copyright 2006-2015 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
 
@@ -47,11 +47,16 @@ class DLexer(RegexLexer):
47
47
  'module', 'new', 'nothrow', 'out', 'override', 'package', 'pragma',
48
48
  'private', 'protected', 'public', 'pure', 'ref', 'return', 'scope',
49
49
  'shared', 'static', 'struct', 'super', 'switch', 'synchronized',
50
- 'template', 'this', 'throw', 'try', 'typedef', 'typeid', 'typeof',
50
+ 'template', 'this', 'throw', 'try', 'typeid', 'typeof',
51
51
  'union', 'unittest', 'version', 'volatile', 'while', 'with',
52
52
  '__gshared', '__traits', '__vector', '__parameters'),
53
53
  suffix=r'\b'),
54
54
  Keyword),
55
+ (words((
56
+ # Removed in 2.072
57
+ 'typedef', ),
58
+ suffix=r'\b'),
59
+ Keyword.Removed),
55
60
  (words((
56
61
  'bool', 'byte', 'cdouble', 'cent', 'cfloat', 'char', 'creal',
57
62
  'dchar', 'double', 'float', 'idouble', 'ifloat', 'int', 'ireal',
@@ -60,9 +65,9 @@ class DLexer(RegexLexer):
60
65
  Keyword.Type),
61
66
  (r'(false|true|null)\b', Keyword.Constant),
62
67
  (words((
63
- '__FILE__', '__MODULE__', '__LINE__', '__FUNCTION__', '__PRETTY_FUNCTION__'
64
- '', '__DATE__', '__EOF__', '__TIME__', '__TIMESTAMP__', '__VENDOR__',
65
- '__VERSION__'), suffix=r'\b'),
68
+ '__FILE__', '__FILE_FULL_PATH__', '__MODULE__', '__LINE__', '__FUNCTION__',
69
+ '__PRETTY_FUNCTION__', '__DATE__', '__EOF__', '__TIME__', '__TIMESTAMP__',
70
+ '__VENDOR__', '__VERSION__'), suffix=r'\b'),
66
71
  Keyword.Pseudo),
67
72
  (r'macro\b', Keyword.Reserved),
68
73
  (r'(string|wstring|dstring|size_t|ptrdiff_t)\b', Name.Builtin),
@@ -5,7 +5,7 @@
5
5
 
6
6
  Pygments lexers for Dalvik VM-related languages.
7
7
 
8
- :copyright: Copyright 2006-2015 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
 
@@ -5,13 +5,13 @@
5
5
 
6
6
  Lexers for data file format.
7
7
 
8
- :copyright: Copyright 2006-2015 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
 
12
12
  import re
13
13
 
14
- from pygments.lexer import RegexLexer, ExtendedRegexLexer, LexerContext, \
14
+ from pygments.lexer import Lexer, RegexLexer, ExtendedRegexLexer, LexerContext, \
15
15
  include, bygroups, inherit
16
16
  from pygments.token import Text, Comment, Keyword, Name, String, Number, \
17
17
  Punctuation, Literal, Error
@@ -23,7 +23,7 @@ class YamlLexerContext(LexerContext):
23
23
  """Indentation context for the YAML lexer."""
24
24
 
25
25
  def __init__(self, *args, **kwds):
26
- super(YamlLexerContext, self).__init__(*args, **kwds)
26
+ super().__init__(*args, **kwds)
27
27
  self.indent_stack = []
28
28
  self.indent = -1
29
29
  self.next_indent = 0
@@ -205,7 +205,7 @@ class YamlLexer(ExtendedRegexLexer):
205
205
  bygroups(Text, Number), 'ignored-line'),
206
206
  ],
207
207
 
208
- # the %YAG directive
208
+ # the %TAG directive
209
209
  'tag-directive': [
210
210
  # a tag handle and the corresponding prefix
211
211
  (r'([ ]+)(!|![\w-]*!)'
@@ -218,7 +218,7 @@ class YamlLexer(ExtendedRegexLexer):
218
218
  'indentation': [
219
219
  # trailing whitespaces are ignored
220
220
  (r'[ ]*$', something(Text), '#pop:2'),
221
- # whitespaces preceeding block collection indicators
221
+ # whitespaces preceding block collection indicators
222
222
  (r'[ ]+(?=[?:-](?:[ ]|$))', save_indent(Text)),
223
223
  # block collection indicators
224
224
  (r'[?:-](?=[ ]|$)', set_indent(Punctuation.Indicator)),
@@ -232,6 +232,9 @@ class YamlLexer(ExtendedRegexLexer):
232
232
  (r'[ ]*(?=#|$)', something(Text), '#pop'),
233
233
  # whitespaces separating tokens
234
234
  (r'[ ]+', Text),
235
+ # key with colon
236
+ (r'''([^#,:?\[\]{}"'\n]+)(:)(?=[ ]|$)''',
237
+ bygroups(Name.Tag, set_indent(Punctuation, implicit=True))),
235
238
  # tags, anchors and aliases,
236
239
  include('descriptors'),
237
240
  # block collections and scalars
@@ -250,7 +253,7 @@ class YamlLexer(ExtendedRegexLexer):
250
253
  (r'!<[\w#;/?:@&=+$,.!~*\'()\[\]%-]+>', Keyword.Type),
251
254
  # a tag in the form '!', '!suffix' or '!handle!suffix'
252
255
  (r'!(?:[\w-]+!)?'
253
- r'[\w#;/?:@&=+$,.!~*\'()\[\]%-]+', Keyword.Type),
256
+ r'[\w#;/?:@&=+$,.!~*\'()\[\]%-]*', Keyword.Type),
254
257
  # an anchor
255
258
  (r'&[\w-]+', Name.Label),
256
259
  # an alias
@@ -308,6 +311,9 @@ class YamlLexer(ExtendedRegexLexer):
308
311
 
309
312
  # a flow mapping indicated by '{' and '}'
310
313
  'flow-mapping': [
314
+ # key with colon
315
+ (r'''([^,:?\[\]{}"'\n]+)(:)(?=[ ]|$)''',
316
+ bygroups(Name.Tag, Punctuation)),
311
317
  # include flow collection rules
312
318
  include('flow-collection'),
313
319
  # the closing indicator
@@ -427,10 +433,10 @@ class YamlLexer(ExtendedRegexLexer):
427
433
  def get_tokens_unprocessed(self, text=None, context=None):
428
434
  if context is None:
429
435
  context = YamlLexerContext(text, 0)
430
- return super(YamlLexer, self).get_tokens_unprocessed(text, context)
436
+ return super().get_tokens_unprocessed(text, context)
431
437
 
432
438
 
433
- class JsonLexer(RegexLexer):
439
+ class JsonLexer(Lexer):
434
440
  """
435
441
  For JSON data structures.
436
442
 
@@ -438,75 +444,192 @@ class JsonLexer(RegexLexer):
438
444
  """
439
445
 
440
446
  name = 'JSON'
441
- aliases = ['json']
442
- filenames = ['*.json']
443
- mimetypes = ['application/json']
447
+ aliases = ['json', 'json-object']
448
+ filenames = ['*.json', 'Pipfile.lock']
449
+ mimetypes = ['application/json', 'application/json-object']
450
+
451
+ # No validation of integers, floats, or constants is done.
452
+ # As long as the characters are members of the following
453
+ # sets, the token will be considered valid. For example,
454
+ #
455
+ # "--1--" is parsed as an integer
456
+ # "1...eee" is parsed as a float
457
+ # "trustful" is parsed as a constant
458
+ #
459
+ integers = set('-0123456789')
460
+ floats = set('.eE+')
461
+ constants = set('truefalsenull') # true|false|null
462
+ hexadecimals = set('0123456789abcdefABCDEF')
463
+ punctuations = set('{}[],')
464
+ whitespaces = {'\u0020', '\u000a', '\u000d', '\u0009'}
465
+
466
+ def get_tokens_unprocessed(self, text):
467
+ """Parse JSON data."""
468
+
469
+ in_string = False
470
+ in_escape = False
471
+ in_unicode_escape = 0
472
+ in_whitespace = False
473
+ in_constant = False
474
+ in_number = False
475
+ in_float = False
476
+ in_punctuation = False
477
+
478
+ start = 0
479
+
480
+ # The queue is used to store data that may need to be tokenized
481
+ # differently based on what follows. In particular, JSON object
482
+ # keys are tokenized differently than string values, but cannot
483
+ # be distinguished until punctuation is encountered outside the
484
+ # string.
485
+ #
486
+ # A ":" character after the string indicates that the string is
487
+ # an object key; any other character indicates the string is a
488
+ # regular string value.
489
+ #
490
+ # The queue holds tuples that contain the following data:
491
+ #
492
+ # (start_index, token_type, text)
493
+ #
494
+ # By default the token type of text in double quotes is
495
+ # String.Double. The token type will be replaced if a colon
496
+ # is encountered after the string closes.
497
+ #
498
+ queue = []
499
+
500
+ for stop, character in enumerate(text):
501
+ if in_string:
502
+ if in_unicode_escape:
503
+ if character in self.hexadecimals:
504
+ in_unicode_escape -= 1
505
+ if not in_unicode_escape:
506
+ in_escape = False
507
+ else:
508
+ in_unicode_escape = 0
509
+ in_escape = False
510
+
511
+ elif in_escape:
512
+ if character == 'u':
513
+ in_unicode_escape = 4
514
+ else:
515
+ in_escape = False
516
+
517
+ elif character == '\\':
518
+ in_escape = True
519
+
520
+ elif character == '"':
521
+ queue.append((start, String.Double, text[start:stop + 1]))
522
+ in_string = False
523
+ in_escape = False
524
+ in_unicode_escape = 0
525
+
526
+ continue
527
+
528
+ elif in_whitespace:
529
+ if character in self.whitespaces:
530
+ continue
531
+
532
+ if queue:
533
+ queue.append((start, Text, text[start:stop]))
534
+ else:
535
+ yield start, Text, text[start:stop]
536
+ in_whitespace = False
537
+ # Fall through so the new character can be evaluated.
538
+
539
+ elif in_constant:
540
+ if character in self.constants:
541
+ continue
542
+
543
+ yield start, Keyword.Constant, text[start:stop]
544
+ in_constant = False
545
+ # Fall through so the new character can be evaluated.
546
+
547
+ elif in_number:
548
+ if character in self.integers:
549
+ continue
550
+ elif character in self.floats:
551
+ in_float = True
552
+ continue
553
+
554
+ if in_float:
555
+ yield start, Number.Float, text[start:stop]
556
+ else:
557
+ yield start, Number.Integer, text[start:stop]
558
+ in_number = False
559
+ in_float = False
560
+ # Fall through so the new character can be evaluated.
561
+
562
+ elif in_punctuation:
563
+ if character in self.punctuations:
564
+ continue
565
+
566
+ yield start, Punctuation, text[start:stop]
567
+ in_punctuation = False
568
+ # Fall through so the new character can be evaluated.
569
+
570
+ start = stop
571
+
572
+ if character == '"':
573
+ in_string = True
574
+
575
+ elif character in self.whitespaces:
576
+ in_whitespace = True
577
+
578
+ elif character in {'f', 'n', 't'}: # The first letters of true|false|null
579
+ # Exhaust the queue. Accept the existing token types.
580
+ yield from queue
581
+ queue.clear()
582
+
583
+ in_constant = True
584
+
585
+ elif character in self.integers:
586
+ # Exhaust the queue. Accept the existing token types.
587
+ yield from queue
588
+ queue.clear()
589
+
590
+ in_number = True
591
+
592
+ elif character == ':':
593
+ # Yield from the queue. Replace string token types.
594
+ for _start, _token, _text in queue:
595
+ if _token is Text:
596
+ yield _start, _token, _text
597
+ elif _token is String.Double:
598
+ yield _start, Name.Tag, _text
599
+ else:
600
+ yield _start, Error, _text
601
+ queue.clear()
602
+
603
+ in_punctuation = True
604
+
605
+ elif character in self.punctuations:
606
+ # Exhaust the queue. Accept the existing token types.
607
+ yield from queue
608
+ queue.clear()
609
+
610
+ in_punctuation = True
444
611
 
445
- flags = re.DOTALL
446
-
447
- # integer part of a number
448
- int_part = r'-?(0|[1-9]\d*)'
449
-
450
- # fractional part of a number
451
- frac_part = r'\.\d+'
452
-
453
- # exponential part of a number
454
- exp_part = r'[eE](\+|-)?\d+'
455
-
456
- tokens = {
457
- 'whitespace': [
458
- (r'\s+', Text),
459
- ],
460
-
461
- # represents a simple terminal value
462
- 'simplevalue': [
463
- (r'(true|false|null)\b', Keyword.Constant),
464
- (('%(int_part)s(%(frac_part)s%(exp_part)s|'
465
- '%(exp_part)s|%(frac_part)s)') % vars(),
466
- Number.Float),
467
- (int_part, Number.Integer),
468
- (r'"(\\\\|\\"|[^"])*"', String.Double),
469
- ],
470
-
471
-
472
- # the right hand side of an object, after the attribute name
473
- 'objectattribute': [
474
- include('value'),
475
- (r':', Punctuation),
476
- # comma terminates the attribute but expects more
477
- (r',', Punctuation, '#pop'),
478
- # a closing bracket terminates the entire object, so pop twice
479
- (r'\}', Punctuation, '#pop:2'),
480
- ],
481
-
482
- # a json object - { attr, attr, ... }
483
- 'objectvalue': [
484
- include('whitespace'),
485
- (r'"(\\\\|\\"|[^"])*"', Name.Tag, 'objectattribute'),
486
- (r'\}', Punctuation, '#pop'),
487
- ],
488
-
489
- # json array - [ value, value, ... }
490
- 'arrayvalue': [
491
- include('whitespace'),
492
- include('value'),
493
- (r',', Punctuation),
494
- (r'\]', Punctuation, '#pop'),
495
- ],
496
-
497
- # a json value - either a simple value or a complex value (object or array)
498
- 'value': [
499
- include('whitespace'),
500
- include('simplevalue'),
501
- (r'\{', Punctuation, 'objectvalue'),
502
- (r'\[', Punctuation, 'arrayvalue'),
503
- ],
504
-
505
- # the root of a json document whould be a value
506
- 'root': [
507
- include('value'),
508
- ],
509
- }
612
+ else:
613
+ # Exhaust the queue. Accept the existing token types.
614
+ yield from queue
615
+ queue.clear()
616
+
617
+ yield start, Error, character
618
+
619
+ # Yield any remaining text.
620
+ yield from queue
621
+ if in_string:
622
+ yield start, Error, text[start:]
623
+ elif in_float:
624
+ yield start, Number.Float, text[start:]
625
+ elif in_number:
626
+ yield start, Number.Integer, text[start:]
627
+ elif in_constant:
628
+ yield start, Keyword.Constant, text[start:]
629
+ elif in_whitespace:
630
+ yield start, Text, text[start:]
631
+ elif in_punctuation:
632
+ yield start, Punctuation, text[start:]
510
633
 
511
634
 
512
635
  class JsonBareObjectLexer(JsonLexer):
@@ -514,28 +637,21 @@ class JsonBareObjectLexer(JsonLexer):
514
637
  For JSON data structures (with missing object curly braces).
515
638
 
516
639
  .. versionadded:: 2.2
640
+
641
+ .. deprecated:: 2.8.0
642
+
643
+ Behaves the same as `JsonLexer` now.
517
644
  """
518
645
 
519
646
  name = 'JSONBareObject'
520
- aliases = ['json-object']
647
+ aliases = []
521
648
  filenames = []
522
- mimetypes = ['application/json-object']
523
-
524
- tokens = {
525
- 'root': [
526
- (r'\}', Error),
527
- include('objectvalue'),
528
- ],
529
- 'objectattribute': [
530
- (r'\}', Error),
531
- inherit,
532
- ],
533
- }
649
+ mimetypes = []
534
650
 
535
651
 
536
652
  class JsonLdLexer(JsonLexer):
537
653
  """
538
- For `JSON-LD <http://json-ld.org/>`_ linked data.
654
+ For `JSON-LD <https://json-ld.org/>`_ linked data.
539
655
 
540
656
  .. versionadded:: 2.0
541
657
  """
@@ -545,11 +661,38 @@ class JsonLdLexer(JsonLexer):
545
661
  filenames = ['*.jsonld']
546
662
  mimetypes = ['application/ld+json']
547
663
 
548
- tokens = {
549
- 'objectvalue': [
550
- (r'"@(context|id|value|language|type|container|list|set|'
551
- r'reverse|index|base|vocab|graph)"', Name.Decorator,
552
- 'objectattribute'),
553
- inherit,
554
- ],
664
+ json_ld_keywords = {
665
+ '"@%s"' % keyword
666
+ for keyword in (
667
+ 'base',
668
+ 'container',
669
+ 'context',
670
+ 'direction',
671
+ 'graph',
672
+ 'id',
673
+ 'import',
674
+ 'included',
675
+ 'index',
676
+ 'json',
677
+ 'language',
678
+ 'list',
679
+ 'nest',
680
+ 'none',
681
+ 'prefix',
682
+ 'propagate',
683
+ 'protected',
684
+ 'reverse',
685
+ 'set',
686
+ 'type',
687
+ 'value',
688
+ 'version',
689
+ 'vocab',
690
+ )
555
691
  }
692
+
693
+ def get_tokens_unprocessed(self, text):
694
+ for start, token, value in super(JsonLdLexer, self).get_tokens_unprocessed(text):
695
+ if token is Name.Tag and value in self.json_ld_keywords:
696
+ yield start, Name.Decorator, value
697
+ else:
698
+ yield start, token, value