pygments.rb 1.2.1 → 2.0.0.rc2

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 (378) 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 +119 -0
  7. data/Gemfile +3 -1
  8. data/LICENSE +1 -1
  9. data/README.adoc +161 -0
  10. data/Rakefile +10 -21
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lib/pygments.rb +10 -11
  14. data/lib/pygments/lexer.rb +5 -5
  15. data/lib/pygments/mentos.py +23 -66
  16. data/lib/pygments/popen.rb +152 -204
  17. data/lib/pygments/version.rb +2 -2
  18. data/pygments.rb.gemspec +11 -9
  19. data/test/test_pygments.rb +51 -84
  20. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +21 -3
  21. data/vendor/pygments-main/Pygments-2.7.3.dist-info/INSTALLER +1 -0
  22. data/vendor/pygments-main/{LICENSE → Pygments-2.7.3.dist-info/LICENSE} +1 -1
  23. data/vendor/pygments-main/Pygments-2.7.3.dist-info/METADATA +49 -0
  24. data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +482 -0
  25. data/vendor/pygments-main/Pygments-2.7.3.dist-info/REQUESTED +0 -0
  26. data/vendor/pygments-main/Pygments-2.7.3.dist-info/WHEEL +5 -0
  27. data/vendor/pygments-main/Pygments-2.7.3.dist-info/entry_points.txt +3 -0
  28. data/vendor/pygments-main/Pygments-2.7.3.dist-info/top_level.txt +1 -0
  29. data/vendor/pygments-main/bin/pygmentize +8 -0
  30. data/vendor/pygments-main/pygments/__init__.py +6 -11
  31. data/vendor/pygments-main/pygments/__main__.py +18 -0
  32. data/vendor/pygments-main/pygments/cmdline.py +38 -29
  33. data/vendor/pygments-main/pygments/console.py +6 -9
  34. data/vendor/pygments-main/pygments/filter.py +4 -6
  35. data/vendor/pygments-main/pygments/filters/__init__.py +609 -21
  36. data/vendor/pygments-main/pygments/formatter.py +4 -4
  37. data/vendor/pygments-main/pygments/formatters/__init__.py +9 -8
  38. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -3
  39. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  40. data/vendor/pygments-main/pygments/formatters/html.py +223 -135
  41. data/vendor/pygments-main/pygments/formatters/img.py +68 -41
  42. data/vendor/pygments-main/pygments/formatters/irc.py +39 -39
  43. data/vendor/pygments-main/pygments/formatters/latex.py +56 -26
  44. data/vendor/pygments-main/pygments/formatters/other.py +12 -8
  45. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -29
  46. data/vendor/pygments-main/pygments/formatters/svg.py +38 -4
  47. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -31
  48. data/vendor/pygments-main/pygments/formatters/terminal256.py +22 -12
  49. data/vendor/pygments-main/pygments/lexer.py +41 -39
  50. data/vendor/pygments-main/pygments/lexers/__init__.py +342 -0
  51. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1645 -0
  52. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +232 -0
  53. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +71 -0
  54. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1725 -0
  55. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +5327 -0
  56. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +293 -0
  57. data/vendor/pygments-main/pygments/lexers/_mapping.py +551 -0
  58. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1172 -0
  59. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1282 -0
  60. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +2547 -0
  61. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +4753 -0
  62. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +678 -0
  63. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3094 -0
  64. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1161 -0
  65. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +558 -0
  66. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +421 -0
  67. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1004 -0
  68. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +113 -0
  69. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +280 -0
  70. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1939 -0
  71. data/vendor/pygments-main/pygments/lexers/actionscript.py +245 -0
  72. data/vendor/pygments-main/pygments/lexers/agile.py +24 -0
  73. data/vendor/pygments-main/pygments/lexers/algebra.py +240 -0
  74. data/vendor/pygments-main/pygments/lexers/ambient.py +76 -0
  75. data/vendor/pygments-main/pygments/lexers/ampl.py +87 -0
  76. data/vendor/pygments-main/pygments/lexers/apl.py +101 -0
  77. data/vendor/pygments-main/pygments/lexers/archetype.py +318 -0
  78. data/vendor/pygments-main/pygments/lexers/arrow.py +117 -0
  79. data/vendor/pygments-main/pygments/lexers/asm.py +1005 -0
  80. data/vendor/pygments-main/pygments/lexers/automation.py +374 -0
  81. data/vendor/pygments-main/pygments/lexers/bare.py +104 -0
  82. data/vendor/pygments-main/pygments/lexers/basic.py +662 -0
  83. data/vendor/pygments-main/pygments/lexers/bibtex.py +160 -0
  84. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  85. data/vendor/pygments-main/pygments/lexers/business.py +627 -0
  86. data/vendor/pygments-main/pygments/lexers/c_cpp.py +344 -0
  87. data/vendor/pygments-main/pygments/lexers/c_like.py +566 -0
  88. data/vendor/pygments-main/pygments/lexers/capnproto.py +78 -0
  89. data/vendor/pygments-main/pygments/lexers/chapel.py +112 -0
  90. data/vendor/pygments-main/pygments/lexers/clean.py +179 -0
  91. data/vendor/pygments-main/pygments/lexers/compiled.py +34 -0
  92. data/vendor/pygments-main/pygments/lexers/configs.py +984 -0
  93. data/vendor/pygments-main/pygments/lexers/console.py +114 -0
  94. data/vendor/pygments-main/pygments/lexers/crystal.py +392 -0
  95. data/vendor/pygments-main/pygments/lexers/csound.py +467 -0
  96. data/vendor/pygments-main/pygments/lexers/css.py +691 -0
  97. data/vendor/pygments-main/pygments/lexers/d.py +256 -0
  98. data/vendor/pygments-main/pygments/lexers/dalvik.py +125 -0
  99. data/vendor/pygments-main/pygments/lexers/data.py +698 -0
  100. data/vendor/pygments-main/pygments/lexers/devicetree.py +109 -0
  101. data/vendor/pygments-main/pygments/lexers/diff.py +165 -0
  102. data/vendor/pygments-main/pygments/lexers/dotnet.py +707 -0
  103. data/vendor/pygments-main/pygments/lexers/dsls.py +960 -0
  104. data/vendor/pygments-main/pygments/lexers/dylan.py +287 -0
  105. data/vendor/pygments-main/pygments/lexers/ecl.py +139 -0
  106. data/vendor/pygments-main/pygments/lexers/eiffel.py +65 -0
  107. data/vendor/pygments-main/pygments/lexers/elm.py +121 -0
  108. data/vendor/pygments-main/pygments/lexers/email.py +151 -0
  109. data/vendor/pygments-main/pygments/lexers/erlang.py +530 -0
  110. data/vendor/pygments-main/pygments/lexers/esoteric.py +304 -0
  111. data/vendor/pygments-main/pygments/lexers/ezhil.py +77 -0
  112. data/vendor/pygments-main/pygments/lexers/factor.py +344 -0
  113. data/vendor/pygments-main/pygments/lexers/fantom.py +250 -0
  114. data/vendor/pygments-main/pygments/lexers/felix.py +273 -0
  115. data/vendor/pygments-main/pygments/lexers/floscript.py +83 -0
  116. data/vendor/pygments-main/pygments/lexers/forth.py +178 -0
  117. data/vendor/pygments-main/pygments/lexers/fortran.py +206 -0
  118. data/vendor/pygments-main/pygments/lexers/foxpro.py +428 -0
  119. data/vendor/pygments-main/pygments/lexers/freefem.py +898 -0
  120. data/vendor/pygments-main/pygments/lexers/functional.py +21 -0
  121. data/vendor/pygments-main/pygments/lexers/gdscript.py +346 -0
  122. data/vendor/pygments-main/pygments/lexers/go.py +101 -0
  123. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +270 -0
  124. data/vendor/pygments-main/pygments/lexers/graph.py +85 -0
  125. data/vendor/pygments-main/pygments/lexers/graphics.py +800 -0
  126. data/vendor/pygments-main/pygments/lexers/haskell.py +870 -0
  127. data/vendor/pygments-main/pygments/lexers/haxe.py +936 -0
  128. data/vendor/pygments-main/pygments/lexers/hdl.py +472 -0
  129. data/vendor/pygments-main/pygments/lexers/hexdump.py +103 -0
  130. data/vendor/pygments-main/pygments/lexers/html.py +614 -0
  131. data/vendor/pygments-main/pygments/lexers/idl.py +281 -0
  132. data/vendor/pygments-main/pygments/lexers/igor.py +420 -0
  133. data/vendor/pygments-main/pygments/lexers/inferno.py +96 -0
  134. data/vendor/pygments-main/pygments/lexers/installers.py +322 -0
  135. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1368 -0
  136. data/vendor/pygments-main/pygments/lexers/iolang.py +63 -0
  137. data/vendor/pygments-main/pygments/lexers/j.py +146 -0
  138. data/vendor/pygments-main/pygments/lexers/javascript.py +1540 -0
  139. data/vendor/pygments-main/pygments/lexers/julia.py +331 -0
  140. data/vendor/pygments-main/pygments/lexers/jvm.py +1673 -0
  141. data/vendor/pygments-main/pygments/lexers/lisp.py +2699 -0
  142. data/vendor/pygments-main/pygments/lexers/make.py +206 -0
  143. data/vendor/pygments-main/pygments/lexers/markup.py +765 -0
  144. data/vendor/pygments-main/pygments/lexers/math.py +21 -0
  145. data/vendor/pygments-main/pygments/lexers/matlab.py +720 -0
  146. data/vendor/pygments-main/pygments/lexers/mime.py +226 -0
  147. data/vendor/pygments-main/pygments/lexers/ml.py +958 -0
  148. data/vendor/pygments-main/pygments/lexers/modeling.py +366 -0
  149. data/vendor/pygments-main/pygments/lexers/modula2.py +1580 -0
  150. data/vendor/pygments-main/pygments/lexers/monte.py +204 -0
  151. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  152. data/vendor/pygments-main/pygments/lexers/ncl.py +894 -0
  153. data/vendor/pygments-main/pygments/lexers/nimrod.py +159 -0
  154. data/vendor/pygments-main/pygments/lexers/nit.py +64 -0
  155. data/vendor/pygments-main/pygments/lexers/nix.py +136 -0
  156. data/vendor/pygments-main/pygments/lexers/oberon.py +121 -0
  157. data/vendor/pygments-main/pygments/lexers/objective.py +504 -0
  158. data/vendor/pygments-main/pygments/lexers/ooc.py +85 -0
  159. data/vendor/pygments-main/pygments/lexers/other.py +41 -0
  160. data/vendor/pygments-main/pygments/lexers/parasail.py +79 -0
  161. data/vendor/pygments-main/pygments/lexers/parsers.py +800 -0
  162. data/vendor/pygments-main/pygments/lexers/pascal.py +644 -0
  163. data/vendor/pygments-main/pygments/lexers/pawn.py +205 -0
  164. data/vendor/pygments-main/pygments/lexers/perl.py +732 -0
  165. data/vendor/pygments-main/pygments/lexers/php.py +321 -0
  166. data/vendor/pygments-main/pygments/lexers/pointless.py +71 -0
  167. data/vendor/pygments-main/pygments/lexers/pony.py +94 -0
  168. data/vendor/pygments-main/pygments/lexers/praat.py +302 -0
  169. data/vendor/pygments-main/pygments/lexers/prolog.py +306 -0
  170. data/vendor/pygments-main/pygments/lexers/promql.py +183 -0
  171. data/vendor/pygments-main/pygments/lexers/python.py +1151 -0
  172. data/vendor/pygments-main/pygments/lexers/qvt.py +152 -0
  173. data/vendor/pygments-main/pygments/lexers/r.py +191 -0
  174. data/vendor/pygments-main/pygments/lexers/rdf.py +463 -0
  175. data/vendor/pygments-main/pygments/lexers/rebol.py +431 -0
  176. data/vendor/pygments-main/pygments/lexers/resource.py +85 -0
  177. data/vendor/pygments-main/pygments/lexers/ride.py +139 -0
  178. data/vendor/pygments-main/pygments/lexers/rnc.py +67 -0
  179. data/vendor/pygments-main/pygments/lexers/roboconf.py +82 -0
  180. data/vendor/pygments-main/pygments/lexers/robotframework.py +552 -0
  181. data/vendor/pygments-main/pygments/lexers/ruby.py +517 -0
  182. data/vendor/pygments-main/pygments/lexers/rust.py +224 -0
  183. data/vendor/pygments-main/pygments/lexers/sas.py +228 -0
  184. data/vendor/pygments-main/pygments/lexers/scdoc.py +83 -0
  185. data/vendor/pygments-main/pygments/lexers/scripting.py +1284 -0
  186. data/vendor/pygments-main/pygments/lexers/sgf.py +61 -0
  187. data/vendor/pygments-main/pygments/lexers/shell.py +914 -0
  188. data/vendor/pygments-main/pygments/lexers/sieve.py +69 -0
  189. data/vendor/pygments-main/pygments/lexers/slash.py +185 -0
  190. data/vendor/pygments-main/pygments/lexers/smalltalk.py +195 -0
  191. data/vendor/pygments-main/pygments/lexers/smv.py +79 -0
  192. data/vendor/pygments-main/pygments/lexers/snobol.py +83 -0
  193. data/vendor/pygments-main/pygments/lexers/solidity.py +92 -0
  194. data/vendor/pygments-main/pygments/lexers/special.py +105 -0
  195. data/vendor/pygments-main/pygments/lexers/sql.py +837 -0
  196. data/vendor/pygments-main/pygments/lexers/stata.py +171 -0
  197. data/vendor/pygments-main/pygments/lexers/supercollider.py +95 -0
  198. data/vendor/pygments-main/pygments/lexers/tcl.py +145 -0
  199. data/vendor/pygments-main/pygments/lexers/templates.py +2264 -0
  200. data/vendor/pygments-main/pygments/lexers/teraterm.py +335 -0
  201. data/vendor/pygments-main/pygments/lexers/testing.py +207 -0
  202. data/vendor/pygments-main/pygments/lexers/text.py +26 -0
  203. data/vendor/pygments-main/pygments/lexers/textedit.py +169 -0
  204. data/vendor/pygments-main/pygments/lexers/textfmts.py +430 -0
  205. data/vendor/pygments-main/pygments/lexers/theorem.py +474 -0
  206. data/vendor/pygments-main/pygments/lexers/tnt.py +263 -0
  207. data/vendor/pygments-main/pygments/lexers/trafficscript.py +54 -0
  208. data/vendor/pygments-main/pygments/lexers/typoscript.py +219 -0
  209. data/vendor/pygments-main/pygments/lexers/unicon.py +412 -0
  210. data/vendor/pygments-main/pygments/lexers/urbi.py +146 -0
  211. data/vendor/pygments-main/pygments/lexers/usd.py +90 -0
  212. data/vendor/pygments-main/pygments/lexers/varnish.py +190 -0
  213. data/vendor/pygments-main/pygments/lexers/verification.py +114 -0
  214. data/vendor/pygments-main/pygments/lexers/web.py +24 -0
  215. data/vendor/pygments-main/pygments/lexers/webidl.py +299 -0
  216. data/vendor/pygments-main/pygments/lexers/webmisc.py +991 -0
  217. data/vendor/pygments-main/pygments/lexers/whiley.py +116 -0
  218. data/vendor/pygments-main/pygments/lexers/x10.py +69 -0
  219. data/vendor/pygments-main/pygments/lexers/xorg.py +37 -0
  220. data/vendor/pygments-main/pygments/lexers/yang.py +104 -0
  221. data/vendor/pygments-main/pygments/lexers/zig.py +124 -0
  222. data/vendor/pygments-main/pygments/modeline.py +1 -1
  223. data/vendor/pygments-main/pygments/plugin.py +4 -2
  224. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  225. data/vendor/pygments-main/pygments/scanner.py +2 -2
  226. data/vendor/pygments-main/pygments/sphinxext.py +2 -4
  227. data/vendor/pygments-main/pygments/style.py +61 -24
  228. data/vendor/pygments-main/pygments/styles/__init__.py +10 -4
  229. data/vendor/pygments-main/pygments/styles/abap.py +1 -1
  230. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  231. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  232. data/vendor/pygments-main/pygments/styles/arduino.py +2 -2
  233. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  234. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  238. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  239. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  240. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  241. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  242. data/vendor/pygments-main/pygments/styles/inkpot.py +67 -0
  243. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  244. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  245. data/vendor/pygments-main/pygments/styles/monokai.py +4 -3
  246. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  247. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  248. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  249. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  250. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  251. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  252. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -1
  253. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  254. data/vendor/pygments-main/pygments/styles/sas.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/solarized.py +134 -0
  256. data/vendor/pygments-main/pygments/styles/stata_dark.py +41 -0
  257. data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -15
  258. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  259. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  260. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  261. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  262. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  263. data/vendor/pygments-main/pygments/token.py +1 -1
  264. data/vendor/pygments-main/pygments/unistring.py +47 -108
  265. data/vendor/pygments-main/pygments/util.py +15 -92
  266. metadata +69 -136
  267. data/CHANGELOG.md +0 -111
  268. data/README.md +0 -121
  269. data/circle.yml +0 -20
  270. data/test/test_data.py +0 -514
  271. data/test/test_data_generated +0 -2582
  272. data/vendor/custom_lexers/github.py +0 -565
  273. data/vendor/pygments-main/CHANGES +0 -1186
  274. data/vendor/pygments-main/MANIFEST.in +0 -6
  275. data/vendor/pygments-main/Makefile +0 -65
  276. data/vendor/pygments-main/README.rst +0 -39
  277. data/vendor/pygments-main/REVISION +0 -1
  278. data/vendor/pygments-main/TODO +0 -12
  279. data/vendor/pygments-main/doc/Makefile +0 -153
  280. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  281. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  282. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  283. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  284. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  285. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  286. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  287. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  288. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  289. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  290. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  291. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  292. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  293. data/vendor/pygments-main/doc/conf.py +0 -241
  294. data/vendor/pygments-main/doc/docs/api.rst +0 -354
  295. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  296. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  297. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
  298. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  299. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  300. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  301. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  302. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  303. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  304. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  305. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
  306. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  307. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  308. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  309. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  310. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  311. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  312. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  313. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  314. data/vendor/pygments-main/doc/download.rst +0 -41
  315. data/vendor/pygments-main/doc/faq.rst +0 -139
  316. data/vendor/pygments-main/doc/index.rst +0 -54
  317. data/vendor/pygments-main/doc/languages.rst +0 -154
  318. data/vendor/pygments-main/doc/make.bat +0 -190
  319. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  320. data/vendor/pygments-main/external/autopygmentize +0 -101
  321. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  322. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  323. data/vendor/pygments-main/external/moin-parser.py +0 -112
  324. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  325. data/vendor/pygments-main/external/rst-directive.py +0 -82
  326. data/vendor/pygments-main/pygmentize +0 -8
  327. data/vendor/pygments-main/requirements.txt +0 -5
  328. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  329. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  330. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  331. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  332. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  333. data/vendor/pygments-main/scripts/pylintrc +0 -301
  334. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  335. data/vendor/pygments-main/setup.cfg +0 -10
  336. data/vendor/pygments-main/setup.py +0 -77
  337. data/vendor/pygments-main/tox.ini +0 -7
  338. data/vendor/simplejson/.gitignore +0 -10
  339. data/vendor/simplejson/.travis.yml +0 -5
  340. data/vendor/simplejson/CHANGES.txt +0 -291
  341. data/vendor/simplejson/LICENSE.txt +0 -19
  342. data/vendor/simplejson/MANIFEST.in +0 -5
  343. data/vendor/simplejson/README.rst +0 -19
  344. data/vendor/simplejson/conf.py +0 -179
  345. data/vendor/simplejson/index.rst +0 -628
  346. data/vendor/simplejson/scripts/make_docs.py +0 -18
  347. data/vendor/simplejson/setup.py +0 -104
  348. data/vendor/simplejson/simplejson/__init__.py +0 -510
  349. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  350. data/vendor/simplejson/simplejson/decoder.py +0 -425
  351. data/vendor/simplejson/simplejson/encoder.py +0 -567
  352. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  353. data/vendor/simplejson/simplejson/scanner.py +0 -77
  354. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  355. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  356. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  357. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  358. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  359. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  360. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  361. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  362. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  363. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  364. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  365. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  366. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  367. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  368. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  369. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  370. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  371. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  372. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  373. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  374. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  375. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  376. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  377. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  378. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.35.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ pygmentize = pygments.cmdline:main
