pygments.rb 1.2.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +13 -0
  3. data/.github/workflows/ci.yml +40 -0
  4. data/.github/workflows/release.yml +24 -0
  5. data/.gitignore +5 -5
  6. data/.rubocop.yml +18 -0
  7. data/CHANGELOG.adoc +132 -0
  8. data/Gemfile +3 -1
  9. data/LICENSE +1 -1
  10. data/README.adoc +160 -0
  11. data/Rakefile +12 -21
  12. data/bench.rb +14 -8
  13. data/{cache-lexers.rb → cache_lexers.rb} +3 -2
  14. data/lexers +0 -0
  15. data/lib/pygments.rb +10 -11
  16. data/lib/pygments/lexer.rb +6 -6
  17. data/lib/pygments/mentos.py +23 -110
  18. data/lib/pygments/popen.rb +196 -275
  19. data/lib/pygments/version.rb +2 -2
  20. data/pygments.rb.gemspec +12 -10
  21. data/test/test_pygments.rb +50 -110
  22. data/vendor/pygments-main/{AUTHORS → Pygments-2.8.0.dist-info/AUTHORS} +26 -3
  23. data/vendor/pygments-main/Pygments-2.8.0.dist-info/INSTALLER +1 -0
  24. data/vendor/pygments-main/{LICENSE → Pygments-2.8.0.dist-info/LICENSE} +1 -1
  25. data/vendor/pygments-main/Pygments-2.8.0.dist-info/METADATA +48 -0
  26. data/vendor/pygments-main/Pygments-2.8.0.dist-info/RECORD +494 -0
  27. data/vendor/pygments-main/Pygments-2.8.0.dist-info/REQUESTED +0 -0
  28. data/vendor/pygments-main/Pygments-2.8.0.dist-info/WHEEL +5 -0
  29. data/vendor/pygments-main/Pygments-2.8.0.dist-info/entry_points.txt +3 -0
  30. data/vendor/pygments-main/Pygments-2.8.0.dist-info/top_level.txt +1 -0
  31. data/vendor/pygments-main/bin/pygmentize +8 -0
  32. data/vendor/pygments-main/pygments/__init__.py +6 -12
  33. data/vendor/pygments-main/pygments/__main__.py +17 -0
  34. data/vendor/pygments-main/pygments/cmdline.py +213 -184
  35. data/vendor/pygments-main/pygments/console.py +6 -10
  36. data/vendor/pygments-main/pygments/filter.py +4 -7
  37. data/vendor/pygments-main/pygments/filters/__init__.py +609 -22
  38. data/vendor/pygments-main/pygments/formatter.py +4 -5
  39. data/vendor/pygments-main/pygments/formatters/__init__.py +10 -10
  40. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -4
  41. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
  42. data/vendor/pygments-main/pygments/formatters/html.py +242 -139
  43. data/vendor/pygments-main/pygments/formatters/img.py +91 -50
  44. data/vendor/pygments-main/pygments/formatters/irc.py +39 -40
  45. data/vendor/pygments-main/pygments/formatters/latex.py +62 -33
  46. data/vendor/pygments-main/pygments/formatters/other.py +18 -17
  47. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -30
  48. data/vendor/pygments-main/pygments/formatters/svg.py +40 -5
  49. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -32
  50. data/vendor/pygments-main/pygments/formatters/terminal256.py +45 -14
  51. data/vendor/pygments-main/pygments/lexer.py +47 -44
  52. data/vendor/pygments-main/pygments/lexers/__init__.py +29 -17
  53. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -6
  54. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -16
  55. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +21 -18
  56. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1339
  57. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
  58. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -5
  59. data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -31
  60. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -3
  61. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1281 -0
  62. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
  63. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -21
  64. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -17
  65. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -3
  66. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -4
  67. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -126
  68. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +96 -58
  69. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
  70. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +112 -0
  71. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +279 -0
  72. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
  73. data/vendor/pygments-main/pygments/lexers/actionscript.py +14 -10
  74. data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
  75. data/vendor/pygments-main/pygments/lexers/algebra.py +20 -2
  76. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  77. data/vendor/pygments-main/pygments/lexers/amdgpu.py +48 -0
  78. data/vendor/pygments-main/pygments/lexers/ampl.py +3 -4
  79. data/vendor/pygments-main/pygments/lexers/apl.py +15 -16
  80. data/vendor/pygments-main/pygments/lexers/archetype.py +4 -5
  81. data/vendor/pygments-main/pygments/lexers/arrow.py +116 -0
  82. data/vendor/pygments-main/pygments/lexers/asm.py +440 -77
  83. data/vendor/pygments-main/pygments/lexers/automation.py +7 -2
  84. data/vendor/pygments-main/pygments/lexers/bare.py +103 -0
  85. data/vendor/pygments-main/pygments/lexers/basic.py +168 -7
  86. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -6
  87. data/vendor/pygments-main/pygments/lexers/boa.py +101 -0
  88. data/vendor/pygments-main/pygments/lexers/business.py +19 -5
  89. data/vendor/pygments-main/pygments/lexers/c_cpp.py +138 -48
  90. data/vendor/pygments-main/pygments/lexers/c_like.py +67 -43
  91. data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -8
  92. data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
  93. data/vendor/pygments-main/pygments/lexers/chapel.py +25 -16
  94. data/vendor/pygments-main/pygments/lexers/clean.py +135 -245
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
  96. data/vendor/pygments-main/pygments/lexers/configs.py +190 -38
  97. data/vendor/pygments-main/pygments/lexers/console.py +1 -2
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +54 -81
  99. data/vendor/pygments-main/pygments/lexers/csound.py +288 -188
  100. data/vendor/pygments-main/pygments/lexers/css.py +28 -23
  101. data/vendor/pygments-main/pygments/lexers/d.py +12 -8
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
  103. data/vendor/pygments-main/pygments/lexers/data.py +240 -98
  104. data/vendor/pygments-main/pygments/lexers/devicetree.py +108 -0
  105. data/vendor/pygments-main/pygments/lexers/diff.py +4 -5
  106. data/vendor/pygments-main/pygments/lexers/dotnet.py +46 -31
  107. data/vendor/pygments-main/pygments/lexers/dsls.py +146 -65
  108. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -19
  109. data/vendor/pygments-main/pygments/lexers/ecl.py +17 -5
  110. data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
  111. data/vendor/pygments-main/pygments/lexers/elm.py +5 -6
  112. data/vendor/pygments-main/pygments/lexers/email.py +150 -0
  113. data/vendor/pygments-main/pygments/lexers/erlang.py +29 -33
  114. data/vendor/pygments-main/pygments/lexers/esoteric.py +46 -20
  115. data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -14
  116. data/vendor/pygments-main/pygments/lexers/factor.py +3 -4
  117. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -2
  118. data/vendor/pygments-main/pygments/lexers/felix.py +1 -2
  119. data/vendor/pygments-main/pygments/lexers/floscript.py +82 -0
  120. data/vendor/pygments-main/pygments/lexers/forth.py +41 -41
  121. data/vendor/pygments-main/pygments/lexers/fortran.py +13 -10
  122. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -3
  123. data/vendor/pygments-main/pygments/lexers/freefem.py +897 -0
  124. data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
  125. data/vendor/pygments-main/pygments/lexers/futhark.py +110 -0
  126. data/vendor/pygments-main/pygments/lexers/gdscript.py +345 -0
  127. data/vendor/pygments-main/pygments/lexers/go.py +2 -3
  128. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +62 -6
  129. data/vendor/pygments-main/pygments/lexers/graph.py +14 -10
  130. data/vendor/pygments-main/pygments/lexers/graphics.py +274 -28
  131. data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
  132. data/vendor/pygments-main/pygments/lexers/haskell.py +48 -22
  133. data/vendor/pygments-main/pygments/lexers/haxe.py +8 -9
  134. data/vendor/pygments-main/pygments/lexers/hdl.py +176 -90
  135. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
  136. data/vendor/pygments-main/pygments/lexers/html.py +37 -26
  137. data/vendor/pygments-main/pygments/lexers/idl.py +19 -9
  138. data/vendor/pygments-main/pygments/lexers/igor.py +244 -113
  139. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
  140. data/vendor/pygments-main/pygments/lexers/installers.py +1 -2
  141. data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -16
  142. data/vendor/pygments-main/pygments/lexers/iolang.py +3 -4
  143. data/vendor/pygments-main/pygments/lexers/j.py +4 -5
  144. data/vendor/pygments-main/pygments/lexers/javascript.py +115 -104
  145. data/vendor/pygments-main/pygments/lexers/julia.py +44 -47
  146. data/vendor/pygments-main/pygments/lexers/jvm.py +368 -202
  147. data/vendor/pygments-main/pygments/lexers/lisp.py +887 -810
  148. data/vendor/pygments-main/pygments/lexers/make.py +12 -9
  149. data/vendor/pygments-main/pygments/lexers/markup.py +212 -45
  150. data/vendor/pygments-main/pygments/lexers/math.py +1 -2
  151. data/vendor/pygments-main/pygments/lexers/matlab.py +2705 -88
  152. data/vendor/pygments-main/pygments/lexers/mime.py +225 -0
  153. data/vendor/pygments-main/pygments/lexers/ml.py +203 -15
  154. data/vendor/pygments-main/pygments/lexers/modeling.py +26 -19
  155. data/vendor/pygments-main/pygments/lexers/modula2.py +27 -9
  156. data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
  157. data/vendor/pygments-main/pygments/lexers/mosel.py +447 -0
  158. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
  159. data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -5
  160. data/vendor/pygments-main/pygments/lexers/nit.py +1 -2
  161. data/vendor/pygments-main/pygments/lexers/nix.py +1 -2
  162. data/vendor/pygments-main/pygments/lexers/oberon.py +17 -2
  163. data/vendor/pygments-main/pygments/lexers/objective.py +18 -19
  164. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -2
  165. data/vendor/pygments-main/pygments/lexers/other.py +1 -2
  166. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -2
  167. data/vendor/pygments-main/pygments/lexers/parsers.py +47 -83
  168. data/vendor/pygments-main/pygments/lexers/pascal.py +22 -23
  169. data/vendor/pygments-main/pygments/lexers/pawn.py +31 -28
  170. data/vendor/pygments-main/pygments/lexers/perl.py +260 -149
  171. data/vendor/pygments-main/pygments/lexers/php.py +66 -13
  172. data/vendor/pygments-main/pygments/lexers/pointless.py +70 -0
  173. data/vendor/pygments-main/pygments/lexers/pony.py +93 -0
  174. data/vendor/pygments-main/pygments/lexers/praat.py +38 -31
  175. data/vendor/pygments-main/pygments/lexers/prolog.py +38 -39
  176. data/vendor/pygments-main/pygments/lexers/promql.py +182 -0
  177. data/vendor/pygments-main/pygments/lexers/python.py +450 -231
  178. data/vendor/pygments-main/pygments/lexers/qvt.py +6 -7
  179. data/vendor/pygments-main/pygments/lexers/r.py +13 -276
  180. data/vendor/pygments-main/pygments/lexers/rdf.py +232 -40
  181. data/vendor/pygments-main/pygments/lexers/rebol.py +8 -9
  182. data/vendor/pygments-main/pygments/lexers/resource.py +2 -3
  183. data/vendor/pygments-main/pygments/lexers/ride.py +138 -0
  184. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -2
  185. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
  186. data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -32
  187. data/vendor/pygments-main/pygments/lexers/ruby.py +50 -46
  188. data/vendor/pygments-main/pygments/lexers/rust.py +76 -73
  189. data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
  190. data/vendor/pygments-main/pygments/lexers/scdoc.py +82 -0
  191. data/vendor/pygments-main/pygments/lexers/scripting.py +79 -18
  192. data/vendor/pygments-main/pygments/lexers/sgf.py +60 -0
  193. data/vendor/pygments-main/pygments/lexers/shell.py +164 -49
  194. data/vendor/pygments-main/pygments/lexers/sieve.py +68 -0
  195. data/vendor/pygments-main/pygments/lexers/slash.py +184 -0
  196. data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -3
  197. data/vendor/pygments-main/pygments/lexers/smv.py +3 -4
  198. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
  199. data/vendor/pygments-main/pygments/lexers/solidity.py +91 -0
  200. data/vendor/pygments-main/pygments/lexers/special.py +31 -28
  201. data/vendor/pygments-main/pygments/lexers/sql.py +330 -179
  202. data/vendor/pygments-main/pygments/lexers/stata.py +107 -45
  203. data/vendor/pygments-main/pygments/lexers/supercollider.py +8 -4
  204. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -2
  205. data/vendor/pygments-main/pygments/lexers/templates.py +116 -136
  206. data/vendor/pygments-main/pygments/lexers/teraterm.py +334 -0
  207. data/vendor/pygments-main/pygments/lexers/testing.py +6 -7
  208. data/vendor/pygments-main/pygments/lexers/text.py +2 -2
  209. data/vendor/pygments-main/pygments/lexers/textedit.py +6 -7
  210. data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -14
  211. data/vendor/pygments-main/pygments/lexers/theorem.py +74 -56
  212. data/vendor/pygments-main/pygments/lexers/tnt.py +262 -0
  213. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -2
  214. data/vendor/pygments-main/pygments/lexers/typoscript.py +4 -12
  215. data/vendor/pygments-main/pygments/lexers/unicon.py +411 -0
  216. data/vendor/pygments-main/pygments/lexers/urbi.py +16 -4
  217. data/vendor/pygments-main/pygments/lexers/usd.py +89 -0
  218. data/vendor/pygments-main/pygments/lexers/varnish.py +4 -5
  219. data/vendor/pygments-main/pygments/lexers/verification.py +13 -11
  220. data/vendor/pygments-main/pygments/lexers/web.py +1 -2
  221. data/vendor/pygments-main/pygments/lexers/webidl.py +298 -0
  222. data/vendor/pygments-main/pygments/lexers/webmisc.py +35 -32
  223. data/vendor/pygments-main/pygments/lexers/whiley.py +5 -6
  224. data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
  225. data/vendor/pygments-main/pygments/lexers/xorg.py +5 -5
  226. data/vendor/pygments-main/pygments/lexers/yang.py +103 -0
  227. data/vendor/pygments-main/pygments/lexers/zig.py +123 -0
  228. data/vendor/pygments-main/pygments/modeline.py +1 -2
  229. data/vendor/pygments-main/pygments/plugin.py +4 -3
  230. data/vendor/pygments-main/pygments/regexopt.py +1 -2
  231. data/vendor/pygments-main/pygments/scanner.py +2 -3
  232. data/vendor/pygments-main/pygments/sphinxext.py +2 -5
  233. data/vendor/pygments-main/pygments/style.py +61 -25
  234. data/vendor/pygments-main/pygments/styles/__init__.py +12 -5
  235. data/vendor/pygments-main/pygments/styles/abap.py +1 -2
  236. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  237. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  238. data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
  239. data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
  240. data/vendor/pygments-main/pygments/styles/borland.py +1 -2
  241. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  242. data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
  243. data/vendor/pygments-main/pygments/styles/default.py +1 -2
  244. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  245. data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
  246. data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
  247. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  248. data/vendor/pygments-main/pygments/styles/inkpot.py +66 -0
  249. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
  250. data/vendor/pygments-main/pygments/styles/manni.py +1 -2
  251. data/vendor/pygments-main/pygments/styles/material.py +118 -0
  252. data/vendor/pygments-main/pygments/styles/monokai.py +4 -4
  253. data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
  254. data/vendor/pygments-main/pygments/styles/native.py +1 -2
  255. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
  256. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
  257. data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
  258. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  259. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
  260. data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
  261. data/vendor/pygments-main/pygments/styles/sas.py +1 -2
  262. data/vendor/pygments-main/pygments/styles/solarized.py +136 -0
  263. data/vendor/pygments-main/pygments/styles/stata_dark.py +40 -0
  264. data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -16
  265. data/vendor/pygments-main/pygments/styles/tango.py +1 -2
  266. data/vendor/pygments-main/pygments/styles/trac.py +1 -2
  267. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  268. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  269. data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
  270. data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
  271. data/vendor/pygments-main/pygments/token.py +1 -2
  272. data/vendor/pygments-main/pygments/unistring.py +47 -109
  273. data/vendor/pygments-main/pygments/util.py +16 -96
  274. metadata +76 -137
  275. data/CHANGELOG.md +0 -105
  276. data/README.md +0 -121
  277. data/circle.yml +0 -20
  278. data/test/test_data.c +0 -2581
  279. data/test/test_data.py +0 -514
  280. data/test/test_data_generated +0 -2582
  281. data/vendor/custom_lexers/github.py +0 -565
  282. data/vendor/pygments-main/CHANGES +0 -1186
  283. data/vendor/pygments-main/MANIFEST.in +0 -6
  284. data/vendor/pygments-main/Makefile +0 -65
  285. data/vendor/pygments-main/README.rst +0 -39
  286. data/vendor/pygments-main/REVISION +0 -1
  287. data/vendor/pygments-main/TODO +0 -12
  288. data/vendor/pygments-main/doc/Makefile +0 -153
  289. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  290. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  291. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  292. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  293. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  294. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  295. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  296. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  297. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  298. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  299. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  300. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  301. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  302. data/vendor/pygments-main/doc/conf.py +0 -241
  303. data/vendor/pygments-main/doc/docs/api.rst +0 -354
  304. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  305. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  306. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
  307. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  308. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  309. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  310. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  311. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  312. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  313. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  314. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
  315. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  316. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  317. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  318. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  319. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  320. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  321. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  322. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  323. data/vendor/pygments-main/doc/download.rst +0 -41
  324. data/vendor/pygments-main/doc/faq.rst +0 -139
  325. data/vendor/pygments-main/doc/index.rst +0 -54
  326. data/vendor/pygments-main/doc/languages.rst +0 -154
  327. data/vendor/pygments-main/doc/make.bat +0 -190
  328. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  329. data/vendor/pygments-main/external/autopygmentize +0 -101
  330. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  331. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  332. data/vendor/pygments-main/external/moin-parser.py +0 -112
  333. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  334. data/vendor/pygments-main/external/rst-directive.py +0 -82
  335. data/vendor/pygments-main/pygmentize +0 -8
  336. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  337. data/vendor/pygments-main/requirements.txt +0 -5
  338. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  339. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  340. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  341. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  342. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  343. data/vendor/pygments-main/scripts/pylintrc +0 -301
  344. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  345. data/vendor/pygments-main/setup.cfg +0 -10
  346. data/vendor/pygments-main/setup.py +0 -77
  347. data/vendor/pygments-main/tox.ini +0 -7
  348. data/vendor/simplejson/.gitignore +0 -10
  349. data/vendor/simplejson/.travis.yml +0 -5
  350. data/vendor/simplejson/CHANGES.txt +0 -291
  351. data/vendor/simplejson/LICENSE.txt +0 -19
  352. data/vendor/simplejson/MANIFEST.in +0 -5
  353. data/vendor/simplejson/README.rst +0 -19
  354. data/vendor/simplejson/conf.py +0 -179
  355. data/vendor/simplejson/index.rst +0 -628
  356. data/vendor/simplejson/scripts/make_docs.py +0 -18
  357. data/vendor/simplejson/setup.py +0 -104
  358. data/vendor/simplejson/simplejson/__init__.py +0 -510
  359. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  360. data/vendor/simplejson/simplejson/decoder.py +0 -425
  361. data/vendor/simplejson/simplejson/encoder.py +0 -567
  362. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  363. data/vendor/simplejson/simplejson/scanner.py +0 -77
  364. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  365. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  366. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  367. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  368. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  369. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  370. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  371. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  372. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  373. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  374. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  375. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  376. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  377. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  378. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  379. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  380. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  381. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  382. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  383. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  384. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  385. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  386. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  387. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  388. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers._vim_builtins
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  This file is autogenerated by scripts/get_vimkw.py
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.actionscript
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for ActionScript and MXML.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -37,7 +36,7 @@ class ActionScriptLexer(RegexLexer):
37
36
  (r'\s+', Text),
