pygments.rb 1.1.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +13 -0
  3. data/.github/workflows/ci.yml +28 -0
  4. data/.github/workflows/release.yml +24 -0
  5. data/.gitignore +5 -5
  6. data/CHANGELOG.adoc +128 -0
  7. data/Gemfile +3 -1
  8. data/LICENSE +1 -1
  9. data/README.adoc +160 -0
  10. data/Rakefile +13 -19
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments.rb +10 -11
  15. data/lib/pygments/lexer.rb +5 -5
  16. data/lib/pygments/mentos.py +23 -110
  17. data/lib/pygments/popen.rb +148 -229
  18. data/lib/pygments/version.rb +2 -2
  19. data/pygments.rb.gemspec +12 -11
  20. data/test/test_pygments.rb +46 -104
  21. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +23 -3
  22. data/vendor/pygments-main/Pygments-2.7.3.dist-info/INSTALLER +1 -0
  23. data/vendor/pygments-main/{LICENSE → Pygments-2.7.3.dist-info/LICENSE} +1 -1
  24. data/vendor/pygments-main/Pygments-2.7.3.dist-info/METADATA +49 -0
  25. data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +482 -0
  26. data/vendor/pygments-main/Pygments-2.7.3.dist-info/REQUESTED +0 -0
  27. data/vendor/pygments-main/Pygments-2.7.3.dist-info/WHEEL +5 -0
  28. data/vendor/pygments-main/Pygments-2.7.3.dist-info/entry_points.txt +3 -0
  29. data/vendor/pygments-main/Pygments-2.7.3.dist-info/top_level.txt +1 -0
  30. data/vendor/pygments-main/bin/pygmentize +8 -0
  31. data/vendor/pygments-main/pygments/__init__.py +6 -11
  32. data/vendor/pygments-main/pygments/__main__.py +18 -0
  33. data/vendor/pygments-main/pygments/cmdline.py +94 -41
  34. data/vendor/pygments-main/pygments/console.py +6 -9
  35. data/vendor/pygments-main/pygments/filter.py +4 -6
  36. data/vendor/pygments-main/pygments/filters/__init__.py +609 -21
  37. data/vendor/pygments-main/pygments/formatter.py +4 -4
  38. data/vendor/pygments-main/pygments/formatters/__init__.py +42 -6
  39. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -3
  40. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  41. data/vendor/pygments-main/pygments/formatters/html.py +223 -135
  42. data/vendor/pygments-main/pygments/formatters/img.py +102 -38
  43. data/vendor/pygments-main/pygments/formatters/irc.py +39 -39
  44. data/vendor/pygments-main/pygments/formatters/latex.py +56 -26
  45. data/vendor/pygments-main/pygments/formatters/other.py +12 -8
  46. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -29
  47. data/vendor/pygments-main/pygments/formatters/svg.py +38 -4
  48. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -31
  49. data/vendor/pygments-main/pygments/formatters/terminal256.py +22 -12
  50. data/vendor/pygments-main/pygments/lexer.py +41 -39
  51. data/vendor/pygments-main/pygments/lexers/__init__.py +62 -15
  52. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -5
  53. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -15
  54. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +11 -12
  55. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1338
  56. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +8 -1
  57. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
  58. data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -33
  59. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -2
  60. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1282 -0
  61. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -20
  63. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -16
  64. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -2
  65. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -3
  66. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -125
  67. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +6 -4
  68. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  69. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +113 -0
  70. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +280 -0
  71. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  72. data/vendor/pygments-main/pygments/lexers/actionscript.py +8 -3
  73. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  74. data/vendor/pygments-main/pygments/lexers/algebra.py +20 -1
  75. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/ampl.py +3 -3
  77. data/vendor/pygments-main/pygments/lexers/apl.py +15 -15
  78. data/vendor/pygments-main/pygments/lexers/archetype.py +3 -3
  79. data/vendor/pygments-main/pygments/lexers/arrow.py +117 -0
  80. data/vendor/pygments-main/pygments/lexers/asm.py +445 -70
  81. data/vendor/pygments-main/pygments/lexers/automation.py +3 -3
  82. data/vendor/pygments-main/pygments/lexers/bare.py +104 -0
  83. data/vendor/pygments-main/pygments/lexers/basic.py +166 -4
  84. data/vendor/pygments-main/pygments/lexers/bibtex.py +13 -9
  85. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +69 -36
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +68 -43
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +20 -21
  90. data/vendor/pygments-main/pygments/lexers/chapel.py +25 -14
  91. data/vendor/pygments-main/pygments/lexers/clean.py +135 -244
  92. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
  93. data/vendor/pygments-main/pygments/lexers/configs.py +188 -37
  94. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/crystal.py +31 -23
  96. data/vendor/pygments-main/pygments/lexers/csound.py +288 -187
  97. data/vendor/pygments-main/pygments/lexers/css.py +18 -16
  98. data/vendor/pygments-main/pygments/lexers/d.py +10 -5
  99. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
  100. data/vendor/pygments-main/pygments/lexers/data.py +240 -97
  101. data/vendor/pygments-main/pygments/lexers/devicetree.py +109 -0
  102. data/vendor/pygments-main/pygments/lexers/diff.py +4 -4
  103. data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -24
  104. data/vendor/pygments-main/pygments/lexers/dsls.py +147 -65
  105. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -18
  106. data/vendor/pygments-main/pygments/lexers/ecl.py +16 -2
  107. data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
  108. data/vendor/pygments-main/pygments/lexers/elm.py +5 -5
  109. data/vendor/pygments-main/pygments/lexers/email.py +151 -0
  110. data/vendor/pygments-main/pygments/lexers/erlang.py +29 -32
  111. data/vendor/pygments-main/pygments/lexers/esoteric.py +54 -25
  112. data/vendor/pygments-main/pygments/lexers/ezhil.py +24 -15
  113. data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
  114. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
  115. data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
  116. data/vendor/pygments-main/pygments/lexers/floscript.py +83 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +41 -40
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +5 -4
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
  120. data/vendor/pygments-main/pygments/lexers/freefem.py +898 -0
  121. data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
  122. data/vendor/pygments-main/pygments/lexers/gdscript.py +346 -0
  123. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  124. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +63 -6
  125. data/vendor/pygments-main/pygments/lexers/graph.py +14 -9
  126. data/vendor/pygments-main/pygments/lexers/graphics.py +272 -25
  127. data/vendor/pygments-main/pygments/lexers/haskell.py +52 -22
  128. data/vendor/pygments-main/pygments/lexers/haxe.py +6 -6
  129. data/vendor/pygments-main/pygments/lexers/hdl.py +176 -86
  130. data/vendor/pygments-main/pygments/lexers/hexdump.py +18 -12
  131. data/vendor/pygments-main/pygments/lexers/html.py +31 -19
  132. data/vendor/pygments-main/pygments/lexers/idl.py +20 -9
  133. data/vendor/pygments-main/pygments/lexers/igor.py +244 -112
  134. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -2
  135. data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
  136. data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -15
  137. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -2
  138. data/vendor/pygments-main/pygments/lexers/j.py +3 -3
  139. data/vendor/pygments-main/pygments/lexers/javascript.py +100 -66
  140. data/vendor/pygments-main/pygments/lexers/julia.py +46 -48
  141. data/vendor/pygments-main/pygments/lexers/jvm.py +265 -165
  142. data/vendor/pygments-main/pygments/lexers/lisp.py +882 -804
  143. data/vendor/pygments-main/pygments/lexers/make.py +10 -6
  144. data/vendor/pygments-main/pygments/lexers/markup.py +213 -43
  145. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  146. data/vendor/pygments-main/pygments/lexers/matlab.py +98 -41
  147. data/vendor/pygments-main/pygments/lexers/mime.py +226 -0
  148. data/vendor/pygments-main/pygments/lexers/ml.py +198 -9
  149. data/vendor/pygments-main/pygments/lexers/modeling.py +26 -18
  150. data/vendor/pygments-main/pygments/lexers/modula2.py +25 -6
  151. data/vendor/pygments-main/pygments/lexers/monte.py +4 -3
  152. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  153. data/vendor/pygments-main/pygments/lexers/ncl.py +85 -244
  154. data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -4
  155. data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
  156. data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
  157. data/vendor/pygments-main/pygments/lexers/oberon.py +17 -1
  158. data/vendor/pygments-main/pygments/lexers/objective.py +16 -16
  159. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
  160. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  161. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
  162. data/vendor/pygments-main/pygments/lexers/parsers.py +23 -58
  163. data/vendor/pygments-main/pygments/lexers/pascal.py +23 -23
  164. data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
  165. data/vendor/pygments-main/pygments/lexers/perl.py +276 -160
  166. data/vendor/pygments-main/pygments/lexers/php.py +64 -10
  167. data/vendor/pygments-main/pygments/lexers/pointless.py +71 -0
  168. data/vendor/pygments-main/pygments/lexers/pony.py +94 -0
  169. data/vendor/pygments-main/pygments/lexers/praat.py +38 -30
  170. data/vendor/pygments-main/pygments/lexers/prolog.py +36 -36
  171. data/vendor/pygments-main/pygments/lexers/promql.py +183 -0
  172. data/vendor/pygments-main/pygments/lexers/python.py +439 -226
  173. data/vendor/pygments-main/pygments/lexers/qvt.py +6 -6
  174. data/vendor/pygments-main/pygments/lexers/r.py +13 -275
  175. data/vendor/pygments-main/pygments/lexers/rdf.py +232 -39
  176. data/vendor/pygments-main/pygments/lexers/rebol.py +8 -8
  177. data/vendor/pygments-main/pygments/lexers/resource.py +2 -2
  178. data/vendor/pygments-main/pygments/lexers/ride.py +139 -0
  179. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  180. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
  181. data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -31
  182. data/vendor/pygments-main/pygments/lexers/ruby.py +22 -24
  183. data/vendor/pygments-main/pygments/lexers/rust.py +86 -71
  184. data/vendor/pygments-main/pygments/lexers/sas.py +7 -7
  185. data/vendor/pygments-main/pygments/lexers/scdoc.py +83 -0
  186. data/vendor/pygments-main/pygments/lexers/scripting.py +75 -13
  187. data/vendor/pygments-main/pygments/lexers/sgf.py +61 -0
  188. data/vendor/pygments-main/pygments/lexers/shell.py +175 -51
  189. data/vendor/pygments-main/pygments/lexers/sieve.py +69 -0
  190. data/vendor/pygments-main/pygments/lexers/slash.py +185 -0
  191. data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -2
  192. data/vendor/pygments-main/pygments/lexers/smv.py +30 -26
  193. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/solidity.py +92 -0
  195. data/vendor/pygments-main/pygments/lexers/special.py +5 -3
  196. data/vendor/pygments-main/pygments/lexers/sql.py +333 -177
  197. data/vendor/pygments-main/pygments/lexers/stata.py +107 -42
  198. data/vendor/pygments-main/pygments/lexers/supercollider.py +6 -1
  199. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
  200. data/vendor/pygments-main/pygments/lexers/templates.py +144 -132
  201. data/vendor/pygments-main/pygments/lexers/teraterm.py +335 -0
  202. data/vendor/pygments-main/pygments/lexers/testing.py +6 -6
  203. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  204. data/vendor/pygments-main/pygments/lexers/textedit.py +4 -4
  205. data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -13
  206. data/vendor/pygments-main/pygments/lexers/theorem.py +69 -53
  207. data/vendor/pygments-main/pygments/lexers/tnt.py +263 -0
  208. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  209. data/vendor/pygments-main/pygments/lexers/typoscript.py +8 -14
  210. data/vendor/pygments-main/pygments/lexers/unicon.py +412 -0
  211. data/vendor/pygments-main/pygments/lexers/urbi.py +14 -1
  212. data/vendor/pygments-main/pygments/lexers/usd.py +90 -0
  213. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  214. data/vendor/pygments-main/pygments/lexers/verification.py +15 -12
  215. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  216. data/vendor/pygments-main/pygments/lexers/webidl.py +299 -0
  217. data/vendor/pygments-main/pygments/lexers/webmisc.py +50 -38
  218. data/vendor/pygments-main/pygments/lexers/whiley.py +11 -12
  219. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/xorg.py +37 -0
  221. data/vendor/pygments-main/pygments/lexers/yang.py +104 -0
  222. data/vendor/pygments-main/pygments/lexers/zig.py +124 -0
  223. data/vendor/pygments-main/pygments/modeline.py +6 -5
  224. data/vendor/pygments-main/pygments/plugin.py +14 -18
  225. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  226. data/vendor/pygments-main/pygments/scanner.py +2 -2
  227. data/vendor/pygments-main/pygments/sphinxext.py +2 -4
  228. data/vendor/pygments-main/pygments/style.py +61 -24
  229. data/vendor/pygments-main/pygments/styles/__init__.py +13 -5
  230. data/vendor/pygments-main/pygments/styles/abap.py +29 -0
  231. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  232. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  233. data/vendor/pygments-main/pygments/styles/arduino.py +2 -2
  234. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  238. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  239. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  240. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  241. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  242. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  243. data/vendor/pygments-main/pygments/styles/inkpot.py +67 -0
  244. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  245. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  246. data/vendor/pygments-main/pygments/styles/monokai.py +4 -3
  247. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  248. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  249. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  250. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  251. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  252. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  253. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +89 -0
  254. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/sas.py +3 -0
  256. data/vendor/pygments-main/pygments/styles/solarized.py +134 -0
  257. data/vendor/pygments-main/pygments/styles/stata_dark.py +41 -0
  258. data/vendor/pygments-main/pygments/styles/stata_light.py +39 -0
  259. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  260. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  261. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  262. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  263. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  264. data/vendor/pygments-main/pygments/token.py +1 -1
  265. data/vendor/pygments-main/pygments/unistring.py +47 -108
  266. data/vendor/pygments-main/pygments/util.py +19 -95
  267. metadata +71 -137
  268. data/CHANGELOG.md +0 -98
  269. data/README.md +0 -121
  270. data/circle.yml +0 -20
  271. data/test/test_data.c +0 -2581
  272. data/test/test_data.py +0 -514
  273. data/test/test_data_generated +0 -2582
  274. data/vendor/custom_lexers/github.py +0 -565
  275. data/vendor/pygments-main/CHANGES +0 -1163
  276. data/vendor/pygments-main/MANIFEST.in +0 -6
  277. data/vendor/pygments-main/Makefile +0 -65
  278. data/vendor/pygments-main/README.rst +0 -39
  279. data/vendor/pygments-main/REVISION +0 -1
  280. data/vendor/pygments-main/TODO +0 -12
  281. data/vendor/pygments-main/doc/Makefile +0 -153
  282. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  283. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  284. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  285. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  286. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  287. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  288. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  289. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  290. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  291. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  292. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  293. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  294. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  295. data/vendor/pygments-main/doc/conf.py +0 -241
  296. data/vendor/pygments-main/doc/docs/api.rst +0 -331
  297. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  298. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  299. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -149
  300. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  301. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  302. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  303. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  304. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  305. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  306. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  307. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -689
  308. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  309. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  310. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  311. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  312. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  313. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  314. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  315. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  316. data/vendor/pygments-main/doc/download.rst +0 -41
  317. data/vendor/pygments-main/doc/faq.rst +0 -139
  318. data/vendor/pygments-main/doc/index.rst +0 -54
  319. data/vendor/pygments-main/doc/languages.rst +0 -154
  320. data/vendor/pygments-main/doc/make.bat +0 -190
  321. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  322. data/vendor/pygments-main/external/autopygmentize +0 -84
  323. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  324. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  325. data/vendor/pygments-main/external/moin-parser.py +0 -112
  326. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  327. data/vendor/pygments-main/external/rst-directive.py +0 -82
  328. data/vendor/pygments-main/pygmentize +0 -8
  329. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  330. data/vendor/pygments-main/pygments/styles/stata.py +0 -37
  331. data/vendor/pygments-main/requirements.txt +0 -5
  332. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  333. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  334. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  335. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  336. data/vendor/pygments-main/scripts/find_error.py +0 -1
  337. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  338. data/vendor/pygments-main/scripts/pylintrc +0 -301
  339. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  340. data/vendor/pygments-main/setup.cfg +0 -10
  341. data/vendor/pygments-main/setup.py +0 -77
  342. data/vendor/pygments-main/tox.ini +0 -7
  343. data/vendor/simplejson/.gitignore +0 -10
  344. data/vendor/simplejson/.travis.yml +0 -5
  345. data/vendor/simplejson/CHANGES.txt +0 -291
  346. data/vendor/simplejson/LICENSE.txt +0 -19
  347. data/vendor/simplejson/MANIFEST.in +0 -5
  348. data/vendor/simplejson/README.rst +0 -19
  349. data/vendor/simplejson/conf.py +0 -179
  350. data/vendor/simplejson/index.rst +0 -628
  351. data/vendor/simplejson/scripts/make_docs.py +0 -18
  352. data/vendor/simplejson/setup.py +0 -104
  353. data/vendor/simplejson/simplejson/__init__.py +0 -510
  354. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  355. data/vendor/simplejson/simplejson/decoder.py +0 -425
  356. data/vendor/simplejson/simplejson/encoder.py +0 -567
  357. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  358. data/vendor/simplejson/simplejson/scanner.py +0 -77
  359. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  360. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  361. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  362. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  363. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  364. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  365. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  366. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  367. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  368. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  369. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  370. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  371. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  372. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  373. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  374. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  375. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  376. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  377. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  378. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  379. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  380. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  381. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  382. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  383. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -5,19 +5,21 @@