3
+
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/python3.8
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from pygments.cmdline import main
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(main())
@@ -17,19 +17,18 @@
17
17
  * it is usable as a command-line tool and as a library
18
18
  * ... and it highlights even Brainfuck!
19
19
 
20
- The `Pygments tip`_ is installable with ``easy_install Pygments==dev``.
20
+ The `Pygments master branch`_ is installable with ``easy_install Pygments==dev``.
21
21
 
22
- .. _Pygments tip:
23
- http://bitbucket.org/birkenfeld/pygments-main/get/tip.zip#egg=Pygments-dev
22
+ .. _Pygments master branch:
23
+ https://github.com/pygments/pygments/archive/master.zip#egg=Pygments-dev
24
24
 
25
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
25
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
26
26
  :license: BSD, see LICENSE for details.
27
27
  """
28
28
  import sys
29
+ from io import StringIO, BytesIO
29
30
 
30
- from pygments.util import StringIO, BytesIO
31
-
32
- __version__ = '2.2.0'
31
+ __version__ = '2.7.3'
33
32
  __docformat__ = 'restructuredtext'
34
33
 
35
34
  __all__ = ['lex', 'format', 'highlight']
@@ -84,7 +83,3 @@ def highlight(code, lexer, formatter, outfile=None):
84
83
  """