38
37
  (r'//.*?\n', Comment.Single),
39
38
  (r'/\*.*?\*/', Comment.Multiline),
40
- (r'/(\\\\|\\/|[^/\n])*/[gim]*', String.Regex),
39
+ (r'/(\\\\|\\[^\\]|[^/\\\n])*/[gim]*', String.Regex),
41
40
  (r'[~^*!%&<>|+=:;,/?\\-]+', Operator),
42
41
  (r'[{}\[\]();.]+', Punctuation),
43
42
  (words((
@@ -105,11 +104,16 @@ class ActionScriptLexer(RegexLexer):
105
104
  (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
106
105
  (r'0x[0-9a-f]+', Number.Hex),
107
106
  (r'[0-9]+', Number.Integer),
108
- (r'"(\\\\|\\"|[^"])*"', String.Double),
109
- (r"'(\\\\|\\'|[^'])*'", String.Single),
107
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
108
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
110
109
  ]
111
110
  }
112
111
 
112
+ def analyse_text(text):
113
+ """This is only used to disambiguate between ActionScript and
114
+ ActionScript3. We return 0 here; the ActionScript3 lexer will match
115
+ AS3 variable definitions and that will hopefully suffice."""
116
+ return 0
113
117
 
114
118
  class ActionScript3Lexer(RegexLexer):
115
119
  """
@@ -125,7 +129,7 @@ class ActionScript3Lexer(RegexLexer):
125
129
  'text/actionscript3']
126
130
 
127
131
  identifier = r'[$a-zA-Z_]\w*'
128
- typeidentifier = identifier + '(?:\.<\w+>)?'
132
+ typeidentifier = identifier + r'(?:\.<\w+>)?'
129
133
 
130
134
  flags = re.DOTALL | re.MULTILINE
131
135
  tokens = {
@@ -144,7 +148,7 @@ class ActionScript3Lexer(RegexLexer):
144
148
  bygroups(Keyword, Text, Keyword.Type, Text, Operator)),
145
149
  (r'//.*?\n', Comment.Single),
146
150
  (r'/\*.*?\*/', Comment.Multiline),
147
- (r'/(\\\\|\\/|[^\n])*/[gisx]*', String.Regex),
151
+ (r'/(\\\\|\\[^\\]|[^\\\n])*/[gisx]*', String.Regex),
148
152
  (r'(\.)(' + identifier + r')', bygroups(Operator, Name.Attribute)),
149
153
  (r'(case|default|for|each|in|while|do|break|return|continue|if|else|'
150
154
  r'throw|try|catch|with|new|typeof|arguments|instanceof|this|'
@@ -164,8 +168,8 @@ class ActionScript3Lexer(RegexLexer):
164
168
  (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
165
169
  (r'0x[0-9a-f]+', Number.Hex),
166
170
  (r'[0-9]+', Number.Integer),
167
- (r'"(\\\\|\\"|[^"])*"', String.Double),
168
- (r"'(\\\\|\\'|[^'])*'", String.Single),
171
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
172
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
169
173
  (r'[~^*!%&<>|+=:;,/?\\{}\[\]().-]+', Operator),
170
174
  ],
171
175
  'funcparams': [
@@ -232,7 +236,7 @@ class MxmlLexer(RegexLexer):
232
236
  (r'/?\s*>', Name.Tag, '#pop'),
233
237
  ],
234
238
  'attr': [
235
- ('\s+', Text),
239
+ (r'\s+', Text),
236
240
  ('".*?"', String, '#pop'),
237
241
  ("'.*?'", String, '#pop'),
238
242
  (r'[^\s>]+', String, '#pop'),
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.agile
4
3
  ~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Just export lexer classes previously contained in this module.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.algebra
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for computer algebra systems.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -68,6 +67,25 @@ class GAPLexer(RegexLexer):
68
67
  ],
69
68
  }
70
69
 
70
+ def analyse_text(text):
71
+ score = 0.0
72
+
73
+ # Declaration part
74
+ if re.search(
75
+ r"(InstallTrueMethod|Declare(Attribute|Category|Filter|Operation" +
76
+ r"|GlobalFunction|Synonym|SynonymAttr|Property))", text
77
+ ):
78
+ score += 0.7
79
+
80
+ # Implementation part
81
+ if re.search(
82
+ r"(DeclareRepresentation|Install(GlobalFunction|Method|" +
83
+ r"ImmediateMethod|OtherMethod)|New(Family|Type)|Objectify)", text
84
+ ):
85
+ score += 0.7
86
+
87
+ return min(score, 1.0)
88
+
71
89
 
72
90
  class MathematicaLexer(RegexLexer):
73
91
  """
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.ambient
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for AmbientTalk language.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -44,7 +43,7 @@ class AmbientTalkLexer(RegexLexer):
44
43
  (builtin, Name.Builtin),
45
44
  (r'(true|false|nil)\b', Keyword.Constant),
46
45
  (r'(~|lobby|jlobby|/)\.', Keyword.Constant, 'namespace'),
47
- (r'"(\\\\|\\"|[^"])*"', String),
46
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
48
47
  (r'\|', Punctuation, 'arglist'),
49
48
  (r'<:|[*^!%&<>+=,./?-]|:=', Operator),
50
49
  (r"`[a-zA-Z_]\w*", String.Symbol),
@@ -0,0 +1,48 @@
1
+ """
2
+ pygments.lexers.amdgpu
3
+ ~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexers for the AMDGPU ISA assembly.
6
+
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ from pygments.lexer import RegexLexer
12
+ from pygments.token import Name, Text, Keyword, Whitespace, Number, Comment
13
+
14
+ import re
15
+
16
+ __all__ = ['AMDGPULexer']
17
+
18
+ class AMDGPULexer(RegexLexer):
19
+ """
20
+ For AMD GPU assembly.
21
+
22
+ .. versionadded:: 2.8
23
+ """
24
+ name = 'AMDGPU'
25
+ aliases = ['amdgpu']
26
+ filenames = ['*.isa']
27
+
28
+ flags = re.IGNORECASE
29
+
30
+ tokens = {
31
+ 'root': [
32
+ (r'\s+', Whitespace),
33
+ (r'[\r\n]+', Text),
34
+ (r'(([a-z_0-9])*:([a-z_0-9])*)', Name.Attribute),
35
+ (r'(\[|\]|\(|\)|,|\:|\&)', Text),
36
+ (r'([;#]|//).*?\n', Comment.Single),
37
+ (r'((s_)?(ds|buffer|flat|image)_[a-z0-9_]+)', Keyword.Reserved),
38
+ (r'(_lo|_hi)', Name.Variable),
39
+ (r'(vmcnt|lgkmcnt|expcnt|vmcnt|lit|unorm|glc)', Name.Attribute),
40
+ (r'(label_[a-z0-9]+)', Keyword),
41
+ (r'(_L[0-9]*)', Name.Variable),
42
+ (r'(s|v)_[a-z0-9_]+', Keyword),
43
+ (r'(v[0-9.]+|vcc|exec|v)', Name.Variable),
44
+ (r's[0-9.]+|s', Name.Variable),
45
+ (r'[0-9]+\.[^0-9]+', Number.Float),
46
+ (r'(0[xX][a-z0-9]+)|([0-9]+)', Number.Integer)
47
+ ]
48
+ }
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.ampl
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
- Lexers for the ampl language. <http://ampl.com/>
5
+ Lexers for the AMPL language.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -18,7 +17,7 @@ __all__ = ['AmplLexer']
18
17
 
19
18
  class AmplLexer(RegexLexer):
20
19
  """
21
- For AMPL source code.
20
+ For `AMPL <http://ampl.com/>`_ source code.
22
21
 
23
22
  .. versionadded:: 2.2
24
23
  """
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.apl
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for APL.
7
6
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -18,7 +17,7 @@ __all__ = ['APLLexer']
18
17
 
19
18
  class APLLexer(RegexLexer):
20
19
  """
21
- A simple APL lexer.
20
+ A simple `APL <https://en.m.wikipedia.org/wiki/APL_(programming_language)>`_ lexer.
22
21
 
23
22
  .. versionadded:: 2.0
24
23
  """
@@ -35,7 +34,7 @@ class APLLexer(RegexLexer):
35
34
  # Comment
36
35
  # =======
37
36
  # '⍝' is traditional; '#' is supported by GNU APL and NGN (but not Dyalog)
38
- (u'[⍝#].*$', Comment.Single),
37
+ (r'[⍝#].*$', Comment.Single),
39
38
  #
40
39
  # Strings
41
40
  # =======
@@ -46,7 +45,7 @@ class APLLexer(RegexLexer):
46
45
  # ===========
47
46
  # This token type is used for diamond and parenthesis
48
47
  # but not for bracket and ; (see below)
49
- (u'[⋄◇()]', Punctuation),
48
+ (r'[⋄◇()]', Punctuation),
50
49
  #
51
50
  # Array indexing
52
51
  # ==============
@@ -57,45 +56,45 @@ class APLLexer(RegexLexer):
57
56
  # Distinguished names
58
57
  # ===================
59
58
  # following IBM APL2 standard
60
- (u'⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*', Name.Function),
59
+ (r'⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*', Name.Function),
61
60
  #
62
61
  # Labels
63
62
  # ======
64
63
  # following IBM APL2 standard
65
- # (u'[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*:', Name.Label),
64
+ # (r'[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*:', Name.Label),
66
65
  #
67
66
  # Variables
68
67
  # =========
69
68
  # following IBM APL2 standard
70
- (u'[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*', Name.Variable),
69
+ (r'[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*', Name.Variable),
71
70
  #
72
71
  # Numbers
73
72
  # =======
74
- (u'¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞)'
75
- u'([Jj]¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞))?',
73
+ (r'¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞)'
74
+ r'([Jj]¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞))?',
76
75
  Number),
77
76
  #
78
77
  # Operators
79
78
  # ==========
80
- (u'[\.\\\/⌿⍀¨⍣⍨⍠⍤∘]', Name.Attribute), # closest token type
81
- (u'[+\-×÷⌈⌊∣|⍳?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⌸⍯↗]',
79
+ (r'[\.\\\/⌿⍀¨⍣⍨⍠⍤∘⌸&⌶@⌺⍥⍛⍢]', Name.Attribute), # closest token type
80
+ (r'[+\-×÷⌈⌊∣|⍳?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⌸⍯↗⊆⊇⍸√⌾…⍮]',
82
81
  Operator),
83
82
  #
84
83
  # Constant
85
84
  # ========
86
- (u'⍬', Name.Constant),
85
+ (r'⍬', Name.Constant),
87
86
  #
88
87
  # Quad symbol
89
88
  # ===========
90
- (u'[⎕⍞]', Name.Variable.Global),
89
+ (r'[⎕⍞]', Name.Variable.Global),
91
90
  #
92
91
  # Arrows left/right
93
92
  # =================
94
- (u'[←→]', Keyword.Declaration),
93
+ (r'[←→]', Keyword.Declaration),
95
94
  #
96
95
  # D-Fn
97
96
  # ====
98
- (u'[⍺⍵⍶⍹∇:]', Name.Builtin.Pseudo),
97
+ (r'[⍺⍵⍶⍹∇:]', Name.Builtin.Pseudo),
99
98
  (r'[{}]', Keyword.Type),
100
99
  ],
101
100
  }
@@ -1,4 +1,3 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.archetype
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -14,7 +13,7 @@
14
13
  Contributed by Thomas Beale <https://github.com/wolandscat>,
15
14
  <https://bitbucket.org/thomas_beale>.
16
15
 
17
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
16
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
18
17
  :license: BSD, see LICENSE for details.
19
18
  """
20
19
 
@@ -58,7 +57,7 @@ class AtomsLexer(RegexLexer):
58
57
  (r'P((\d*(\.\d+)?[YyMmWwDd]){1,3}(T(\d*(\.\d+)?[HhMmSs]){,3})?|'
59
58
  r'T(\d*(\.\d+)?[HhMmSs]){,3})', Literal.Date),
60
59
  (r'[+-]?(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+', Number.Float),
61
- (r'[+-]?(\d+)*\.\d+%?', Number.Float),
60
+ (r'[+-]?\d*\.\d+%?', Number.Float),
62
61
  (r'0x[0-9a-fA-F]+', Number.Hex),
63
62
  (r'[+-]?\d+%?', Number.Integer),
64
63
  ],
@@ -212,9 +211,9 @@ class CadlLexer(AtomsLexer):
212
211
  (r'(not)\W', Operator),
213
212
  (r'(matches|is_in)\W', Operator),
214
213
  # is_in / not is_in char
215
- (u'(\u2208|\u2209)', Operator),
214
+ ('(\u2208|\u2209)', Operator),
216
215
  # there_exists / not there_exists / for_all / and / or
217
- (u'(\u2203|\u2204|\u2200|\u2227|\u2228|\u22BB|\223C)',
216
+ ('(\u2203|\u2204|\u2200|\u2227|\u2228|\u22BB|\223C)',
218
217
  Operator),
219
218
  # regex in slot or as string constraint
220
219
  (r'(\{)(\s*/[^}]+/\s*)(\})',
@@ -0,0 +1,116 @@
1
+ """
2
+ pygments.lexers.arrow
3
+ ~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexer for Arrow.
6
+
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ from pygments.lexer import RegexLexer, bygroups, default, include
12
+ from pygments.token import Text, Operator, Keyword, Punctuation, Name, \
13
+ String, Number
14
+
15
+ __all__ = ['ArrowLexer']
16
+
17
+ TYPES = r'\b(int|bool|char)((?:\[\])*)(?=\s+)'
18
+ IDENT = r'([a-zA-Z_][a-zA-Z0-9_]*)'
19
+ DECL = TYPES + r'(\s+)' + IDENT
20
+
21
+
22
+ class ArrowLexer(RegexLexer):
23
+ """
24
+ Lexer for Arrow: https://pypi.org/project/py-arrow-lang/
25
+
26
+ .. versionadded:: 2.7
27
+ """
28
+
29
+ name = 'Arrow'
30
+ aliases = ['arrow']
31
+ filenames = ['*.arw']
32
+
33
+ tokens = {
34
+ 'root': [
35
+ (r'\s+', Text),
36
+ (r'^[|\s]+', Punctuation),
37
+ include('blocks'),
38
+ include('statements'),
39
+ include('expressions'),
40
+ ],
41
+ 'blocks': [
42
+ (r'(function)(\n+)(/-->)(\s*)' +
43
+ DECL + # 4 groups
44
+ r'(\()', bygroups(
45
+ Keyword.Reserved, Text, Punctuation,
46
+ Text, Keyword.Type, Punctuation, Text,
47
+ Name.Function, Punctuation
48
+ ), 'fparams'),
49
+ (r'/-->$|\\-->$|/--<|\\--<|\^', Punctuation),
50
+ ],
51
+ 'statements': [
52
+ (DECL, bygroups(Keyword.Type, Punctuation, Text, Name.Variable)),
53
+ (r'\[', Punctuation, 'index'),
54
+ (r'=', Operator),
55
+ (r'require|main', Keyword.Reserved),
56
+ (r'print', Keyword.Reserved, 'print'),
57
+ ],
58
+ 'expressions': [
59
+ (r'\s+', Text),
60
+ (r'[0-9]+', Number.Integer),
61
+ (r'true|false', Keyword.Constant),
62
+ (r"'", String.Char, 'char'),
63
+ (r'"', String.Double, 'string'),
64
+ (r'\{', Punctuation, 'array'),
65
+ (r'==|!=|<|>|\+|-|\*|/|%', Operator),
66
+ (r'and|or|not|length', Operator.Word),
67
+ (r'(input)(\s+)(int|char\[\])', bygroups(
68
+ Keyword.Reserved, Text, Keyword.Type
69
+ )),
70
+ (IDENT + r'(\()', bygroups(
71
+ Name.Function, Punctuation
72
+ ), 'fargs'),
73
+ (IDENT, Name.Variable),
74
+ (r'\[', Punctuation, 'index'),
75
+ (r'\(', Punctuation, 'expressions'),
76
+ (r'\)', Punctuation, '#pop'),
77
+ ],
78
+ 'print': [
79
+ include('expressions'),
80
+ (r',', Punctuation),
81
+ default('#pop'),
82
+ ],
83
+ 'fparams': [
84
+ (DECL, bygroups(Keyword.Type, Punctuation, Text, Name.Variable)),
85
+ (r',', Punctuation),
86
+ (r'\)', Punctuation, '#pop'),
87
+ ],
88
+ 'escape': [
89
+ (r'\\(["\\/abfnrtv]|[0-9]{1,3}|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})',
90
+ String.Escape),
91
+ ],
92
+ 'char': [
93
+ (r"'", String.Char, '#pop'),
94
+ include('escape'),
95
+ (r"[^'\\]", String.Char),
96
+ ],
97
+ 'string': [
98
+ (r'"', String.Double, '#pop'),
99
+ include('escape'),
100
+ (r'[^"\\]+', String.Double),
101
+ ],
102
+ 'array': [
103
+ include('expressions'),
104
+ (r'\}', Punctuation, '#pop'),
105
+ (r',', Punctuation),
106
+ ],
107
+ 'fargs': [
108
+ include('expressions'),
109
+ (r'\)', Punctuation, '#pop'),
110
+ (r',', Punctuation),
111
+ ],
112
+ 'index': [
113
+ include('expressions'),
114
+ (r'\]', Punctuation, '#pop'),
115
+ ],
116
+ }