5
5
 
6
6
  Lexers for PHP and related languages.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
12
12
  import re
13
13
 
14
- from pygments.lexer import RegexLexer, include, bygroups, default, using, \
15
- this, words
14
+ from pygments.lexer import Lexer, RegexLexer, include, bygroups, default, \
15
+ using, this, words, do_insertions
16
16
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
17
- Number, Punctuation, Other
18
- from pygments.util import get_bool_opt, get_list_opt, iteritems
17
+ Number, Punctuation, Other, Generic
18
+ from pygments.util import get_bool_opt, get_list_opt, shebang_matches
19
19
 
20
- __all__ = ['ZephirLexer', 'PhpLexer']
20
+ __all__ = ['ZephirLexer', 'PsyshConsoleLexer', 'PhpLexer']
21
+
22
+ line_re = re.compile('.*?\n')
21
23
 
22
24
 
23
25
  class ZephirLexer(RegexLexer):
@@ -49,13 +51,14 @@ class ZephirLexer(RegexLexer):
49
51
  include('commentsandwhitespace'),
50
52
  (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
51
53
  r'([gim]+\b|\B)', String.Regex, '#pop'),
54
+ (r'/', Operator, '#pop'),
52
55
  default('#pop')
53
56
  ],
54
57
  'badregex': [
55
58
  (r'\n', Text, '#pop')
56
59
  ],