85
84
  return format(lex(code, lexer), formatter, outfile)
86
85
 
87
-
88
- if __name__ == '__main__': # pragma: no cover
89
- from pygments.cmdline import main
90
- sys.exit(main(sys.argv))
@@ -0,0 +1,18 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.__main__
4
+ ~~~~~~~~~~~~~~~~~
5
+
6
+ Main entry point for ``python -m pygments``.
7
+
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ import sys
13
+ import pygments.cmdline
14
+
15
+ try:
16
+ sys.exit(pygments.cmdline.main(sys.argv))
17
+ except KeyboardInterrupt:
18
+ sys.exit(1)
@@ -5,12 +5,10 @@
5
5
 
6
6
  Command line interface.
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
 
12
- from __future__ import print_function
13
-
14
12
  import os
15
13
  import sys
16
14
  import getopt
@@ -18,7 +16,8 @@ from textwrap import dedent
18
16
 
19
17
  from pygments import __version__, highlight
20
18
  from pygments.util import ClassNotFound, OptionError, docstring_headline, \
21
- guess_decode, guess_decode_from_terminal, terminal_encoding
19
+ guess_decode, guess_decode_from_terminal, terminal_encoding, \
20
+ UnclosingTextIOWrapper
22
21
  from pygments.lexers import get_all_lexers, get_lexer_by_name, guess_lexer, \
23
22
  load_lexer_from_file, get_lexer_for_filename, find_lexer_class_for_filename
24
23
  from pygments.lexers.special import TextLexer
@@ -233,7 +232,7 @@ def main_inner(popts, args, usage):
233
232
  return 0
234
233
 
235
234
  if opts.pop('-V', None) is not None:
236
- print('Pygments version %s, (c) 2006-2017 by Georg Brandl.' % __version__)
235
+ print('Pygments version %s, (c) 2006-2020 by Georg Brandl.' % __version__)
237
236
  return 0
238
237
 
239
238
  # handle ``pygmentize -L``
@@ -338,8 +337,17 @@ def main_inner(popts, args, usage):
338
337
  # custom lexer, located relative to user's cwd
339
338
  if allow_custom_lexer_formatter and '.py' in lexername:
340
339
  try:
340
+ filename = None
341
+ name = None
341
342
  if ':' in lexername:
342
343
  filename, name = lexername.rsplit(':', 1)
344
+
345
+ if '.py' in name:
346
+ # This can happen on Windows: If the lexername is
347
+ # C:\lexer.py -- return to normal load path in that case
348
+ name = None
349
+
350
+ if filename and name:
343
351
  lexer = load_lexer_from_file(filename, name,
344
352
  **parsed_opts)
345
353
  else:
@@ -397,11 +405,7 @@ def main_inner(popts, args, usage):
397
405
  elif '-s' not in opts: # treat stdin as full file (-s support is later)
398
406
  # read code from terminal, always in binary mode since we want to
399
407
  # decode ourselves and be tolerant with it
400
- if sys.version_info > (3,):
401
- # Python 3: we have to use .buffer to get a binary stream
402
- code = sys.stdin.buffer.read()
403
- else:
404
- code = sys.stdin.read()
408
+ code = sys.stdin.buffer.read() # use .buffer to get a binary stream
405
409
  if not inencoding:
406
410
  code, inencoding = guess_decode_from_terminal(code, sys.stdin)
407
411
  # else the lexer will do the decoding
@@ -432,10 +436,18 @@ def main_inner(popts, args, usage):
432
436
  # custom formatter, located relative to user's cwd
433
437
  if allow_custom_lexer_formatter and '.py' in fmter:
434
438
  try:
439
+ filename = None
440
+ name = None
435
441
  if ':' in fmter:
436
- file, fmtername = fmter.rsplit(':', 1)
437
- fmter = load_formatter_from_file(file, fmtername,
438
- **parsed_opts)
442
+ # Same logic as above for custom lexer
443
+ filename, name = fmter.rsplit(':', 1)
444
+
445
+ if '.py' in name:
446
+ name = None
447
+
448
+ if filename and name:
449
+ fmter = load_formatter_from_file(filename, name,
450
+ **parsed_opts)
439
451
  else:
440
452
  fmter = load_formatter_from_file(fmter, **parsed_opts)
441
453
  except ClassNotFound as err:
@@ -466,11 +478,7 @@ def main_inner(popts, args, usage):
466
478
  fmter = Terminal256Formatter(**parsed_opts)
467
479
  else:
468
480
  fmter = TerminalFormatter(**parsed_opts)
469
- if sys.version_info > (3,):
470
- # Python 3: we have to use .buffer to get a binary stream
471
- outfile = sys.stdout.buffer
472
- else:
473
- outfile = sys.stdout
481
+ outfile = sys.stdout.buffer
474
482
 
475
483
  # determine output encoding if not explicitly selected
476
484
  if not outencoding:
@@ -485,10 +493,8 @@ def main_inner(popts, args, usage):
485
493
  if not outfn and sys.platform in ('win32', 'cygwin') and \
486
494
  fmter.name in ('Terminal', 'Terminal256'): # pragma: no cover
487
495
  # unfortunately colorama doesn't support binary streams on Py3
488
- if sys.version_info > (3,):
489
- from pygments.util import UnclosingTextIOWrapper
490
- outfile = UnclosingTextIOWrapper(outfile, encoding=fmter.encoding)
491
- fmter.encoding = None
496
+ outfile = UnclosingTextIOWrapper(outfile, encoding=fmter.encoding)
497
+ fmter.encoding = None
492
498
  try:
493
499
  import colorama.initialise
494
500
  except ImportError:
@@ -509,17 +515,17 @@ def main_inner(popts, args, usage):
509
515
  # ... and do it!
510
516
  if '-s' not in opts:
511
517
  # process whole input as per normal...
512
- highlight(code, lexer, fmter, outfile)
518
+ try:
519
+ highlight(code, lexer, fmter, outfile)
520
+ finally:
521
+ if outfn:
522
+ outfile.close()
513
523
  return 0
514
524
  else:
515
525
  # line by line processing of stdin (eg: for 'tail -f')...
516
526
  try:
517
527
  while 1:
518
- if sys.version_info > (3,):
519
- # Python 3: we have to use .buffer to get a binary stream
520
- line = sys.stdin.buffer.readline()
521
- else:
522
- line = sys.stdin.readline()
528
+ line = sys.stdin.buffer.readline()
523
529
  if not line:
524
530
  break
525
531
  if not inencoding:
@@ -530,6 +536,9 @@ def main_inner(popts, args, usage):
530
536
  return 0
531
537
  except KeyboardInterrupt: # pragma: no cover
532
538
  return 0
539
+ finally:
540
+ if outfn:
541
+ outfile.close()
533
542
 
534
543
 
535
544
  def main(args=sys.argv):
@@ -554,7 +563,7 @@ def main(args=sys.argv):
554
563
  file=sys.stderr)
555
564
  print('Please report the whole traceback to the issue tracker at',
556
565
  file=sys.stderr)
