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,85 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.ooc
4
+ ~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for the Ooc language.
7
+
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ from pygments.lexer import RegexLexer, bygroups, words
13
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
14
+ Number, Punctuation
15
+
16
+ __all__ = ['OocLexer']
17
+
18
+
19
+ class OocLexer(RegexLexer):
20
+ """
21
+ For `Ooc <http://ooc-lang.org/>`_ source code
22
+
23
+ .. versionadded:: 1.2
24
+ """
25
+ name = 'Ooc'
26
+ aliases = ['ooc']
27
+ filenames = ['*.ooc']
28
+ mimetypes = ['text/x-ooc']
29
+
30
+ tokens = {
31
+ 'root': [
32
+ (words((
33
+ 'class', 'interface', 'implement', 'abstract', 'extends', 'from',
34
+ 'this', 'super', 'new', 'const', 'final', 'static', 'import',
35
+ 'use', 'extern', 'inline', 'proto', 'break', 'continue',
36
+ 'fallthrough', 'operator', 'if', 'else', 'for', 'while', 'do',
37
+ 'switch', 'case', 'as', 'in', 'version', 'return', 'true',
38
+ 'false', 'null'), prefix=r'\b', suffix=r'\b'),
39
+ Keyword),
40
+ (r'include\b', Keyword, 'include'),
41
+ (r'(cover)([ \t]+)(from)([ \t]+)(\w+[*@]?)',
42
+ bygroups(Keyword, Text, Keyword, Text, Name.Class)),
43
+ (r'(func)((?:[ \t]|\\\n)+)(~[a-z_]\w*)',
44
+ bygroups(Keyword, Text, Name.Function)),
45
+ (r'\bfunc\b', Keyword),
46
+ # Note: %= and ^= not listed on http://ooc-lang.org/syntax
47
+ (r'//.*', Comment),
48
+ (r'(?s)/\*.*?\*/', Comment.Multiline),
49
+ (r'(==?|\+=?|-[=>]?|\*=?|/=?|:=|!=?|%=?|\?|>{1,3}=?|<{1,3}=?|\.\.|'
50
+ r'&&?|\|\|?|\^=?)', Operator),
51
+ (r'(\.)([ \t]*)([a-z]\w*)', bygroups(Operator, Text,
52
+ Name.Function)),
53
+ (r'[A-Z][A-Z0-9_]+', Name.Constant),
54
+ (r'[A-Z]\w*([@*]|\[[ \t]*\])?', Name.Class),
55
+
56
+ (r'([a-z]\w*(?:~[a-z]\w*)?)((?:[ \t]|\\\n)*)(?=\()',
57
+ bygroups(Name.Function, Text)),
58
+ (r'[a-z]\w*', Name.Variable),
59
+
60
+ # : introduces types
61
+ (r'[:(){}\[\];,]', Punctuation),
62
+
63
+ (r'0x[0-9a-fA-F]+', Number.Hex),
64
+ (r'0c[0-9]+', Number.Oct),
65
+ (r'0b[01]+', Number.Bin),
66
+ (r'[0-9_]\.[0-9_]*(?!\.)', Number.Float),
67
+ (r'[0-9_]+', Number.Decimal),
68
+
69
+ (r'"(?:\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\"])*"',
70
+ String.Double),
71
+ (r"'(?:\\.|\\[0-9]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'",
72
+ String.Char),
73
+ (r'@', Punctuation), # pointer dereference
74
+ (r'\.', Punctuation), # imports or chain operator
75
+
76
+ (r'\\[ \t\n]', Text),
77
+ (r'[ \t]+', Text),
78
+ ],
79
+ 'include': [
80
+ (r'[\w/]+', Name),
81
+ (r',', Punctuation),
82
+ (r'[ \t]', Text),
83
+ (r'[;\n]', Text, '#pop'),
84
+ ],
85
+ }
@@ -0,0 +1,41 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.other
4
+ ~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Just export lexer classes previously contained in this module.
7
+
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ from pygments.lexers.sql import SqlLexer, MySqlLexer, SqliteConsoleLexer
13
+ from pygments.lexers.shell import BashLexer, BashSessionLexer, BatchLexer, \
14
+ TcshLexer
15
+ from pygments.lexers.robotframework import RobotFrameworkLexer
16
+ from pygments.lexers.testing import GherkinLexer
17
+ from pygments.lexers.esoteric import BrainfuckLexer, BefungeLexer, RedcodeLexer
18
+ from pygments.lexers.prolog import LogtalkLexer
19
+ from pygments.lexers.snobol import SnobolLexer
20
+ from pygments.lexers.rebol import RebolLexer
21
+ from pygments.lexers.configs import KconfigLexer, Cfengine3Lexer
22
+ from pygments.lexers.modeling import ModelicaLexer
23
+ from pygments.lexers.scripting import AppleScriptLexer, MOOCodeLexer, \
24
+ HybrisLexer
25
+ from pygments.lexers.graphics import PostScriptLexer, GnuplotLexer, \
26
+ AsymptoteLexer, PovrayLexer
27
+ from pygments.lexers.business import ABAPLexer, OpenEdgeLexer, \
28
+ GoodDataCLLexer, MaqlLexer
29
+ from pygments.lexers.automation import AutoItLexer, AutohotkeyLexer
30
+ from pygments.lexers.dsls import ProtoBufLexer, BroLexer, PuppetLexer, \
31
+ MscgenLexer, VGLLexer
32
+ from pygments.lexers.basic import CbmBasicV2Lexer
33
+ from pygments.lexers.pawn import SourcePawnLexer, PawnLexer
34
+ from pygments.lexers.ecl import ECLLexer
35
+ from pygments.lexers.urbi import UrbiscriptLexer
36
+ from pygments.lexers.smalltalk import SmalltalkLexer, NewspeakLexer
37
+ from pygments.lexers.installers import NSISLexer, RPMSpecLexer
38
+ from pygments.lexers.textedit import AwkLexer
39
+ from pygments.lexers.smv import NuSMVLexer
40
+
41
+ __all__ = []
@@ -0,0 +1,79 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.parasail
4
+ ~~~~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexer for ParaSail.
7
+
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ import re
13
+
14
+ from pygments.lexer import RegexLexer, include
15
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
16
+ Number, Punctuation, Literal
17
+
18
+ __all__ = ['ParaSailLexer']
19
+
20
+
21
+ class ParaSailLexer(RegexLexer):
22
+ """
23
+ For `ParaSail <http://www.parasail-lang.org>`_ source code.
24
+
25
+ .. versionadded:: 2.1
26
+ """
27
+
28
+ name = 'ParaSail'
29
+ aliases = ['parasail']
30
+ filenames = ['*.psi', '*.psl']
31
+ mimetypes = ['text/x-parasail']
32
+
33
+ flags = re.MULTILINE
34
+
35
+ tokens = {
36
+ 'root': [
37
+ (r'[^\S\n]+', Text),
38
+ (r'//.*?\n', Comment.Single),
39
+ (r'\b(and|or|xor)=', Operator.Word),
40
+ (r'\b(and(\s+then)?|or(\s+else)?|xor|rem|mod|'
41
+ r'(is|not)\s+null)\b',
42
+ Operator.Word),
43
+ # Keywords
44
+ (r'\b(abs|abstract|all|block|class|concurrent|const|continue|'
45
+ r'each|end|exit|extends|exports|forward|func|global|implements|'
46
+ r'import|in|interface|is|lambda|locked|new|not|null|of|op|'
47
+ r'optional|private|queued|ref|return|reverse|separate|some|'
48
+ r'type|until|var|with|'
49
+ # Control flow
50
+ r'if|then|else|elsif|case|for|while|loop)\b',
51
+ Keyword.Reserved),
52
+ (r'(abstract\s+)?(interface|class|op|func|type)',
53
+ Keyword.Declaration),
54
+ # Literals
55
+ (r'"[^"]*"', String),
56
+ (r'\\[\'ntrf"0]', String.Escape),
57
+ (r'#[a-zA-Z]\w*', Literal), # Enumeration
58
+ include('numbers'),
59
+ (r"'[^']'", String.Char),
60
+ (r'[a-zA-Z]\w*', Name),
61
+ # Operators and Punctuation
62
+ (r'(<==|==>|<=>|\*\*=|<\|=|<<=|>>=|==|!=|=\?|<=|>=|'
63
+ r'\*\*|<<|>>|=>|:=|\+=|-=|\*=|\|=|\||/=|\+|-|\*|/|'
64
+ r'\.\.|<\.\.|\.\.<|<\.\.<)',
65
+ Operator),
66
+ (r'(<|>|\[|\]|\(|\)|\||:|;|,|.|\{|\}|->)',
67
+ Punctuation),
68
+ (r'\n+', Text),
69
+ ],
70
+ 'numbers': [
71
+ (r'\d[0-9_]*#[0-9a-fA-F][0-9a-fA-F_]*#', Number.Hex), # any base
72
+ (r'0[xX][0-9a-fA-F][0-9a-fA-F_]*', Number.Hex), # C-like hex
73
+ (r'0[bB][01][01_]*', Number.Bin), # C-like bin
74
+ (r'\d[0-9_]*\.\d[0-9_]*[eE][+-]\d[0-9_]*', # float exp
75
+ Number.Float),
76
+ (r'\d[0-9_]*\.\d[0-9_]*', Number.Float), # float
77
+ (r'\d[0-9_]*', Number.Integer), # integer
78
+ ],
79
+ }
@@ -0,0 +1,800 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.parsers
4
+ ~~~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for parser generators.
7
+
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ import re
13
+
14
+ from pygments.lexer import RegexLexer, DelegatingLexer, \
15
+ include, bygroups, using
16
+ from pygments.token import Punctuation, Other, Text, Comment, Operator, \
17
+ Keyword, Name, String, Number, Whitespace
18
+ from pygments.lexers.jvm import JavaLexer
19
+ from pygments.lexers.c_cpp import CLexer, CppLexer
20
+ from pygments.lexers.objective import ObjectiveCLexer
21
+ from pygments.lexers.d import DLexer
22
+ from pygments.lexers.dotnet import CSharpLexer
23
+ from pygments.lexers.ruby import RubyLexer
24
+ from pygments.lexers.python import PythonLexer
25
+ from pygments.lexers.perl import PerlLexer
26
+
27
+ __all__ = ['RagelLexer', 'RagelEmbeddedLexer', 'RagelCLexer', 'RagelDLexer',
28
+ 'RagelCppLexer', 'RagelObjectiveCLexer', 'RagelRubyLexer',
29
+ 'RagelJavaLexer', 'AntlrLexer', 'AntlrPythonLexer',
30
+ 'AntlrPerlLexer', 'AntlrRubyLexer', 'AntlrCppLexer',
31
+ 'AntlrCSharpLexer', 'AntlrObjectiveCLexer',
32
+ 'AntlrJavaLexer', 'AntlrActionScriptLexer',
33
+ 'TreetopLexer', 'EbnfLexer']
34
+
35
+
36
+ class RagelLexer(RegexLexer):
37
+ """
38
+ A pure `Ragel <http://www.complang.org/ragel/>`_ lexer. Use this for
39
+ fragments of Ragel. For ``.rl`` files, use RagelEmbeddedLexer instead
40
+ (or one of the language-specific subclasses).
41
+
42
+ .. versionadded:: 1.1
43
+ """
44
+
45
+ name = 'Ragel'
46
+ aliases = ['ragel']
47
+ filenames = []
48
+
49
+ tokens = {
50
+ 'whitespace': [
51
+ (r'\s+', Whitespace)
52
+ ],
53
+ 'comments': [
54
+ (r'\#.*$', Comment),
55
+ ],
56
+ 'keywords': [
57
+ (r'(access|action|alphtype)\b', Keyword),
58
+ (r'(getkey|write|machine|include)\b', Keyword),
59
+ (r'(any|ascii|extend|alpha|digit|alnum|lower|upper)\b', Keyword),
60
+ (r'(xdigit|cntrl|graph|print|punct|space|zlen|empty)\b', Keyword)
61
+ ],
62
+ 'numbers': [
63
+ (r'0x[0-9A-Fa-f]+', Number.Hex),
64
+ (r'[+-]?[0-9]+', Number.Integer),
65
+ ],
66
+ 'literals': [
67
+ (r'"(\\\\|\\"|[^"])*"', String), # double quote string
68
+ (r"'(\\\\|\\'|[^'])*'", String), # single quote string
69
+ (r'\[(\\\\|\\\]|[^\]])*\]', String), # square bracket literals
70
+ (r'/(?!\*)(\\\\|\\/|[^/])*/', String.Regex), # regular expressions
71
+ ],
72
+ 'identifiers': [
73
+ (r'[a-zA-Z_]\w*', Name.Variable),
74
+ ],
75
+ 'operators': [
76
+ (r',', Operator), # Join
77
+ (r'\||&|--?', Operator), # Union, Intersection and Subtraction
78
+ (r'\.|<:|:>>?', Operator), # Concatention
79
+ (r':', Operator), # Label
80
+ (r'->', Operator), # Epsilon Transition
81
+ (r'(>|\$|%|<|@|<>)(/|eof\b)', Operator), # EOF Actions
82
+ (r'(>|\$|%|<|@|<>)(!|err\b)', Operator), # Global Error Actions
83
+ (r'(>|\$|%|<|@|<>)(\^|lerr\b)', Operator), # Local Error Actions
84
+ (r'(>|\$|%|<|@|<>)(~|to\b)', Operator), # To-State Actions
85
+ (r'(>|\$|%|<|@|<>)(\*|from\b)', Operator), # From-State Actions
86
+ (r'>|@|\$|%', Operator), # Transition Actions and Priorities
87
+ (r'\*|\?|\+|\{[0-9]*,[0-9]*\}', Operator), # Repetition
88
+ (r'!|\^', Operator), # Negation
89
+ (r'\(|\)', Operator), # Grouping
90
+ ],
91
+ 'root': [
92
+ include('literals'),
93
+ include('whitespace'),
94
+ include('comments'),
95
+ include('keywords'),
96
+ include('numbers'),
97
+ include('identifiers'),
98
+ include('operators'),
99
+ (r'\{', Punctuation, 'host'),
100
+ (r'=', Operator),
101
+ (r';', Punctuation),
102
+ ],
103
+ 'host': [
104
+ (r'(' + r'|'.join(( # keep host code in largest possible chunks
105
+ r'[^{}\'"/#]+', # exclude unsafe characters
106
+ r'[^\\]\\[{}]', # allow escaped { or }
107
+
108
+ # strings and comments may safely contain unsafe characters
109
+ r'"(\\\\|\\"|[^"])*"', # double quote string
110
+ r"'(\\\\|\\'|[^'])*'", # single quote string
111
+ r'//.*$\n?', # single line comment
112
+ r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
113
+ r'\#.*$\n?', # ruby comment
114
+
115
+ # regular expression: There's no reason for it to start
116
+ # with a * and this stops confusion with comments.
117
+ r'/(?!\*)(\\\\|\\/|[^/])*/',
118
+
119
+ # / is safe now that we've handled regex and javadoc comments
120
+ r'/',
121
+ )) + r')+', Other),
122
+
123
+ (r'\{', Punctuation, '#push'),
124
+ (r'\}', Punctuation, '#pop'),
125
+ ],
126
+ }
127
+
128
+
129
+ class RagelEmbeddedLexer(RegexLexer):
130
+ """
131
+ A lexer for `Ragel`_ embedded in a host language file.
132
+
133
+ This will only highlight Ragel statements. If you want host language
134
+ highlighting then call the language-specific Ragel lexer.
135
+
136
+ .. versionadded:: 1.1
137
+ """
138
+
139
+ name = 'Embedded Ragel'
140
+ aliases = ['ragel-em']
141
+ filenames = ['*.rl']
142
+
143
+ tokens = {
144
+ 'root': [
145
+ (r'(' + r'|'.join(( # keep host code in largest possible chunks
146
+ r'[^%\'"/#]+', # exclude unsafe characters
147
+ r'%(?=[^%]|$)', # a single % sign is okay, just not 2 of them
148
+
149
+ # strings and comments may safely contain unsafe characters
150
+ r'"(\\\\|\\"|[^"])*"', # double quote string
151
+ r"'(\\\\|\\'|[^'])*'", # single quote string
152
+ r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
153
+ r'//.*$\n?', # single line comment
154
+ r'\#.*$\n?', # ruby/ragel comment
155
+ r'/(?!\*)(\\\\|\\/|[^/])*/', # regular expression
156
+
157
+ # / is safe now that we've handled regex and javadoc comments
158
+ r'/',
159
+ )) + r')+', Other),
160
+
161
+ # Single Line FSM.
162
+ # Please don't put a quoted newline in a single line FSM.
163
+ # That's just mean. It will break this.
164
+ (r'(%%)(?![{%])(.*)($|;)(\n?)', bygroups(Punctuation,
165
+ using(RagelLexer),
166
+ Punctuation, Text)),
167
+
168
+ # Multi Line FSM.
169
+ (r'(%%%%|%%)\{', Punctuation, 'multi-line-fsm'),
170
+ ],
171
+ 'multi-line-fsm': [
172
+ (r'(' + r'|'.join(( # keep ragel code in largest possible chunks.
173
+ r'(' + r'|'.join((
174
+ r'[^}\'"\[/#]', # exclude unsafe characters
175
+ r'\}(?=[^%]|$)', # } is okay as long as it's not followed by %
176
+ r'\}%(?=[^%]|$)', # ...well, one %'s okay, just not two...
177
+ r'[^\\]\\[{}]', # ...and } is okay if it's escaped
178
+
179
+ # allow / if it's preceded with one of these symbols
180
+ # (ragel EOF actions)
181
+ r'(>|\$|%|<|@|<>)/',
182
+
183
+ # specifically allow regex followed immediately by *
184
+ # so it doesn't get mistaken for a comment
185
+ r'/(?!\*)(\\\\|\\/|[^/])*/\*',
186
+
187
+ # allow / as long as it's not followed by another / or by a *
188
+ r'/(?=[^/*]|$)',
189
+
190
+ # We want to match as many of these as we can in one block.
191
+ # Not sure if we need the + sign here,
192
+ # does it help performance?
193
+ )) + r')+',
194
+
195
+ # strings and comments may safely contain unsafe characters
196
+ r'"(\\\\|\\"|[^"])*"', # double quote string
197
+ r"'(\\\\|\\'|[^'])*'", # single quote string
198
+ r"\[(\\\\|\\\]|[^\]])*\]", # square bracket literal
199
+ r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
200
+ r'//.*$\n?', # single line comment
201
+ r'\#.*$\n?', # ruby/ragel comment
202
+ )) + r')+', using(RagelLexer)),
203
+
204
+ (r'\}%%', Punctuation, '#pop'),
205
+ ]
206
+ }
207
+
208
+ def analyse_text(text):
209
+ return '@LANG: indep' in text
210
+
211
+
212
+ class RagelRubyLexer(DelegatingLexer):
213
+ """
214
+ A lexer for `Ragel`_ in a Ruby host file.
215
+
216
+ .. versionadded:: 1.1
217
+ """
218
+
219
+ name = 'Ragel in Ruby Host'
220
+ aliases = ['ragel-ruby', 'ragel-rb']
221
+ filenames = ['*.rl']
222
+
223
+ def __init__(self, **options):
224
+ super().__init__(RubyLexer, RagelEmbeddedLexer, **options)
225
+
226
+ def analyse_text(text):
227
+ return '@LANG: ruby' in text
228
+
229
+
230
+ class RagelCLexer(DelegatingLexer):
231
+ """
232
+ A lexer for `Ragel`_ in a C host file.
233
+
234
+ .. versionadded:: 1.1
235
+ """
236
+
237
+ name = 'Ragel in C Host'
238
+ aliases = ['ragel-c']
239
+ filenames = ['*.rl']
240
+
241
+ def __init__(self, **options):
242
+ super().__init__(CLexer, RagelEmbeddedLexer, **options)
243
+
244
+ def analyse_text(text):
245
+ return '@LANG: c' in text
246
+
247
+
248
+ class RagelDLexer(DelegatingLexer):
249
+ """
250
+ A lexer for `Ragel`_ in a D host file.
251
+
252
+ .. versionadded:: 1.1
253
+ """
254
+
255
+ name = 'Ragel in D Host'
256
+ aliases = ['ragel-d']
257
+ filenames = ['*.rl']
258
+
259
+ def __init__(self, **options):
260
+ super().__init__(DLexer, RagelEmbeddedLexer, **options)
261
+
262
+ def analyse_text(text):
263
+ return '@LANG: d' in text
264
+
265
+
266
+ class RagelCppLexer(DelegatingLexer):
267
+ """
268
+ A lexer for `Ragel`_ in a CPP host file.
269
+
270
+ .. versionadded:: 1.1
271
+ """
272
+
273
+ name = 'Ragel in CPP Host'
274
+ aliases = ['ragel-cpp']
275
+ filenames = ['*.rl']
276
+
277
+ def __init__(self, **options):
278
+ super().__init__(CppLexer, RagelEmbeddedLexer, **options)
279
+
280
+ def analyse_text(text):
281
+ return '@LANG: c++' in text
282
+
283
+
284
+ class RagelObjectiveCLexer(DelegatingLexer):
285
+ """
286
+ A lexer for `Ragel`_ in an Objective C host file.
287
+
288
+ .. versionadded:: 1.1
289
+ """
290
+
291
+ name = 'Ragel in Objective C Host'
292
+ aliases = ['ragel-objc']
293
+ filenames = ['*.rl']
294
+
295
+ def __init__(self, **options):
296
+ super().__init__(ObjectiveCLexer, RagelEmbeddedLexer, **options)
297
+
298
+ def analyse_text(text):
299
+ return '@LANG: objc' in text
300
+
301
+
302
+ class RagelJavaLexer(DelegatingLexer):
303
+ """
304
+ A lexer for `Ragel`_ in a Java host file.
305
+
306
+ .. versionadded:: 1.1
307
+ """
308
+
309
+ name = 'Ragel in Java Host'
310
+ aliases = ['ragel-java']
311
+ filenames = ['*.rl']
312
+
313
+ def __init__(self, **options):
314
+ super().__init__(JavaLexer, RagelEmbeddedLexer, **options)
315
+
316
+ def analyse_text(text):
317
+ return '@LANG: java' in text
318
+
319
+
320
+ class AntlrLexer(RegexLexer):
321
+ """
322
+ Generic `ANTLR`_ Lexer.
323
+ Should not be called directly, instead
324
+ use DelegatingLexer for your target language.
325
+
326
+ .. versionadded:: 1.1
327
+
328
+ .. _ANTLR: http://www.antlr.org/
329
+ """
330
+
331
+ name = 'ANTLR'
332
+ aliases = ['antlr']
333
+ filenames = []
334
+
335
+ _id = r'[A-Za-z]\w*'
336
+ _TOKEN_REF = r'[A-Z]\w*'
337
+ _RULE_REF = r'[a-z]\w*'
338
+ _STRING_LITERAL = r'\'(?:\\\\|\\\'|[^\']*)\''
339
+ _INT = r'[0-9]+'
340
+
341
+ tokens = {
342
+ 'whitespace': [
343
+ (r'\s+', Whitespace),
344
+ ],
345
+ 'comments': [
346
+ (r'//.*$', Comment),
347
+ (r'/\*(.|\n)*?\*/', Comment),
348
+ ],
349
+ 'root': [
350
+ include('whitespace'),
351
+ include('comments'),
352
+
353
+ (r'(lexer|parser|tree)?(\s*)(grammar\b)(\s*)(' + _id + ')(;)',
354
+ bygroups(Keyword, Whitespace, Keyword, Whitespace, Name.Class,
355
+ Punctuation)),
356
+ # optionsSpec
357
+ (r'options\b', Keyword, 'options'),
358
+ # tokensSpec
359
+ (r'tokens\b', Keyword, 'tokens'),
360
+ # attrScope
361
+ (r'(scope)(\s*)(' + _id + r')(\s*)(\{)',
362
+ bygroups(Keyword, Whitespace, Name.Variable, Whitespace,
363
+ Punctuation), 'action'),
364
+ # exception
365
+ (r'(catch|finally)\b', Keyword, 'exception'),
366
+ # action
367
+ (r'(@' + _id + r')(\s*)(::)?(\s*)(' + _id + r')(\s*)(\{)',
368
+ bygroups(Name.Label, Whitespace, Punctuation, Whitespace,
369
+ Name.Label, Whitespace, Punctuation), 'action'),
370
+ # rule
371
+ (r'((?:protected|private|public|fragment)\b)?(\s*)(' + _id + ')(!)?',
372
+ bygroups(Keyword, Whitespace, Name.Label, Punctuation),
373
+ ('rule-alts', 'rule-prelims')),
374
+ ],
375
+ 'exception': [
376
+ (r'\n', Whitespace, '#pop'),
377
+ (r'\s', Whitespace),
378
+ include('comments'),
379
+
380
+ (r'\[', Punctuation, 'nested-arg-action'),
381
+ (r'\{', Punctuation, 'action'),
382
+ ],
383
+ 'rule-prelims': [
384
+ include('whitespace'),
385
+ include('comments'),
386
+
387
+ (r'returns\b', Keyword),
388
+ (r'\[', Punctuation, 'nested-arg-action'),
389
+ (r'\{', Punctuation, 'action'),
390
+ # throwsSpec
391
+ (r'(throws)(\s+)(' + _id + ')',
392
+ bygroups(Keyword, Whitespace, Name.Label)),
393
+ (r'(,)(\s*)(' + _id + ')',
394
+ bygroups(Punctuation, Whitespace, Name.Label)), # Additional throws
395
+ # optionsSpec
396
+ (r'options\b', Keyword, 'options'),
397
+ # ruleScopeSpec - scope followed by target language code or name of action
398
+ # TODO finish implementing other possibilities for scope
399
+ # L173 ANTLRv3.g from ANTLR book
400
+ (r'(scope)(\s+)(\{)', bygroups(Keyword, Whitespace, Punctuation),
401
+ 'action'),
402
+ (r'(scope)(\s+)(' + _id + r')(\s*)(;)',
403
+ bygroups(Keyword, Whitespace, Name.Label, Whitespace, Punctuation)),
404
+ # ruleAction
405
+ (r'(@' + _id + r')(\s*)(\{)',
406
+ bygroups(Name.Label, Whitespace, Punctuation), 'action'),
407
+ # finished prelims, go to rule alts!
408
+ (r':', Punctuation, '#pop')
409
+ ],
410
+ 'rule-alts': [
411
+ include('whitespace'),
412
+ include('comments'),
413
+
414
+ # These might need to go in a separate 'block' state triggered by (
415
+ (r'options\b', Keyword, 'options'),
416
+ (r':', Punctuation),
417
+
418
+ # literals
419
+ (r"'(\\\\|\\'|[^'])*'", String),
420
+ (r'"(\\\\|\\"|[^"])*"', String),
421
+ (r'<<([^>]|>[^>])>>', String),
422
+ # identifiers
423
+ # Tokens start with capital letter.
424
+ (r'\$?[A-Z_]\w*', Name.Constant),
425
+ # Rules start with small letter.
426
+ (r'\$?[a-z_]\w*', Name.Variable),
427
+ # operators
428
+ (r'(\+|\||->|=>|=|\(|\)|\.\.|\.|\?|\*|\^|!|\#|~)', Operator),
429
+ (r',', Punctuation),
430
+ (r'\[', Punctuation, 'nested-arg-action'),
431
+ (r'\{', Punctuation, 'action'),
432
+ (r';', Punctuation, '#pop')
433
+ ],
434
+ 'tokens': [
435
+ include('whitespace'),
436
+ include('comments'),
437
+ (r'\{', Punctuation),
438
+ (r'(' + _TOKEN_REF + r')(\s*)(=)?(\s*)(' + _STRING_LITERAL
439
+ + r')?(\s*)(;)',
440
+ bygroups(Name.Label, Whitespace, Punctuation, Whitespace,
441
+ String, Whitespace, Punctuation)),
442
+ (r'\}', Punctuation, '#pop'),
443
+ ],
444
+ 'options': [
445
+ include('whitespace'),
446
+ include('comments'),
447
+ (r'\{', Punctuation),
448
+ (r'(' + _id + r')(\s*)(=)(\s*)(' +
449
+ '|'.join((_id, _STRING_LITERAL, _INT, r'\*')) + r')(\s*)(;)',
450
+ bygroups(Name.Variable, Whitespace, Punctuation, Whitespace,
451
+ Text, Whitespace, Punctuation)),
452
+ (r'\}', Punctuation, '#pop'),
453
+ ],
454
+ 'action': [
455
+ (r'(' + r'|'.join(( # keep host code in largest possible chunks
456
+ r'[^${}\'"/\\]+', # exclude unsafe characters
457
+
458
+ # strings and comments may safely contain unsafe characters
459
+ r'"(\\\\|\\"|[^"])*"', # double quote string
460
+ r"'(\\\\|\\'|[^'])*'", # single quote string
461
+ r'//.*$\n?', # single line comment
462
+ r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
463
+
464
+ # regular expression: There's no reason for it to start
465
+ # with a * and this stops confusion with comments.
466
+ r'/(?!\*)(\\\\|\\/|[^/])*/',
467
+
468
+ # backslashes are okay, as long as we are not backslashing a %
469
+ r'\\(?!%)',
470
+
471
+ # Now that we've handled regex and javadoc comments
472
+ # it's safe to let / through.
473
+ r'/',
474
+ )) + r')+', Other),
475
+ (r'(\\)(%)', bygroups(Punctuation, Other)),
476
+ (r'(\$[a-zA-Z]+)(\.?)(text|value)?',
477
+ bygroups(Name.Variable, Punctuation, Name.Property)),
478
+ (r'\{', Punctuation, '#push'),
479
+ (r'\}', Punctuation, '#pop'),
480
+ ],
481
+ 'nested-arg-action': [
482
+ (r'(' + r'|'.join(( # keep host code in largest possible chunks.
483
+ r'[^$\[\]\'"/]+', # exclude unsafe characters
484
+
485
+ # strings and comments may safely contain unsafe characters
486
+ r'"(\\\\|\\"|[^"])*"', # double quote string
487
+ r"'(\\\\|\\'|[^'])*'", # single quote string
488
+ r'//.*$\n?', # single line comment
489
+ r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
490
+
491
+ # regular expression: There's no reason for it to start
492
+ # with a * and this stops confusion with comments.
493
+ r'/(?!\*)(\\\\|\\/|[^/])*/',
494
+
495
+ # Now that we've handled regex and javadoc comments
496
+ # it's safe to let / through.
497
+ r'/',
498
+ )) + r')+', Other),
499
+
500
+
501
+ (r'\[', Punctuation, '#push'),
502
+ (r'\]', Punctuation, '#pop'),
503
+ (r'(\$[a-zA-Z]+)(\.?)(text|value)?',
504
+ bygroups(Name.Variable, Punctuation, Name.Property)),
505
+ (r'(\\\\|\\\]|\\\[|[^\[\]])+', Other),
506
+ ]
507
+ }
508
+
509
+ def analyse_text(text):
510
+ return re.search(r'^\s*grammar\s+[a-zA-Z0-9]+\s*;', text, re.M)
511
+
512
+
513
+ # http://www.antlr.org/wiki/display/ANTLR3/Code+Generation+Targets
514
+
515
+ class AntlrCppLexer(DelegatingLexer):
516
+ """
517
+ `ANTLR`_ with CPP Target
518
+
519
+ .. versionadded:: 1.1
520
+ """
521
+
522
+ name = 'ANTLR With CPP Target'
523
+ aliases = ['antlr-cpp']
524
+ filenames = ['*.G', '*.g']
525
+
526
+ def __init__(self, **options):
527
+ super().__init__(CppLexer, AntlrLexer, **options)
528
+
529
+ def analyse_text(text):
530
+ return AntlrLexer.analyse_text(text) and \
531
+ re.search(r'^\s*language\s*=\s*C\s*;', text, re.M)
532
+
533
+
534
+ class AntlrObjectiveCLexer(DelegatingLexer):
535
+ """
536
+ `ANTLR`_ with Objective-C Target
537
+
538
+ .. versionadded:: 1.1
539
+ """
540
+
541
+ name = 'ANTLR With ObjectiveC Target'
542
+ aliases = ['antlr-objc']
543
+ filenames = ['*.G', '*.g']
544
+
545
+ def __init__(self, **options):
546
+ super().__init__(ObjectiveCLexer, AntlrLexer, **options)
547
+
548
+ def analyse_text(text):
549
+ return AntlrLexer.analyse_text(text) and \
550
+ re.search(r'^\s*language\s*=\s*ObjC\s*;', text)
551
+
552
+
553
+ class AntlrCSharpLexer(DelegatingLexer):
554
+ """
555
+ `ANTLR`_ with C# Target
556
+
557
+ .. versionadded:: 1.1
558
+ """
559
+
560
+ name = 'ANTLR With C# Target'
561
+ aliases = ['antlr-csharp', 'antlr-c#']
562
+ filenames = ['*.G', '*.g']
563
+
564
+ def __init__(self, **options):
565
+ super().__init__(CSharpLexer, AntlrLexer, **options)
566
+
567
+ def analyse_text(text):
568
+ return AntlrLexer.analyse_text(text) and \
569
+ re.search(r'^\s*language\s*=\s*CSharp2\s*;', text, re.M)
570
+
571
+
572
+ class AntlrPythonLexer(DelegatingLexer):
573
+ """
574
+ `ANTLR`_ with Python Target
575
+
576
+ .. versionadded:: 1.1
577
+ """
578
+
579
+ name = 'ANTLR With Python Target'
580
+ aliases = ['antlr-python']
581
+ filenames = ['*.G', '*.g']
582
+
583
+ def __init__(self, **options):
584
+ super().__init__(PythonLexer, AntlrLexer, **options)
585
+
586
+ def analyse_text(text):
587
+ return AntlrLexer.analyse_text(text) and \
588
+ re.search(r'^\s*language\s*=\s*Python\s*;', text, re.M)
589
+
590
+
591
+ class AntlrJavaLexer(DelegatingLexer):
592
+ """
593
+ `ANTLR`_ with Java Target
594
+
595
+ .. versionadded:: 1.
596
+ """
597
+
598
+ name = 'ANTLR With Java Target'
599
+ aliases = ['antlr-java']
600
+ filenames = ['*.G', '*.g']
601
+
602
+ def __init__(self, **options):
603
+ super().__init__(JavaLexer, AntlrLexer, **options)
604
+
605
+ def analyse_text(text):
606
+ # Antlr language is Java by default
607
+ return AntlrLexer.analyse_text(text) and 0.9
608
+
609
+
610
+ class AntlrRubyLexer(DelegatingLexer):
611
+ """
612
+ `ANTLR`_ with Ruby Target
613
+
614
+ .. versionadded:: 1.1
615
+ """
616
+
617
+ name = 'ANTLR With Ruby Target'
618
+ aliases = ['antlr-ruby', 'antlr-rb']
619
+ filenames = ['*.G', '*.g']
620
+
621
+ def __init__(self, **options):
622
+ super().__init__(RubyLexer, AntlrLexer, **options)
623
+
624
+ def analyse_text(text):
625
+ return AntlrLexer.analyse_text(text) and \
626
+ re.search(r'^\s*language\s*=\s*Ruby\s*;', text, re.M)
627
+
628
+
629
+ class AntlrPerlLexer(DelegatingLexer):
630
+ """
631
+ `ANTLR`_ with Perl Target
632
+
633
+ .. versionadded:: 1.1
634
+ """
635
+
636
+ name = 'ANTLR With Perl Target'
637
+ aliases = ['antlr-perl']
638
+ filenames = ['*.G', '*.g']
639
+
640
+ def __init__(self, **options):
641
+ super().__init__(PerlLexer, AntlrLexer, **options)
642
+
643
+ def analyse_text(text):
644
+ return AntlrLexer.analyse_text(text) and \
645
+ re.search(r'^\s*language\s*=\s*Perl5\s*;', text, re.M)
646
+
647
+
648
+ class AntlrActionScriptLexer(DelegatingLexer):
649
+ """
650
+ `ANTLR`_ with ActionScript Target
651
+
652
+ .. versionadded:: 1.1
653
+ """
654
+
655
+ name = 'ANTLR With ActionScript Target'
656
+ aliases = ['antlr-as', 'antlr-actionscript']
657
+ filenames = ['*.G', '*.g']
658
+
659
+ def __init__(self, **options):
660
+ from pygments.lexers.actionscript import ActionScriptLexer
661
+ super().__init__(ActionScriptLexer, AntlrLexer, **options)
662
+
663
+ def analyse_text(text):
664
+ return AntlrLexer.analyse_text(text) and \
665
+ re.search(r'^\s*language\s*=\s*ActionScript\s*;', text, re.M)
666
+
667
+
668
+ class TreetopBaseLexer(RegexLexer):
669
+ """
670
+ A base lexer for `Treetop <http://treetop.rubyforge.org/>`_ grammars.
671
+ Not for direct use; use TreetopLexer instead.
672
+
673
+ .. versionadded:: 1.6
674
+ """
675
+
676
+ tokens = {
677
+ 'root': [
678
+ include('space'),
679
+ (r'require[ \t]+[^\n\r]+[\n\r]', Other),
680
+ (r'module\b', Keyword.Namespace, 'module'),
681
+ (r'grammar\b', Keyword, 'grammar'),
682
+ ],
683
+ 'module': [
684
+ include('space'),
685
+ include('end'),
686
+ (r'module\b', Keyword, '#push'),
687
+ (r'grammar\b', Keyword, 'grammar'),
688
+ (r'[A-Z]\w*(?:::[A-Z]\w*)*', Name.Namespace),
689
+ ],
690
+ 'grammar': [
691
+ include('space'),
692
+ include('end'),
693
+ (r'rule\b', Keyword, 'rule'),
694
+ (r'include\b', Keyword, 'include'),
695
+ (r'[A-Z]\w*', Name),
696
+ ],
697
+ 'include': [
698
+ include('space'),
699
+ (r'[A-Z]\w*(?:::[A-Z]\w*)*', Name.Class, '#pop'),
700
+ ],
701
+ 'rule': [
702
+ include('space'),
703
+ include('end'),
704
+ (r'"(\\\\|\\"|[^"])*"', String.Double),
705
+ (r"'(\\\\|\\'|[^'])*'", String.Single),
706
+ (r'([A-Za-z_]\w*)(:)', bygroups(Name.Label, Punctuation)),
707
+ (r'[A-Za-z_]\w*', Name),
708
+ (r'[()]', Punctuation),
709
+ (r'[?+*/&!~]', Operator),
710
+ (r'\[(?:\\.|\[:\^?[a-z]+:\]|[^\\\]])+\]', String.Regex),
711
+ (r'([0-9]*)(\.\.)([0-9]*)',
712
+ bygroups(Number.Integer, Operator, Number.Integer)),
713
+ (r'(<)([^>]+)(>)', bygroups(Punctuation, Name.Class, Punctuation)),
714
+ (r'\{', Punctuation, 'inline_module'),
715
+ (r'\.', String.Regex),
716
+ ],
717
+ 'inline_module': [
718
+ (r'\{', Other, 'ruby'),
719
+ (r'\}', Punctuation, '#pop'),
720
+ (r'[^{}]+', Other),
721
+ ],
722
+ 'ruby': [
723
+ (r'\{', Other, '#push'),
724
+ (r'\}', Other, '#pop'),
725
+ (r'[^{}]+', Other),
726
+ ],
727
+ 'space': [
728
+ (r'[ \t\n\r]+', Whitespace),
729
+ (r'#[^\n]*', Comment.Single),
730
+ ],
731
+ 'end': [
732
+ (r'end\b', Keyword, '#pop'),
733
+ ],
734
+ }
735
+
736
+
737
+ class TreetopLexer(DelegatingLexer):
738
+ """
739
+ A lexer for `Treetop <http://treetop.rubyforge.org/>`_ grammars.
740
+
741
+ .. versionadded:: 1.6
742
+ """
743
+
744
+ name = 'Treetop'
745
+ aliases = ['treetop']
746
+ filenames = ['*.treetop', '*.tt']
747
+
748
+ def __init__(self, **options):
749
+ super().__init__(RubyLexer, TreetopBaseLexer, **options)
750
+
751
+
752
+ class EbnfLexer(RegexLexer):
753
+ """
754
+ Lexer for `ISO/IEC 14977 EBNF
755
+ <http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form>`_
756
+ grammars.
757
+
758
+ .. versionadded:: 2.0
759
+ """
760
+
761
+ name = 'EBNF'
762
+ aliases = ['ebnf']
763
+ filenames = ['*.ebnf']
764
+ mimetypes = ['text/x-ebnf']
765
+
766
+ tokens = {
767
+ 'root': [
768
+ include('whitespace'),
769
+ include('comment_start'),
770
+ include('identifier'),
771
+ (r'=', Operator, 'production'),
772
+ ],
773
+ 'production': [
774
+ include('whitespace'),
775
+ include('comment_start'),
776
+ include('identifier'),
777
+ (r'"[^"]*"', String.Double),
778
+ (r"'[^']*'", String.Single),
779
+ (r'(\?[^?]*\?)', Name.Entity),
780
+ (r'[\[\]{}(),|]', Punctuation),
781
+ (r'-', Operator),
782
+ (r';', Punctuation, '#pop'),
783
+ (r'\.', Punctuation, '#pop'),
784
+ ],
785
+ 'whitespace': [
786
+ (r'\s+', Text),
787
+ ],
788
+ 'comment_start': [
789
+ (r'\(\*', Comment.Multiline, 'comment'),
790
+ ],
791
+ 'comment': [
792
+ (r'[^*)]', Comment.Multiline),
793
+ include('comment_start'),
794
+ (r'\*\)', Comment.Multiline, '#pop'),
795
+ (r'[*)]', Comment.Multiline),
796
+ ],
797
+ 'identifier': [
798
+ (r'([a-zA-Z][\w \-]*)', Keyword),
799
+ ],
800
+ }