57
60
  'root': [
58
- (r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
61
+ (r'^(?=\s|/)', Text, 'slashstartsregex'),
59
62
  include('commentsandwhitespace'),
60
63
  (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
61
64
  r'(<<|>>>?|==?|!=?|->|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
@@ -84,6 +87,55 @@ class ZephirLexer(RegexLexer):
84
87
  }
85
88
 
86
89
 
90
+ class PsyshConsoleLexer(Lexer):
91
+ """
92
+ For `PsySH`_ console output, such as:
93
+
94
+ .. sourcecode:: psysh
95
+
96
+ >>> $greeting = function($name): string {
97
+ ... return "Hello, {$name}";
98
+ ... };
99
+ => Closure($name): string {#2371 …3}
100
+ >>> $greeting('World')
101
+ => "Hello, World"
102
+
103
+ .. _PsySH: https://psysh.org/
104
+ .. versionadded:: 2.7
105
+ """
106
+ name = 'PsySH console session for PHP'
107
+ aliases = ['psysh']
108
+
109
+ def __init__(self, **options):
110
+ options['startinline'] = True
111
+ Lexer.__init__(self, **options)
112
+
113
+ def get_tokens_unprocessed(self, text):
114
+ phplexer = PhpLexer(**self.options)
115
+ curcode = ''
116
+ insertions = []
117
+ for match in line_re.finditer(text):
118
+ line = match.group()
119
+ if line.startswith('>>> ') or line.startswith('... '):
120
+ insertions.append((len(curcode),
121
+ [(0, Generic.Prompt, line[:4])]))
122
+ curcode += line[4:]
123
+ elif line.rstrip() == '...':
124
+ insertions.append((len(curcode),
125
+ [(0, Generic.Prompt, '...')]))
126
+ curcode += line[3:]
127
+ else:
128
+ if curcode:
129
+ yield from do_insertions(
130
+ insertions, phplexer.get_tokens_unprocessed(curcode))
131
+ curcode = ''
132
+ insertions = []
133
+ yield match.start(), Generic.Output, line
134
+ if curcode:
135
+ yield from do_insertions(insertions,
136
+ phplexer.get_tokens_unprocessed(curcode))
137
+
138
+
87
139
  class PhpLexer(RegexLexer):
88
140
  """
89
141
  For `PHP <http://www.php.net/>`_ source code.
@@ -173,7 +225,7 @@ class PhpLexer(RegexLexer):
173
225
  r'finally)\b', Keyword),
174
226
  (r'(true|false|null)\b', Keyword.Constant),
175
227
  include('magicconstants'),
176
- (r'\$\{\$+' + _ident_inner + '\}', Name.Variable),
228
+ (r'\$\{\$+' + _ident_inner + r'\}', Name.Variable),
177
229
  (r'\$+' + _ident_inner, Name.Variable),
178
230
  (_ident_inner, Name.Other),
179
231
  (r'(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?', Number.Float),
@@ -214,7 +266,7 @@ class PhpLexer(RegexLexer):
214
266
  (r'"', String.Double, '#pop'),
215
267
  (r'[^{$"\\]+', String.Double),
216
268
  (r'\\([nrt"$\\]|[0-7]{1,3}|x[0-9a-f]{1,2})', String.Escape),
217
- (r'\$' + _ident_inner + '(\[\S+?\]|->' + _ident_inner + ')?',
269
+ (r'\$' + _ident_inner + r'(\[\S+?\]|->' + _ident_inner + ')?',
218
270
  String.Interpol),
219
271
  (r'(\{\$\{)(.*?)(\}\})',
220
272
  bygroups(String.Interpol, using(this, _startinline=True),
@@ -243,7 +295,7 @@ class PhpLexer(RegexLexer):
243
295
  self._functions = set()
244
296
  if self.funcnamehighlighting:
245
297
  from pygments.lexers._php_builtins import MODULES
246
- for key, value in iteritems(MODULES):
298
+ for key, value in MODULES.items():
247
299
  if key not in self.disabledmodules:
248
300
  self._functions.update(value)
249
301
  RegexLexer.__init__(self, **options)
@@ -261,6 +313,8 @@ class PhpLexer(RegexLexer):
261
313
  yield index, token, value
262
314
 
263
315
  def analyse_text(text):
316
+ if shebang_matches(text, r'php'):
317
+ return True
264
318
  rv = 0.0
265
319
  if re.search(r'<\?(?!xml)', text):
266
320
  rv += 0.3
@@ -0,0 +1,71 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.pointless
4
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for Pointless.
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, words
13
+ from pygments.token import Comment, Error, Keyword, Name, Number, Operator, \
14
+ Punctuation, String, Text
15
+
16
+ __all__ = ['PointlessLexer']
17
+
18
+
19
+ class PointlessLexer(RegexLexer):
20
+ """
21
+ For `Pointless <https://ptls.dev>`_ source code.
22
+
23
+ .. versionadded:: 2.7
24
+ """
25
+
26
+ name = 'Pointless'
27
+ aliases = ['pointless']
28
+ filenames = ['*.ptls']
29
+
30
+ ops = words([
31
+ "+", "-", "*", "/", "**", "%", "+=", "-=", "*=",
32
+ "/=", "**=", "%=", "|>", "=", "==", "!=", "<", ">",
33
+ "<=", ">=", "=>", "$", "++",
34
+ ])
35
+
36
+ keywords = words([
37
+ "if", "then", "else", "where", "with", "cond",
38
+ "case", "and", "or", "not", "in", "as", "for",
39
+ "requires", "throw", "try", "catch", "when",
40
+ "yield", "upval",
41
+ ], suffix=r'\b')
42
+
43
+ tokens = {
44
+ 'root': [
45
+ (r'[ \n\r]+', Text),
46
+ (r'--.*$', Comment.Single),
47
+ (r'"""', String, 'multiString'),
48
+ (r'"', String, 'string'),
49
+ (r'[\[\](){}:;,.]', Punctuation),
50
+ (ops, Operator),
51
+ (keywords, Keyword),
52
+ (r'\d+|\d*\.\d+', Number),
53
+ (r'(true|false)\b', Name.Builtin),
54
+ (r'[A-Z][a-zA-Z0-9]*\b', String.Symbol),
55
+ (r'output\b', Name.Variable.Magic),
56
+ (r'(export|import)\b', Keyword.Namespace),
57
+ (r'[a-z][a-zA-Z0-9]*\b', Name.Variable)
58
+ ],
59
+ 'multiString': [
60
+ (r'\\.', String.Escape),
61
+ (r'"""', String, '#pop'),
62
+ (r'"', String),
63
+ (r'[^\\"]+', String),
64
+ ],
65
+ 'string': [
66
+ (r'\\.', String.Escape),
67
+ (r'"', String, '#pop'),
68
+ (r'\n', Error),
69
+ (r'[^\\"]+', String),
70
+ ],
71
+ }
@@ -0,0 +1,94 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.pony
4
+ ~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for Pony and related languages.
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__ = ['PonyLexer']
17
+
18
+
19
+ class PonyLexer(RegexLexer):
20
+ """
21
+ For Pony source code.
22
+
23
+ .. versionadded:: 2.4
24
+ """
25
+
26
+ name = 'Pony'
27
+ aliases = ['pony']
28
+ filenames = ['*.pony']
29
+
30
+ _caps = r'(iso|trn|ref|val|box|tag)'
31
+
32
+ tokens = {
33
+ 'root': [
34
+ (r'\n', Text),
35
+ (r'[^\S\n]+', Text),
36
+ (r'//.*\n', Comment.Single),
37
+ (r'/\*', Comment.Multiline, 'nested_comment'),
38
+ (r'"""(?:.|\n)*?"""', String.Doc),
39
+ (r'"', String, 'string'),
40
+ (r'\'.*\'', String.Char),
41
+ (r'=>|[]{}:().~;,|&!^?[]', Punctuation),
42
+ (words((
43
+ 'addressof', 'and', 'as', 'consume', 'digestof', 'is', 'isnt',
44
+ 'not', 'or'),
45
+ suffix=r'\b'),
46
+ Operator.Word),
47
+ (r'!=|==|<<|>>|[-+/*%=<>]', Operator),
48
+ (words((
49
+ 'box', 'break', 'compile_error', 'compile_intrinsic',
50
+ 'continue', 'do', 'else', 'elseif', 'embed', 'end', 'error',
51
+ 'for', 'if', 'ifdef', 'in', 'iso', 'lambda', 'let', 'match',
52
+ 'object', 'recover', 'ref', 'repeat', 'return', 'tag', 'then',
53
+ 'this', 'trn', 'try', 'until', 'use', 'var', 'val', 'where',
54
+ 'while', 'with', '#any', '#read', '#send', '#share'),
55
+ suffix=r'\b'),
56
+ Keyword),
57
+ (r'(actor|class|struct|primitive|interface|trait|type)((?:\s)+)',
58
+ bygroups(Keyword, Text), 'typename'),
59
+ (r'(new|fun|be)((?:\s)+)', bygroups(Keyword, Text), 'methodname'),
60
+ (words((
61
+ 'I8', 'U8', 'I16', 'U16', 'I32', 'U32', 'I64', 'U64', 'I128',
62
+ 'U128', 'ILong', 'ULong', 'ISize', 'USize', 'F32', 'F64',
63
+ 'Bool', 'Pointer', 'None', 'Any', 'Array', 'String',
64
+ 'Iterator'),
65
+ suffix=r'\b'),
66
+ Name.Builtin.Type),
67
+ (r'_?[A-Z]\w*', Name.Type),
68
+ (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+', Number.Float),
69
+ (r'0x[0-9a-fA-F]+', Number.Hex),
70
+ (r'\d+', Number.Integer),
71
+ (r'(true|false)\b', Name.Builtin),
72
+ (r'_\d*', Name),
73
+ (r'_?[a-z][\w\']*', Name)
74
+ ],
75
+ 'typename': [
76
+ (_caps + r'?((?:\s)*)(_?[A-Z]\w*)',
77
+ bygroups(Keyword, Text, Name.Class), '#pop')
78
+ ],
79
+ 'methodname': [
80
+ (_caps + r'?((?:\s)*)(_?[a-z]\w*)',
81
+ bygroups(Keyword, Text, Name.Function), '#pop')
82
+ ],
83
+ 'nested_comment': [
84
+ (r'[^*/]+', Comment.Multiline),
85
+ (r'/\*', Comment.Multiline, '#push'),
86
+ (r'\*/', Comment.Multiline, '#pop'),
87
+ (r'[*/]', Comment.Multiline)
88
+ ],
89
+ 'string': [
90
+ (r'"', String, '#pop'),
91
+ (r'\\"', String),
92
+ (r'[^\\"]+', String)
93
+ ]
94
+ }
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexer for Praat
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -55,7 +55,7 @@ class PraatLexer(RegexLexer):
55
55
  'exitScript', 'exp', 'extractNumber', 'fileReadable', 'fisherP', 'fisherQ',
56
56
  'floor', 'gaussP', 'gaussQ', 'hertzToBark', 'hertzToErb', 'hertzToMel',
57
57
  'hertzToSemitones', 'imax', 'imin', 'incompleteBeta', 'incompleteGammaP', 'index',
58
- 'index_regex', 'invBinomialP', 'invBinomialQ', 'invChiSquareQ', 'invFisherQ',
58
+ 'index_regex', 'integer', 'invBinomialP', 'invBinomialQ', 'invChiSquareQ', 'invFisherQ',
59
59
  'invGaussQ', 'invSigmoid', 'invStudentQ', 'length', 'ln', 'lnBeta', 'lnGamma',
60
60
  'log10', 'log2', 'max', 'melToHertz', 'min', 'minusObject', 'natural', 'number',
61
61
  'numberOfColumns', 'numberOfRows', 'numberOfSelected', 'objectsAreIdentical',
@@ -63,9 +63,9 @@ class PraatLexer(RegexLexer):
63
63
  'positive', 'randomBinomial', 'randomGauss', 'randomInteger', 'randomPoisson',
64
64
  'randomUniform', 'real', 'readFile', 'removeObject', 'rindex', 'rindex_regex',
65
65
  'round', 'runScript', 'runSystem', 'runSystem_nocheck', 'selectObject',
66
- 'selected', 'semitonesToHertz', 'sentencetext', 'sigmoid', 'sin', 'sinc',
66
+ 'selected', 'semitonesToHertz', 'sentence', 'sentencetext', 'sigmoid', 'sin', 'sinc',
67
67
  'sincpi', 'sinh', 'soundPressureToPhon', 'sqrt', 'startsWith', 'studentP',
68
- 'studentQ', 'tan', 'tanh', 'variableExists', 'word', 'writeFile', 'writeFileLine',
68
+ 'studentQ', 'tan', 'tanh', 'text', 'variableExists', 'word', 'writeFile', 'writeFileLine',
69
69
  'writeInfo', 'writeInfoLine',
70
70
  )