557
- print('<https://bitbucket.org/birkenfeld/pygments-main/issues>.',
566
+ print('<https://github.com/pygments/pygments/issues>.',
558
567
  file=sys.stderr)
559
568
  print('*' * 65, file=sys.stderr)
560
569
  print(file=sys.stderr)
@@ -5,7 +5,7 @@
5
5
 
6
6
  Format colored console output.
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
 
@@ -22,22 +22,19 @@ codes["underline"] = esc + "04m"
22
22
  codes["blink"] = esc + "05m"
23
23
  codes["overline"] = esc + "06m"
24
24
 
25
- dark_colors = ["black", "darkred", "darkgreen", "brown", "darkblue",
26
- "purple", "teal", "lightgray"]
27
- light_colors = ["darkgray", "red", "green", "yellow", "blue",
28
- "fuchsia", "turquoise", "white"]
25
+ dark_colors = ["black", "red", "green", "yellow", "blue",
26
+ "magenta", "cyan", "gray"]
27
+ light_colors = ["brightblack", "brightred", "brightgreen", "brightyellow", "brightblue",
28
+ "brightmagenta", "brightcyan", "white"]
29
29
 
30
30
  x = 30
31
31
  for d, l in zip(dark_colors, light_colors):
32
32
  codes[d] = esc + "%im" % x
33
- codes[l] = esc + "%i;01m" % x
33
+ codes[l] = esc + "%im" % (60 + x)
34
34
  x += 1
35
35
 
36
36
  del d, l, x
37
37
 
38
- codes["darkteal"] = codes["turquoise"]
39
- codes["darkyellow"] = codes["brown"]
40
- codes["fuscia"] = codes["fuchsia"]
41
38
  codes["white"] = codes["bold"]
42
39
 
43
40
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Module that implements the default filter.
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
 
@@ -17,8 +17,7 @@ def apply_filters(stream, filters, lexer=None):
17
17
  filter, otherwise the filter receives `None`.
18
18
  """
19
19
  def _apply(filter_, stream):
20
- for token in filter_.filter(lexer, stream):
21
- yield token
20
+ yield from filter_.filter(lexer, stream)
22
21
  for filter_ in filters:
23
22
  stream = _apply(filter_, stream)
24
23
  return stream
@@ -40,7 +39,7 @@ def simplefilter(f):
40
39
  })
41
40
 
42
41
 
43
- class Filter(object):
42
+ class Filter:
44
43
  """
45
44
  Default filter. Subclass this class or use the `simplefilter`
46
45
  decorator to create own filters.
@@ -70,5 +69,4 @@ class FunctionFilter(Filter):
70
69
 
71
70
  def filter(self, lexer, stream):
72
71
  # pylint: disable=not-callable
73
- for ttype, value in self.function(lexer, stream, self.options):
74
- yield ttype, value
72
+ yield from self.function(lexer, stream, self.options)
@@ -6,7 +6,7 @@
6
6
  Module containing filter lookup functions and default
7
7
  filters.
8
8
 
9
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
10
10
  :license: BSD, see LICENSE for details.
11
11
  """
12
12
 
@@ -16,7 +16,7 @@ from pygments.token import String, Comment, Keyword, Name, Error, Whitespace, \
16
16
  string_to_tokentype
17
17
  from pygments.filter import Filter
18
18
  from pygments.util import get_list_opt, get_int_opt, get_bool_opt, \
19
- get_choice_opt, ClassNotFound, OptionError, text_type, string_types
19
+ get_choice_opt, ClassNotFound, OptionError
20
20
  from pygments.plugin import find_plugin_filters
21
21
 
22
22
 
@@ -45,8 +45,7 @@ def get_filter_by_name(filtername, **options):
45
45
 
46
46
  def get_all_filters():
47
47
  """Return a generator of all filter names."""
48
- for name in FILTERS:
49
- yield name
48
+ yield from FILTERS
50
49
  for name, _ in find_plugin_filters():
51
50
  yield name
52
51
 
@@ -88,9 +87,597 @@ class CodeTagFilter(Filter):
88
87
  if ttype in String.Doc or \
89
88
  ttype in Comment and \
90
89
  ttype not in Comment.Preproc:
91
- for sttype, svalue in _replace_special(ttype, value, regex,
92
- Comment.Special):
93
- yield sttype, svalue
90
+ yield from _replace_special(ttype, value, regex, Comment.Special)
91
+ else:
92
+ yield ttype, value
93
+
94
+
95
+ class SymbolFilter(Filter):
96
+ """Convert mathematical symbols such as \\<longrightarrow> in Isabelle
97
+ or \\longrightarrow in LaTeX into Unicode characters.
98
+
99
+ This is mostly useful for HTML or console output when you want to
100
+ approximate the source rendering you'd see in an IDE.
101
+
102
+ Options accepted:
103
+
104
+ `lang` : string
105
+ The symbol language. Must be one of ``'isabelle'`` or
106
+ ``'latex'``. The default is ``'isabelle'``.
107
+ """
108
+
109
+ latex_symbols = {
110
+ '\\alpha' : '\U000003b1',
111
+ '\\beta' : '\U000003b2',
112
+ '\\gamma' : '\U000003b3',
113
+ '\\delta' : '\U000003b4',
114
+ '\\varepsilon' : '\U000003b5',
115
+ '\\zeta' : '\U000003b6',
116
+ '\\eta' : '\U000003b7',
117
+ '\\vartheta' : '\U000003b8',
118
+ '\\iota' : '\U000003b9',
119
+ '\\kappa' : '\U000003ba',
120
+ '\\lambda' : '\U000003bb',
121
+ '\\mu' : '\U000003bc',
122
+ '\\nu' : '\U000003bd',
123
+ '\\xi' : '\U000003be',
124
+ '\\pi' : '\U000003c0',
125
+ '\\varrho' : '\U000003c1',
126
+ '\\sigma' : '\U000003c3',
127
+ '\\tau' : '\U000003c4',
128
+ '\\upsilon' : '\U000003c5',
129
+ '\\varphi' : '\U000003c6',
130
+ '\\chi' : '\U000003c7',
131
+ '\\psi' : '\U000003c8',
132
+ '\\omega' : '\U000003c9',
133
+ '\\Gamma' : '\U00000393',
134
+ '\\Delta' : '\U00000394',
135
+ '\\Theta' : '\U00000398',
136
+ '\\Lambda' : '\U0000039b',
137
+ '\\Xi' : '\U0000039e',
138
+ '\\Pi' : '\U000003a0',
139
+ '\\Sigma' : '\U000003a3',
140
+ '\\Upsilon' : '\U000003a5',
141
+ '\\Phi' : '\U000003a6',
142
+ '\\Psi' : '\U000003a8',
143
+ '\\Omega' : '\U000003a9',
144
+ '\\leftarrow' : '\U00002190',
145
+ '\\longleftarrow' : '\U000027f5',
146
+ '\\rightarrow' : '\U00002192',
147
+ '\\longrightarrow' : '\U000027f6',
148
+ '\\Leftarrow' : '\U000021d0',
149
+ '\\Longleftarrow' : '\U000027f8',
150
+ '\\Rightarrow' : '\U000021d2',
151
+ '\\Longrightarrow' : '\U000027f9',
152
+ '\\leftrightarrow' : '\U00002194',
153
+ '\\longleftrightarrow' : '\U000027f7',
154
+ '\\Leftrightarrow' : '\U000021d4',
155
+ '\\Longleftrightarrow' : '\U000027fa',
156
+ '\\mapsto' : '\U000021a6',
157
+ '\\longmapsto' : '\U000027fc',
158
+ '\\relbar' : '\U00002500',
159
+ '\\Relbar' : '\U00002550',
160
+ '\\hookleftarrow' : '\U000021a9',
161
+ '\\hookrightarrow' : '\U000021aa',
162
+ '\\leftharpoondown' : '\U000021bd',
163
+ '\\rightharpoondown' : '\U000021c1',
164
+ '\\leftharpoonup' : '\U000021bc',
165
+ '\\rightharpoonup' : '\U000021c0',
166
+ '\\rightleftharpoons' : '\U000021cc',
167
+ '\\leadsto' : '\U0000219d',
168
+ '\\downharpoonleft' : '\U000021c3',
169
+ '\\downharpoonright' : '\U000021c2',
170
+ '\\upharpoonleft' : '\U000021bf',
171
+ '\\upharpoonright' : '\U000021be',
172
+ '\\restriction' : '\U000021be',
173
+ '\\uparrow' : '\U00002191',
174
+ '\\Uparrow' : '\U000021d1',
175
+ '\\downarrow' : '\U00002193',
176
+ '\\Downarrow' : '\U000021d3',
177
+ '\\updownarrow' : '\U00002195',
178
+ '\\Updownarrow' : '\U000021d5',
179
+ '\\langle' : '\U000027e8',
180
+ '\\rangle' : '\U000027e9',
181
+ '\\lceil' : '\U00002308',
182
+ '\\rceil' : '\U00002309',
183
+ '\\lfloor' : '\U0000230a',
184
+ '\\rfloor' : '\U0000230b',
185
+ '\\flqq' : '\U000000ab',
186
+ '\\frqq' : '\U000000bb',
187
+ '\\bot' : '\U000022a5',
188
+ '\\top' : '\U000022a4',
189
+ '\\wedge' : '\U00002227',
190
+ '\\bigwedge' : '\U000022c0',
191
+ '\\vee' : '\U00002228',
192
+ '\\bigvee' : '\U000022c1',
193
+ '\\forall' : '\U00002200',
194
+ '\\exists' : '\U00002203',
195
+ '\\nexists' : '\U00002204',
196
+ '\\neg' : '\U000000ac',
197
+ '\\Box' : '\U000025a1',
198
+ '\\Diamond' : '\U000025c7',
199
+ '\\vdash' : '\U000022a2',
200
+ '\\models' : '\U000022a8',
201
+ '\\dashv' : '\U000022a3',
202
+ '\\surd' : '\U0000221a',
203
+ '\\le' : '\U00002264',
204
+ '\\ge' : '\U00002265',
205
+ '\\ll' : '\U0000226a',
206
+ '\\gg' : '\U0000226b',
207
+ '\\lesssim' : '\U00002272',
208
+ '\\gtrsim' : '\U00002273',
209
+ '\\lessapprox' : '\U00002a85',
210
+ '\\gtrapprox' : '\U00002a86',
211
+ '\\in' : '\U00002208',
212
+ '\\notin' : '\U00002209',
213
+ '\\subset' : '\U00002282',
214
+ '\\supset' : '\U00002283',
215
+ '\\subseteq' : '\U00002286',
216
+ '\\supseteq' : '\U00002287',
217
+ '\\sqsubset' : '\U0000228f',
218
+ '\\sqsupset' : '\U00002290',
219
+ '\\sqsubseteq' : '\U00002291',
220
+ '\\sqsupseteq' : '\U00002292',
221
+ '\\cap' : '\U00002229',
222
+ '\\bigcap' : '\U000022c2',
223
+ '\\cup' : '\U0000222a',
224
+ '\\bigcup' : '\U000022c3',
225
+ '\\sqcup' : '\U00002294',
226
+ '\\bigsqcup' : '\U00002a06',
227
+ '\\sqcap' : '\U00002293',
228
+ '\\Bigsqcap' : '\U00002a05',
229
+ '\\setminus' : '\U00002216',
230
+ '\\propto' : '\U0000221d',
231
+ '\\uplus' : '\U0000228e',
232
+ '\\bigplus' : '\U00002a04',
233
+ '\\sim' : '\U0000223c',
234
+ '\\doteq' : '\U00002250',
235
+ '\\simeq' : '\U00002243',
236
+ '\\approx' : '\U00002248',
237
+ '\\asymp' : '\U0000224d',
238
+ '\\cong' : '\U00002245',
239
+ '\\equiv' : '\U00002261',
240
+ '\\Join' : '\U000022c8',
241
+ '\\bowtie' : '\U00002a1d',
242
+ '\\prec' : '\U0000227a',
243
+ '\\succ' : '\U0000227b',
244
+ '\\preceq' : '\U0000227c',
245
+ '\\succeq' : '\U0000227d',
246
+ '\\parallel' : '\U00002225',
247
+ '\\mid' : '\U000000a6',
248
+ '\\pm' : '\U000000b1',
249
+ '\\mp' : '\U00002213',
250
+ '\\times' : '\U000000d7',
251
+ '\\div' : '\U000000f7',
252
+ '\\cdot' : '\U000022c5',
253
+ '\\star' : '\U000022c6',
254
+ '\\circ' : '\U00002218',
255
+ '\\dagger' : '\U00002020',
256
+ '\\ddagger' : '\U00002021',
257
+ '\\lhd' : '\U000022b2',
258
+ '\\rhd' : '\U000022b3',
259
+ '\\unlhd' : '\U000022b4',
260
+ '\\unrhd' : '\U000022b5',
261
+ '\\triangleleft' : '\U000025c3',
262
+ '\\triangleright' : '\U000025b9',
263
+ '\\triangle' : '\U000025b3',
264
+ '\\triangleq' : '\U0000225c',
265
+ '\\oplus' : '\U00002295',
266
+ '\\bigoplus' : '\U00002a01',
267
+ '\\otimes' : '\U00002297',
268
+ '\\bigotimes' : '\U00002a02',
269
+ '\\odot' : '\U00002299',
270
+ '\\bigodot' : '\U00002a00',
271
+ '\\ominus' : '\U00002296',
272
+ '\\oslash' : '\U00002298',
273
+ '\\dots' : '\U00002026',
274
+ '\\cdots' : '\U000022ef',
275
+ '\\sum' : '\U00002211',
276
+ '\\prod' : '\U0000220f',
277
+ '\\coprod' : '\U00002210',
278
+ '\\infty' : '\U0000221e',
279
+ '\\int' : '\U0000222b',
280
+ '\\oint' : '\U0000222e',
281
+ '\\clubsuit' : '\U00002663',
282
+ '\\diamondsuit' : '\U00002662',
283
+ '\\heartsuit' : '\U00002661',
284
+ '\\spadesuit' : '\U00002660',
285
+ '\\aleph' : '\U00002135',
286
+ '\\emptyset' : '\U00002205',
287
+ '\\nabla' : '\U00002207',
288
+ '\\partial' : '\U00002202',
289
+ '\\flat' : '\U0000266d',
290
+ '\\natural' : '\U0000266e',
291
+ '\\sharp' : '\U0000266f',
292
+ '\\angle' : '\U00002220',
293
+ '\\copyright' : '\U000000a9',
294
+ '\\textregistered' : '\U000000ae',
295
+ '\\textonequarter' : '\U000000bc',
296
+ '\\textonehalf' : '\U000000bd',
297
+ '\\textthreequarters' : '\U000000be',
298
+ '\\textordfeminine' : '\U000000aa',
299
+ '\\textordmasculine' : '\U000000ba',
300
+ '\\euro' : '\U000020ac',
301
+ '\\pounds' : '\U000000a3',
302
+ '\\yen' : '\U000000a5',
303
+ '\\textcent' : '\U000000a2',
304
+ '\\textcurrency' : '\U000000a4',
305
+ '\\textdegree' : '\U000000b0',
306
+ }
307
+
308
+ isabelle_symbols = {
309
+ '\\<zero>' : '\U0001d7ec',
310
+ '\\<one>' : '\U0001d7ed',
311
+ '\\<two>' : '\U0001d7ee',
312
+ '\\<three>' : '\U0001d7ef',
313
+ '\\<four>' : '\U0001d7f0',
314
+ '\\<five>' : '\U0001d7f1',
315
+ '\\<six>' : '\U0001d7f2',
316
+ '\\<seven>' : '\U0001d7f3',
317
+ '\\<eight>' : '\U0001d7f4',
318
+ '\\<nine>' : '\U0001d7f5',
319
+ '\\<A>' : '\U0001d49c',
320
+ '\\<B>' : '\U0000212c',
321
+ '\\<C>' : '\U0001d49e',
322
+ '\\<D>' : '\U0001d49f',
323
+ '\\<E>' : '\U00002130',
324
+ '\\<F>' : '\U00002131',
325
+ '\\<G>' : '\U0001d4a2',
326
+ '\\<H>' : '\U0000210b',
327
+ '\\<I>' : '\U00002110',
328
+ '\\<J>' : '\U0001d4a5',
329
+ '\\<K>' : '\U0001d4a6',
330
+ '\\<L>' : '\U00002112',
331
+ '\\<M>' : '\U00002133',
332
+ '\\<N>' : '\U0001d4a9',
333
+ '\\<O>' : '\U0001d4aa',
334
+ '\\<P>' : '\U0001d4ab',
335
+ '\\<Q>' : '\U0001d4ac',
336
+ '\\<R>' : '\U0000211b',
337
+ '\\<S>' : '\U0001d4ae',
338
+ '\\<T>' : '\U0001d4af',
339
+ '\\<U>' : '\U0001d4b0',
340
+ '\\<V>' : '\U0001d4b1',
341
+ '\\<W>' : '\U0001d4b2',
342
+ '\\<X>' : '\U0001d4b3',
343
+ '\\<Y>' : '\U0001d4b4',
344
+ '\\<Z>' : '\U0001d4b5',
345
+ '\\<a>' : '\U0001d5ba',
346
+ '\\<b>' : '\U0001d5bb',
347
+ '\\<c>' : '\U0001d5bc',
348
+ '\\<d>' : '\U0001d5bd',
349
+ '\\<e>' : '\U0001d5be',
350
+ '\\<f>' : '\U0001d5bf',
351
+ '\\<g>' : '\U0001d5c0',
352
+ '\\<h>' : '\U0001d5c1',
353
+ '\\<i>' : '\U0001d5c2',
354
+ '\\<j>' : '\U0001d5c3',
355
+ '\\<k>' : '\U0001d5c4',
356
+ '\\<l>' : '\U0001d5c5',
357
+ '\\<m>' : '\U0001d5c6',
358
+ '\\<n>' : '\U0001d5c7',
359
+ '\\<o>' : '\U0001d5c8',
360
+ '\\<p>' : '\U0001d5c9',
361
+ '\\<q>' : '\U0001d5ca',
362
+ '\\<r>' : '\U0001d5cb',
363
+ '\\<s>' : '\U0001d5cc',
364
+ '\\<t>' : '\U0001d5cd',
365
+ '\\<u>' : '\U0001d5ce',
366
+ '\\<v>' : '\U0001d5cf',
367
+ '\\<w>' : '\U0001d5d0',
368
+ '\\<x>' : '\U0001d5d1',
369
+ '\\<y>' : '\U0001d5d2',
370
+ '\\<z>' : '\U0001d5d3',
371
+ '\\<AA>' : '\U0001d504',
372
+ '\\<BB>' : '\U0001d505',
373
+ '\\<CC>' : '\U0000212d',
374
+ '\\<DD>' : '\U0001d507',
375
+ '\\<EE>' : '\U0001d508',
376
+ '\\<FF>' : '\U0001d509',
377
+ '\\<GG>' : '\U0001d50a',
378
+ '\\<HH>' : '\U0000210c',
379
+ '\\<II>' : '\U00002111',
380
+ '\\<JJ>' : '\U0001d50d',
381
+ '\\<KK>' : '\U0001d50e',
382
+ '\\<LL>' : '\U0001d50f',
383
+ '\\<MM>' : '\U0001d510',
384
+ '\\<NN>' : '\U0001d511',
385
+ '\\<OO>' : '\U0001d512',
386
+ '\\<PP>' : '\U0001d513',
387
+ '\\<QQ>' : '\U0001d514',
388
+ '\\<RR>' : '\U0000211c',
389
+ '\\<SS>' : '\U0001d516',
390
+ '\\<TT>' : '\U0001d517',
391
+ '\\<UU>' : '\U0001d518',
392
+ '\\<VV>' : '\U0001d519',
393
+ '\\<WW>' : '\U0001d51a',
394
+ '\\<XX>' : '\U0001d51b',
395
+ '\\<YY>' : '\U0001d51c',
396
+ '\\<ZZ>' : '\U00002128',
397
+ '\\<aa>' : '\U0001d51e',
398
+ '\\<bb>' : '\U0001d51f',
399
+ '\\<cc>' : '\U0001d520',
400
+ '\\<dd>' : '\U0001d521',
401
+ '\\<ee>' : '\U0001d522',
402
+ '\\<ff>' : '\U0001d523',
403
+ '\\<gg>' : '\U0001d524',
404
+ '\\<hh>' : '\U0001d525',
405
+ '\\<ii>' : '\U0001d526',
406
+ '\\<jj>' : '\U0001d527',
407
+ '\\<kk>' : '\U0001d528',
408
+ '\\<ll>' : '\U0001d529',
409
+ '\\<mm>' : '\U0001d52a',
410
+ '\\<nn>' : '\U0001d52b',
411
+ '\\<oo>' : '\U0001d52c',
412
+ '\\<pp>' : '\U0001d52d',
413
+ '\\<qq>' : '\U0001d52e',
414
+ '\\<rr>' : '\U0001d52f',
415
+ '\\<ss>' : '\U0001d530',
416
+ '\\<tt>' : '\U0001d531',
417
+ '\\<uu>' : '\U0001d532',
418
+ '\\<vv>' : '\U0001d533',
419
+ '\\<ww>' : '\U0001d534',
420
+ '\\<xx>' : '\U0001d535',
421
+ '\\<yy>' : '\U0001d536',
422
+ '\\<zz>' : '\U0001d537',
423
+ '\\<alpha>' : '\U000003b1',
424
+ '\\<beta>' : '\U000003b2',
425
+ '\\<gamma>' : '\U000003b3',
426
+ '\\<delta>' : '\U000003b4',
427
+ '\\<epsilon>' : '\U000003b5',
428
+ '\\<zeta>' : '\U000003b6',
429
+ '\\<eta>' : '\U000003b7',
430
+ '\\<theta>' : '\U000003b8',
431
+ '\\<iota>' : '\U000003b9',
432
+ '\\<kappa>' : '\U000003ba',
433
+ '\\<lambda>' : '\U000003bb',
434
+ '\\<mu>' : '\U000003bc',
435
+ '\\<nu>' : '\U000003bd',
436
+ '\\<xi>' : '\U000003be',
437
+ '\\<pi>' : '\U000003c0',
438
+ '\\<rho>' : '\U000003c1',
439
+ '\\<sigma>' : '\U000003c3',
440
+ '\\<tau>' : '\U000003c4',
441
+ '\\<upsilon>' : '\U000003c5',
442
+ '\\<phi>' : '\U000003c6',
443
+ '\\<chi>' : '\U000003c7',
444
+ '\\<psi>' : '\U000003c8',
445
+ '\\<omega>' : '\U000003c9',
446
+ '\\<Gamma>' : '\U00000393',
447
+ '\\<Delta>' : '\U00000394',
448
+ '\\<Theta>' : '\U00000398',
449
+ '\\<Lambda>' : '\U0000039b',
450
+ '\\<Xi>' : '\U0000039e',
451
+ '\\<Pi>' : '\U000003a0',
452
+ '\\<Sigma>' : '\U000003a3',
453
+ '\\<Upsilon>' : '\U000003a5',
454
+ '\\<Phi>' : '\U000003a6',
455
+ '\\<Psi>' : '\U000003a8',
456
+ '\\<Omega>' : '\U000003a9',
457
+ '\\<bool>' : '\U0001d539',
458
+ '\\<complex>' : '\U00002102',
459
+ '\\<nat>' : '\U00002115',
460
+ '\\<rat>' : '\U0000211a',
461
+ '\\<real>' : '\U0000211d',
462
+ '\\<int>' : '\U00002124',
463
+ '\\<leftarrow>' : '\U00002190',
464
+ '\\<longleftarrow>' : '\U000027f5',
465
+ '\\<rightarrow>' : '\U00002192',
466
+ '\\<longrightarrow>' : '\U000027f6',
467
+ '\\<Leftarrow>' : '\U000021d0',
468
+ '\\<Longleftarrow>' : '\U000027f8',
469
+ '\\<Rightarrow>' : '\U000021d2',
470
+ '\\<Longrightarrow>' : '\U000027f9',
471
+ '\\<leftrightarrow>' : '\U00002194',
472
+ '\\<longleftrightarrow>' : '\U000027f7',
473
+ '\\<Leftrightarrow>' : '\U000021d4',
474
+ '\\<Longleftrightarrow>' : '\U000027fa',
475
+ '\\<mapsto>' : '\U000021a6',
476
+ '\\<longmapsto>' : '\U000027fc',
477
+ '\\<midarrow>' : '\U00002500',
478
+ '\\<Midarrow>' : '\U00002550',
479
+ '\\<hookleftarrow>' : '\U000021a9',
480
+ '\\<hookrightarrow>' : '\U000021aa',
481
+ '\\<leftharpoondown>' : '\U000021bd',
482
+ '\\<rightharpoondown>' : '\U000021c1',
483
+ '\\<leftharpoonup>' : '\U000021bc',
484
+ '\\<rightharpoonup>' : '\U000021c0',
485
+ '\\<rightleftharpoons>' : '\U000021cc',
486
+ '\\<leadsto>' : '\U0000219d',
487
+ '\\<downharpoonleft>' : '\U000021c3',
488
+ '\\<downharpoonright>' : '\U000021c2',
489
+ '\\<upharpoonleft>' : '\U000021bf',
490
+ '\\<upharpoonright>' : '\U000021be',
491
+ '\\<restriction>' : '\U000021be',
492
+ '\\<Colon>' : '\U00002237',
493
+ '\\<up>' : '\U00002191',
494
+ '\\<Up>' : '\U000021d1',
495
+ '\\<down>' : '\U00002193',
496
+ '\\<Down>' : '\U000021d3',
497
+ '\\<updown>' : '\U00002195',
498
+ '\\<Updown>' : '\U000021d5',
499
+ '\\<langle>' : '\U000027e8',
500
+ '\\<rangle>' : '\U000027e9',
501
+ '\\<lceil>' : '\U00002308',
502
+ '\\<rceil>' : '\U00002309',
503
+ '\\<lfloor>' : '\U0000230a',
504
+ '\\<rfloor>' : '\U0000230b',
505
+ '\\<lparr>' : '\U00002987',
506
+ '\\<rparr>' : '\U00002988',
507
+ '\\<lbrakk>' : '\U000027e6',
508
+ '\\<rbrakk>' : '\U000027e7',
509
+ '\\<lbrace>' : '\U00002983',
510
+ '\\<rbrace>' : '\U00002984',
511
+ '\\<guillemotleft>' : '\U000000ab',
512
+ '\\<guillemotright>' : '\U000000bb',
513
+ '\\<bottom>' : '\U000022a5',
514
+ '\\<top>' : '\U000022a4',
515
+ '\\<and>' : '\U00002227',
516
+ '\\<And>' : '\U000022c0',
517
+ '\\<or>' : '\U00002228',
518
+ '\\<Or>' : '\U000022c1',
519
+ '\\<forall>' : '\U00002200',
520
+ '\\<exists>' : '\U00002203',
521
+ '\\<nexists>' : '\U00002204',
522
+ '\\<not>' : '\U000000ac',
523
+ '\\<box>' : '\U000025a1',
524
+ '\\<diamond>' : '\U000025c7',
525
+ '\\<turnstile>' : '\U000022a2',
526
+ '\\<Turnstile>' : '\U000022a8',
527
+ '\\<tturnstile>' : '\U000022a9',
528
+ '\\<TTurnstile>' : '\U000022ab',
529
+ '\\<stileturn>' : '\U000022a3',
530
+ '\\<surd>' : '\U0000221a',
531
+ '\\<le>' : '\U00002264',
532
+ '\\<ge>' : '\U00002265',
533
+ '\\<lless>' : '\U0000226a',
534
+ '\\<ggreater>' : '\U0000226b',
535
+ '\\<lesssim>' : '\U00002272',
536
+ '\\<greatersim>' : '\U00002273',
537
+ '\\<lessapprox>' : '\U00002a85',
538
+ '\\<greaterapprox>' : '\U00002a86',
539
+ '\\<in>' : '\U00002208',
540
+ '\\<notin>' : '\U00002209',
541
+ '\\<subset>' : '\U00002282',
542
+ '\\<supset>' : '\U00002283',
543
+ '\\<subseteq>' : '\U00002286',
544
+ '\\<supseteq>' : '\U00002287',
545
+ '\\<sqsubset>' : '\U0000228f',
546
+ '\\<sqsupset>' : '\U00002290',
547
+ '\\<sqsubseteq>' : '\U00002291',
548
+ '\\<sqsupseteq>' : '\U00002292',
549
+ '\\<inter>' : '\U00002229',
550
+ '\\<Inter>' : '\U000022c2',
551
+ '\\<union>' : '\U0000222a',
552
+ '\\<Union>' : '\U000022c3',
553
+ '\\<squnion>' : '\U00002294',
554
+ '\\<Squnion>' : '\U00002a06',
555
+ '\\<sqinter>' : '\U00002293',
556
+ '\\<Sqinter>' : '\U00002a05',
557
+ '\\<setminus>' : '\U00002216',
558
+ '\\<propto>' : '\U0000221d',
559
+ '\\<uplus>' : '\U0000228e',
560
+ '\\<Uplus>' : '\U00002a04',
561
+ '\\<noteq>' : '\U00002260',
562
+ '\\<sim>' : '\U0000223c',
563
+ '\\<doteq>' : '\U00002250',
564
+ '\\<simeq>' : '\U00002243',
565
+ '\\<approx>' : '\U00002248',
566
+ '\\<asymp>' : '\U0000224d',
567
+ '\\<cong>' : '\U00002245',
568
+ '\\<smile>' : '\U00002323',
569
+ '\\<equiv>' : '\U00002261',
570
+ '\\<frown>' : '\U00002322',
571
+ '\\<Join>' : '\U000022c8',
572
+ '\\<bowtie>' : '\U00002a1d',
573
+ '\\<prec>' : '\U0000227a',
574
+ '\\<succ>' : '\U0000227b',
575
+ '\\<preceq>' : '\U0000227c',
576
+ '\\<succeq>' : '\U0000227d',
577
+ '\\<parallel>' : '\U00002225',
578
+ '\\<bar>' : '\U000000a6',
579
+ '\\<plusminus>' : '\U000000b1',
580
+ '\\<minusplus>' : '\U00002213',
581
+ '\\<times>' : '\U000000d7',
582
+ '\\<div>' : '\U000000f7',
583
+ '\\<cdot>' : '\U000022c5',
584
+ '\\<star>' : '\U000022c6',
585
+ '\\<bullet>' : '\U00002219',
586
+ '\\<circ>' : '\U00002218',
587
+ '\\<dagger>' : '\U00002020',
588
+ '\\<ddagger>' : '\U00002021',
589
+ '\\<lhd>' : '\U000022b2',
590
+ '\\<rhd>' : '\U000022b3',
591
+ '\\<unlhd>' : '\U000022b4',
592
+ '\\<unrhd>' : '\U000022b5',
593
+ '\\<triangleleft>' : '\U000025c3',
594
+ '\\<triangleright>' : '\U000025b9',
595
+ '\\<triangle>' : '\U000025b3',
596
+ '\\<triangleq>' : '\U0000225c',
597
+ '\\<oplus>' : '\U00002295',
598
+ '\\<Oplus>' : '\U00002a01',
599
+ '\\<otimes>' : '\U00002297',
600
+ '\\<Otimes>' : '\U00002a02',
601
+ '\\<odot>' : '\U00002299',
602
+ '\\<Odot>' : '\U00002a00',
603
+ '\\<ominus>' : '\U00002296',
604
+ '\\<oslash>' : '\U00002298',
605
+ '\\<dots>' : '\U00002026',
606
+ '\\<cdots>' : '\U000022ef',
607
+ '\\<Sum>' : '\U00002211',
608
+ '\\<Prod>' : '\U0000220f',
609
+ '\\<Coprod>' : '\U00002210',
610
+ '\\<infinity>' : '\U0000221e',
611
+ '\\<integral>' : '\U0000222b',
612
+ '\\<ointegral>' : '\U0000222e',
613
+ '\\<clubsuit>' : '\U00002663',
614
+ '\\<diamondsuit>' : '\U00002662',
615
+ '\\<heartsuit>' : '\U00002661',
616
+ '\\<spadesuit>' : '\U00002660',
617
+ '\\<aleph>' : '\U00002135',
618
+ '\\<emptyset>' : '\U00002205',
619
+ '\\<nabla>' : '\U00002207',
620
+ '\\<partial>' : '\U00002202',
621
+ '\\<flat>' : '\U0000266d',
622
+ '\\<natural>' : '\U0000266e',
623
+ '\\<sharp>' : '\U0000266f',
624
+ '\\<angle>' : '\U00002220',
625
+ '\\<copyright>' : '\U000000a9',
626
+ '\\<registered>' : '\U000000ae',
627
+ '\\<hyphen>' : '\U000000ad',
628
+ '\\<inverse>' : '\U000000af',
629
+ '\\<onequarter>' : '\U000000bc',
630
+ '\\<onehalf>' : '\U000000bd',
631
+ '\\<threequarters>' : '\U000000be',
632
+ '\\<ordfeminine>' : '\U000000aa',
633
+ '\\<ordmasculine>' : '\U000000ba',
634
+ '\\<section>' : '\U000000a7',
635
+ '\\<paragraph>' : '\U000000b6',
636
+ '\\<exclamdown>' : '\U000000a1',
637
+ '\\<questiondown>' : '\U000000bf',
638
+ '\\<euro>' : '\U000020ac',
639
+ '\\<pounds>' : '\U000000a3',
640
+ '\\<yen>' : '\U000000a5',
641
+ '\\<cent>' : '\U000000a2',
642
+ '\\<currency>' : '\U000000a4',
643
+ '\\<degree>' : '\U000000b0',
644
+ '\\<amalg>' : '\U00002a3f',
645
+ '\\<mho>' : '\U00002127',
646
+ '\\<lozenge>' : '\U000025ca',
647
+ '\\<wp>' : '\U00002118',
648
+ '\\<wrong>' : '\U00002240',
649
+ '\\<struct>' : '\U000022c4',
650
+ '\\<acute>' : '\U000000b4',
651
+ '\\<index>' : '\U00000131',
652
+ '\\<dieresis>' : '\U000000a8',
653
+ '\\<cedilla>' : '\U000000b8',
654
+ '\\<hungarumlaut>' : '\U000002dd',
655
+ '\\<some>' : '\U000003f5',
656
+ '\\<newline>' : '\U000023ce',
657
+ '\\<open>' : '\U00002039',
658
+ '\\<close>' : '\U0000203a',
659
+ '\\<here>' : '\U00002302',
660
+ '\\<^sub>' : '\U000021e9',
661
+ '\\<^sup>' : '\U000021e7',
662
+ '\\<^bold>' : '\U00002759',
663
+ '\\<^bsub>' : '\U000021d8',
664
+ '\\<^esub>' : '\U000021d9',
665
+ '\\<^bsup>' : '\U000021d7',
666
+ '\\<^esup>' : '\U000021d6',
667
+ }
668
+
669
+ lang_map = {'isabelle' : isabelle_symbols, 'latex' : latex_symbols}
670
+
671
+ def __init__(self, **options):
672
+ Filter.__init__(self, **options)
673
+ lang = get_choice_opt(options, 'lang',
674
+ ['isabelle', 'latex'], 'isabelle')
675
+ self.symbols = self.lang_map[lang]
676
+
677
+ def filter(self, lexer, stream):
678
+ for ttype, value in stream:
679
+ if value in self.symbols:
680
+ yield ttype, self.symbols[value]
94
681
  else:
95
682
  yield ttype, value
96
683
 
@@ -113,7 +700,7 @@ class KeywordCaseFilter(Filter):
113
700
  Filter.__init__(self, **options)
114
701
  case = get_choice_opt(options, 'case',
115
702
  ['lower', 'upper', 'capitalize'], 'lower')
116
- self.convert = getattr(text_type, case)
703
+ self.convert = getattr(str, case)
117
704
 
118
705
  def filter(self, lexer, stream):
119
706
  for ttype, value in stream:
@@ -229,11 +816,11 @@ class VisibleWhitespaceFilter(Filter):
229
816
 
230
817
  def __init__(self, **options):
231
818
  Filter.__init__(self, **options)
232
- for name, default in [('spaces', u'·'),
233
- ('tabs', u'»'),
234
- ('newlines', u'¶')]:
819
+ for name, default in [('spaces', '·'),
820
+ ('tabs', '»'),
821
+ ('newlines', '¶')]:
235
822
  opt = options.get(name, False)
236
- if isinstance(opt, string_types) and len(opt) == 1:
823
+ if isinstance(opt, str) and len(opt) == 1:
237
824
  setattr(self, name, opt)
238
825
  else:
239
826
  setattr(self, name, (opt and default or ''))
@@ -246,10 +833,11 @@ class VisibleWhitespaceFilter(Filter):
246
833
 
247
834
  def filter(self, lexer, stream):
248
835
  if self.wstt:
249
- spaces = self.spaces or u' '
250
- tabs = self.tabs or u'\t'
251
- newlines = self.newlines or u'\n'
836
+ spaces = self.spaces or ' '
837
+ tabs = self.tabs or '\t'
838
+ newlines = self.newlines or '\n'
252
839
  regex = re.compile(r'\s')
840
+
253
841
  def replacefunc(wschar):
254
842
  if wschar == ' ':
255
843
  return spaces
@@ -260,9 +848,8 @@ class VisibleWhitespaceFilter(Filter):
260
848
  return wschar
261
849
 
262
850
  for ttype, value in stream:
263
- for sttype, svalue in _replace_special(ttype, value, regex,
264
- Whitespace, replacefunc):
265
- yield sttype, svalue
851
+ yield from _replace_special(ttype, value, regex, Whitespace,
852
+ replacefunc)
266
853
  else:
267
854
  spaces, tabs, newlines = self.spaces, self.tabs, self.newlines
268
855
  # simpler processing
@@ -298,18 +885,18 @@ class GobbleFilter(Filter):
298
885
  if left < len(value):
299
886
  return value[left:], 0
300
887
  else:
301
- return u'', left - len(value)
888
+ return '', left - len(value)
302
889
 
303
890
  def filter(self, lexer, stream):
304
891
  n = self.n
305
- left = n # How many characters left to gobble.
892
+ left = n # How many characters left to gobble.
306
893
  for ttype, value in stream:
307
894
  # Remove ``left`` tokens from first line, ``n`` from all others.
308
895
  parts = value.split('\n')
309
896
  (parts[0], left) = self.gobble(parts[0], left)
310
897
  for i in range(1, len(parts)):
311
898
  (parts[i], left) = self.gobble(parts[i], n)
312
- value = u'\n'.join(parts)
899
+ value = '\n'.join(parts)
313
900
 
314
901
  if value != '':
315
902
  yield ttype, value
@@ -347,4 +934,5 @@ FILTERS = {
347
934
  'whitespace': VisibleWhitespaceFilter,
348
935
  'gobble': GobbleFilter,
349
936
  'tokenmerge': TokenMergeFilter,
937
+ 'symbols': SymbolFilter,
350
938
  }