71
71
 
@@ -90,9 +90,9 @@ class PraatLexer(RegexLexer):
90
90
  'KNN', 'KlattGrid', 'KlattTable', 'LFCC', 'LPC', 'Label', 'LegendreSeries',
91
91
  'LinearRegression', 'LogisticRegression', 'LongSound', 'Ltas', 'MFCC', 'MSpline',
92
92
  'ManPages', 'Manipulation', 'Matrix', 'MelFilter', 'MelSpectrogram',
93
- 'MixingMatrix', 'Movie', 'Network', 'OTGrammar', 'OTHistory', 'OTMulti', 'PCA',
94
- 'PairDistribution', 'ParamCurve', 'Pattern', 'Permutation', 'Photo', 'Pitch',
95
- 'PitchModeler', 'PitchTier', 'PointProcess', 'Polygon', 'Polynomial',
93
+ 'MixingMatrix', 'Movie', 'Network', 'Object', 'OTGrammar', 'OTHistory', 'OTMulti',
94
+ 'PCA', 'PairDistribution', 'ParamCurve', 'Pattern', 'Permutation', 'Photo',
95
+ 'Pitch', 'PitchModeler', 'PitchTier', 'PointProcess', 'Polygon', 'Polynomial',
96
96
  'PowerCepstrogram', 'PowerCepstrum', 'Procrustes', 'RealPoint', 'RealTier',
97
97
  'ResultsMFC', 'Roots', 'SPINET', 'SSCP', 'SVD', 'Salience', 'ScalarProduct',
98
98
  'Similarity', 'SimpleString', 'SortedSetOfString', 'Sound', 'Speaker',
@@ -112,6 +112,10 @@ class PraatLexer(RegexLexer):
112
112
  'defaultDirectory',
113
113
  )
114
114
 
115
+ object_attributes = (
116
+ 'ncol', 'nrow', 'xmin', 'ymin', 'xmax', 'ymax', 'nx', 'ny', 'dx', 'dy',
117
+ )
118
+
115
119
  tokens = {
116
120
  'root': [
117
121
  (r'(\s+)(#.*?$)', bygroups(Text, Comment.Single)),
@@ -148,7 +152,9 @@ class PraatLexer(RegexLexer):
148
152
  ],
149
153
  'command': [
150
154
  (r'( ?[\w()-]+ ?)', Keyword),
151
- (r"'(?=.*')", String.Interpol, 'string_interpolated'),
155
+
156
+ include('string_interpolated'),
157
+
152
158
  (r'\.{3}', Keyword, ('#pop', 'old_arguments')),
153
159
  (r':', Keyword, ('#pop', 'comma_list')),
154
160
  (r'\s', Text, '#pop'),
@@ -207,50 +213,49 @@ class PraatLexer(RegexLexer):
207
213
  (r'\n', Text, '#pop'),
208
214
  (r'\b\d+(\.\d*)?([eE][-+]?\d+)?%?', Number),
209
215
  ],
210
- 'object_attributes': [
211
- (r'\.?(n(col|row)|[xy]min|[xy]max|[nd][xy])\b', Name.Builtin, '#pop'),
212
- (r'(\.?(?:col|row)\$)(\[)',
213
- bygroups(Name.Builtin, Text), 'variable_name'),
214
- (r'(\$?)(\[)',
215
- bygroups(Name.Builtin, Text), ('#pop', 'comma_list')),
216
+ 'object_reference': [
217
+ include('string_interpolated'),
218
+ (r'([a-z][a-zA-Z0-9_]*|\d+)', Name.Builtin),
219
+
220
+ (words(object_attributes, prefix=r'\.'), Name.Builtin, '#pop'),
221
+
222
+ (r'\$', Name.Builtin),
223
+ (r'\[', Text, '#pop'),
216
224
  ],
217
225
  'variable_name': [
218
226
  include('operator'),
219
227
  include('number'),
220
228
 
221
229
  (words(variables_string, suffix=r'\$'), Name.Variable.Global),
222
- (words(variables_numeric, suffix=r'\b'), Name.Variable.Global),
223
-
224
- (r'\bObject_\w+', Name.Builtin, 'object_attributes'),
225
- (words(objects, prefix=r'\b', suffix=r'_\w+'),
226
- Name.Builtin, 'object_attributes'),
230
+ (words(variables_numeric,
231
+ suffix=r'(?=[^a-zA-Z0-9_."\'$#\[:(]|\s|^|$)'),
232
+ Name.Variable.Global),
227
233
 
228
- (r"\b(Object_)(')",
229
- bygroups(Name.Builtin, String.Interpol),
230
- ('object_attributes', 'string_interpolated')),
231
- (words(objects, prefix=r'\b', suffix=r"(_)(')"),
232
- bygroups(Name.Builtin, Name.Builtin, String.Interpol),
233
- ('object_attributes', 'string_interpolated')),
234
+ (words(objects, prefix=r'\b', suffix=r"(_)"),
235
+ bygroups(Name.Builtin, Name.Builtin),
236
+ 'object_reference'),
234
237
 
235
238
  (r'\.?_?[a-z][\w.]*(\$|#)?', Text),
236
239
  (r'[\[\]]', Punctuation, 'comma_list'),
237
- (r"'(?=.*')", String.Interpol, 'string_interpolated'),
240
+
241
+ include('string_interpolated'),
238
242
  ],
239
243
  'operator': [
240
244
  (r'([+\/*<>=!-]=?|[&*|][&*|]?|\^|<>)', Operator),
241
245
  (r'(?<![\w.])(and|or|not|div|mod)(?![\w.])', Operator.Word),
242
246
  ],
243
247
  'string_interpolated': [
244
- (r'\.?[_a-z][\w.]*[$#]?(?:\[[a-zA-Z0-9,]+\])?(:[0-9]+)?',
248
+ (r'\'[_a-z][^\[\]\'":]*(\[([\d,]+|"[\w,]+")\])?(:[0-9]+)?\'',
245
249
  String.Interpol),
246
- (r"'", String.Interpol, '#pop'),
247
250
  ],
248
251
  'string_unquoted': [
249
252
  (r'(\n\s*)(\.{3})', bygroups(Text, Punctuation)),
250
253
 
251
254
  (r'\n', Text, '#pop'),
252
255
  (r'\s', Text),
253
- (r"'(?=.*')", String.Interpol, 'string_interpolated'),
256
+
257
+ include('string_interpolated'),
258
+
254
259
  (r"'", String),
255
260
  (r"[^'\n]+", String),
256
261
  ],
@@ -258,11 +263,14 @@ class PraatLexer(RegexLexer):
258
263
  (r'(\n\s*)(\.{3})', bygroups(Text, Punctuation)),
259
264
 
260
265
  (r'"', String, '#pop'),
261
- (r"'(?=.*')", String.Interpol, 'string_interpolated'),
266
+
267
+ include('string_interpolated'),
268
+
262
269
  (r"'", String),
263
270
  (r'[^\'"\n]+', String),
264
271
  ],
265
272
  'old_form': [
273
+ (r'(\s+)(#.*?$)', bygroups(Text, Comment.Single)),
266
274
  (r'\s+', Text),
267
275
 
268
276
  (r'(optionmenu|choice)([ \t]+\S+:[ \t]+)',
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for Prolog and Prolog-like languages.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -31,7 +31,6 @@ class PrologLexer(RegexLexer):
31
31
 
32
32
  tokens = {
33
33
  'root': [
34
- (r'^#.*', Comment.Single),
35
34
  (r'/\*', Comment.Multiline, 'nested-comment'),
36
35
  (r'%.*', Comment.Single),
37
36
  # character literal
@@ -56,22 +55,22 @@ class PrologLexer(RegexLexer):
56
55
  (r'(mod|div|not)\b', Operator),
57
56
  (r'_', Keyword), # The don't-care variable
58
57
  (r'([a-z]+)(:)', bygroups(Name.Namespace, Punctuation)),
59
- (u'([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]'
60
- u'[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)'
61
- u'(\\s*)(:-|-->)',
58
+ (r'([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]'
59
+ r'[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)'
60
+ r'(\s*)(:-|-->)',
62
61
  bygroups(Name.Function, Text, Operator)), # function defn
63
- (u'([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]'
64
- u'[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)'
65
- u'(\\s*)(\\()',
62
+ (r'([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]'
63
+ r'[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)'
64
+ r'(\s*)(\()',
66
65
  bygroups(Name.Function, Text, Punctuation)),
67
- (u'[a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]'
68
- u'[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*',
66
+ (r'[a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]'
67
+ r'[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*',
69
68
  String.Atom), # atom, characters
70
69
  # This one includes !
71
- (u'[#&*+\\-./:<=>?@\\\\^~\u00a1-\u00bf\u2010-\u303f]+',
70
+ (r'[#&*+\-./:<=>?@\\^~\u00a1-\u00bf\u2010-\u303f]+',
72
71
  String.Atom), # atom, graphics
73
72
  (r'[A-Z_]\w*', Name.Variable),
74
- (u'\\s+|[\u2000-\u200f\ufff0-\ufffe\uffef]', Text),
73
+ (r'\s+|[\u2000-\u200f\ufff0-\ufffe\uffef]', Text),
75
74
  ],
76
75
  'nested-comment': [
77
76
  (r'\*/', Comment.Multiline, '#pop'),
@@ -108,19 +107,19 @@ class LogtalkLexer(RegexLexer):
108
107
  (r'\n', Text),
109
108
  (r'\s+', Text),
110
109
  # Numbers
111
- (r"0'.", Number),
110
+ (r"0'[\\]?.", Number),
112
111
  (r'0b[01]+', Number.Bin),
113
112
  (r'0o[0-7]+', Number.Oct),
114
113
  (r'0x[0-9a-fA-F]+', Number.Hex),
115
114
  (r'\d+\.?\d*((e|E)(\+|-)?\d+)?', Number),
116
115
  # Variables
117
- (r'([A-Z_]\w*)', Name.Variable),
116
+ (r'([A-Z_][a-zA-Z0-9_]*)', Name.Variable),
118
117
  # Event handlers
119
118
  (r'(after|before)(?=[(])', Keyword),
120
119
  # Message forwarding handler
121
120
  (r'forward(?=[(])', Keyword),
122
121
  # Execution-context methods
123
- (r'(parameter|this|se(lf|nder))(?=[(])', Keyword),
122
+ (r'(context|parameter|this|se(lf|nder))(?=[(])', Keyword),
124
123
  # Reflection
125
124
  (r'(current_predicate|predicate_property)(?=[(])', Keyword),
126
125
  # DCGs and term expansion
@@ -136,20 +135,23 @@ class LogtalkLexer(RegexLexer):
136
135
  # Events
137
136
  (r'(current_event|(abolish|define)_events)(?=[(])', Keyword),
138
137
  # Flags
139
- (r'(current|set)_logtalk_flag(?=[(])', Keyword),
138
+ (r'(create|current|set)_logtalk_flag(?=[(])', Keyword),
140
139
  # Compiling, loading, and library paths
141
- (r'logtalk_(compile|l(ibrary_path|oad|oad_context)|make)(?=[(])', Keyword),
140
+ (r'logtalk_(compile|l(ibrary_path|oad|oad_context)|make(_target_action)?)(?=[(])', Keyword),
142
141
  (r'\blogtalk_make\b', Keyword),
143
142
  # Database
144
143
  (r'(clause|retract(all)?)(?=[(])', Keyword),
145
144
  (r'a(bolish|ssert(a|z))(?=[(])', Keyword),
146
145
  # Control constructs
147
146
  (r'(ca(ll|tch)|throw)(?=[(])', Keyword),
148
- (r'(fa(il|lse)|true)\b', Keyword),
147
+ (r'(fa(il|lse)|true|(instantiation|system)_error)\b', Keyword),
148
+ (r'(type|domain|existence|permission|representation|evaluation|resource|syntax)_error(?=[(])', Keyword),
149
149
  # All solutions
150
150
  (r'((bag|set)of|f(ind|or)all)(?=[(])', Keyword),
151
- # Multi-threading meta-predicates
152
- (r'threaded(_(call|once|ignore|exit|peek|wait|notify))?(?=[(])', Keyword),
151
+ # Multi-threading predicates
152
+ (r'threaded(_(ca(ll|ncel)|once|ignore|exit|peek|wait|notify))?(?=[(])', Keyword),
153
+ # Engine predicates
154
+ (r'threaded_engine(_(create|destroy|self|next|next_reified|yield|post|fetch))?(?=[(])', Keyword),
153
155
  # Term unification
154
156
  (r'(subsumes_term|unify_with_occurs_check)(?=[(])', Keyword),
155
157
  # Term creation and decomposition
@@ -161,8 +163,7 @@ class LogtalkLexer(RegexLexer):
161
163
  # Other arithmetic functors
162
164
  (r'(cos|a(cos|sin|tan|tan2)|exp|log|s(in|qrt)|xor)(?=[(])', Keyword),
163
165
  # Term testing
164
- (r'(var|atom(ic)?|integer|float|c(allable|ompound)|n(onvar|umber)|'
165
- r'ground|acyclic_term)(?=[(])', Keyword),
166
+ (r'(var|atom(ic)?|integer|float|c(allable|ompound)|n(onvar|umber)|ground|acyclic_term)(?=[(])', Keyword),
166
167
  # Term comparison
167
168
  (r'compare(?=[(])', Keyword),
168
169
  # Stream selection and control
@@ -227,10 +228,10 @@ class LogtalkLexer(RegexLexer):
227
228
  (r'\^', Operator),
228
229
  # Strings
229
230
  (r'"(\\\\|\\"|[^"])*"', String),
230
- # Ponctuation
231
+ # Punctuation
231
232
  (r'[()\[\],.|]', Text),
232
233
  # Atoms
233
- (r"[a-z]\w*", Text),
234
+ (r"[a-z][a-zA-Z0-9_]*", Text),
234
235
  (r"'", String, 'quoted_atom'),
235
236
  ],
236
237
 
@@ -245,36 +246,35 @@ class LogtalkLexer(RegexLexer):
245
246
  'directive': [
246
247
  # Conditional compilation directives
247
248
  (r'(el)?if(?=[(])', Keyword, 'root'),
248
- (r'(e(lse|ndif))[.]', Keyword, 'root'),
249
+ (r'(e(lse|ndif))(?=[.])', Keyword, 'root'),
249
250
  # Entity directives
250
251
  (r'(category|object|protocol)(?=[(])', Keyword, 'entityrelations'),
251
- (r'(end_(category|object|protocol))[.]', Keyword, 'root'),
252
+ (r'(end_(category|object|protocol))(?=[.])', Keyword, 'root'),
252
253
  # Predicate scope directives
253
254
  (r'(public|protected|private)(?=[(])', Keyword, 'root'),
254
255
  # Other directives
255
256
  (r'e(n(coding|sure_loaded)|xport)(?=[(])', Keyword, 'root'),
256
257
  (r'in(clude|itialization|fo)(?=[(])', Keyword, 'root'),
257
- (r'(built_in|dynamic|synchronized|threaded)[.]', Keyword, 'root'),
258
- (r'(alias|d(ynamic|iscontiguous)|m(eta_(non_terminal|predicate)|ode|ultifile)|'
259
- r's(et_(logtalk|prolog)_flag|ynchronized))(?=[(])', Keyword, 'root'),
258
+ (r'(built_in|dynamic|synchronized|threaded)(?=[.])', Keyword, 'root'),
259
+ (r'(alias|d(ynamic|iscontiguous)|m(eta_(non_terminal|predicate)|ode|ultifile)|s(et_(logtalk|prolog)_flag|ynchronized))(?=[(])', Keyword, 'root'),
260
260
  (r'op(?=[(])', Keyword, 'root'),
261
261
  (r'(c(alls|oinductive)|module|reexport|use(s|_module))(?=[(])', Keyword, 'root'),
262
- (r'[a-z]\w*(?=[(])', Text, 'root'),
263
- (r'[a-z]\w*[.]', Text, 'root'),
262
+ (r'[a-z][a-zA-Z0-9_]*(?=[(])', Text, 'root'),
263
+ (r'[a-z][a-zA-Z0-9_]*(?=[.])', Text, 'root'),
264
264
  ],
265
265
 
266
266
  'entityrelations': [
267
267
  (r'(complements|extends|i(nstantiates|mp(lements|orts))|specializes)(?=[(])', Keyword),
268
268
  # Numbers
269
- (r"0'.", Number),
269
+ (r"0'[\\]?.", Number),
270
270
  (r'0b[01]+', Number.Bin),
271
271
  (r'0o[0-7]+', Number.Oct),
272
272
  (r'0x[0-9a-fA-F]+', Number.Hex),
273
273
  (r'\d+\.?\d*((e|E)(\+|-)?\d+)?', Number),
274
274
  # Variables
275
- (r'([A-Z_]\w*)', Name.Variable),
275
+ (r'([A-Z_][a-zA-Z0-9_]*)', Name.Variable),
276
276
  # Atoms
277
- (r"[a-z]\w*", Text),
277
+ (r"[a-z][a-zA-Z0-9_]*", Text),
278
278
  (r"'", String, 'quoted_atom'),
279
279
  # Strings
280
280
  (r'"(\\\\|\\"|[^"])*"', String),
@@ -282,7 +282,7 @@ class LogtalkLexer(RegexLexer):
282
282
  (r'([)]\.)', Text, 'root'),
283
283
  # Scope operator
284
284
  (r'(::)', Operator),
285
- # Ponctuation
285
+ # Punctuation
286
286
  (r'[()\[\],.|]', Text),
287
287
  # Comments
288
288
  (r'%.*?\n', Comment),
@@ -300,7 +300,7 @@ class LogtalkLexer(RegexLexer):
300
300
  return 1.0
301
301
  elif ':- category(' in text:
302
302
  return 1.0
303
- elif re.search('^:-\s[a-z]', text, re.M):
303
+ elif re.search(r'^:-\s[a-z]', text, re.M):
304
304
  return 0.9
305
305
  else:
306
306
  return 0.0