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.esoteric
4
3
  ~~~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for esoteric languages.
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
 
@@ -13,6 +12,8 @@ from pygments.lexer import RegexLexer, include, words
13
12
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
14
13
  Number, Punctuation, Error
15
14
 
15
+ import re
16
+
16
17
  __all__ = ['BrainfuckLexer', 'BefungeLexer', 'RedcodeLexer', 'CAmkESLexer',
17
18
  'CapDLLexer', 'AheuiLexer']
18
19
 
@@ -48,6 +49,31 @@ class BrainfuckLexer(RegexLexer):
48
49
  ]
49
50
  }
50
51
 
52
+ def analyse_text(text):
53
+ """It's safe to assume that a program which mostly consists of + -
54
+ and < > is brainfuck."""
55
+ plus_minus_count = 0
56
+ greater_less_count = 0
57
+
58
+ range_to_check = max(256, len(text))
59
+
60
+ for c in text[:range_to_check]:
61
+ if c == '+' or c == '-':
62
+ plus_minus_count += 1
63
+ if c == '<' or c == '>':
64
+ greater_less_count += 1
65
+
66
+ if plus_minus_count > (0.25 * range_to_check):
67
+ return 1.0
68
+ if greater_less_count > (0.25 * range_to_check):
69
+ return 1.0
70
+
71
+ result = 0
72
+ if '[-]' in text:
73
+ result += 0.5
74
+
75
+ return result
76
+
51
77
 
52
78
  class BefungeLexer(RegexLexer):
53
79
  """
@@ -245,7 +271,7 @@ class AheuiLexer(RegexLexer):
245
271
 
246
272
  Aheui_ is esoteric language based on Korean alphabets.
247
273
 
248
- .. _Aheui:: http://aheui.github.io/
274
+ .. _Aheui: http://aheui.github.io/
249
275
 
250
276
  """
251
277
 
@@ -255,23 +281,23 @@ class AheuiLexer(RegexLexer):
255
281
 
256
282
  tokens = {
257
283
  'root': [
258
- (u'['
259
- u'나-낳냐-냫너-넣녀-녛노-놓뇨-눟뉴-닇'
260
- u'다-닿댜-댷더-덯뎌-뎧도-돟됴-둫듀-딓'
261
- u'따-땋땨-떃떠-떻뗘-뗳또-똫뚀-뚷뜌-띟'
262
- u'라-랗랴-럏러-렇려-렿로-롷료-뤃류-릫'
263
- u'마-맣먀-먛머-멓며-몋모-뫃묘-뭏뮤-믷'
264
- u'바-밯뱌-뱧버-벟벼-볗보-봏뵤-붛뷰-빃'
265
- u'빠-빻뺘-뺳뻐-뻫뼈-뼣뽀-뽛뾰-뿧쀼-삏'
266
- u'사-샇샤-샿서-섷셔-셯소-솧쇼-숳슈-싛'
267
- u'싸-쌓쌰-썋써-쎃쎠-쎻쏘-쏳쑈-쑿쓔-씧'
268
- u'자-잫쟈-쟣저-젛져-졓조-좋죠-줗쥬-즿'
269
- u'차-챃챠-챻처-첳쳐-쳫초-촣쵸-춯츄-칗'
270
- u'카-캏캬-컇커-컿켜-켷코-콯쿄-쿻큐-킣'
271
- u'타-탛탸-턓터-텋텨-톃토-톻툐-퉇튜-틯'
272
- u'파-팧퍄-퍟퍼-펗펴-폏포-퐇표-풓퓨-픻'
273
- u'하-핳햐-햫허-헣혀-혛호-홓효-훟휴-힇'
274
- u']', Operator),
284
+ ('['
285
+ '나-낳냐-냫너-넣녀-녛노-놓뇨-눟뉴-닇'
286
+ '다-닿댜-댷더-덯뎌-뎧도-돟됴-둫듀-딓'
287
+ '따-땋땨-떃떠-떻뗘-뗳또-똫뚀-뚷뜌-띟'
288
+ '라-랗랴-럏러-렇려-렿로-롷료-뤃류-릫'
289
+ '마-맣먀-먛머-멓며-몋모-뫃묘-뭏뮤-믷'
290
+ '바-밯뱌-뱧버-벟벼-볗보-봏뵤-붛뷰-빃'
291
+ '빠-빻뺘-뺳뻐-뻫뼈-뼣뽀-뽛뾰-뿧쀼-삏'
292
+ '사-샇샤-샿서-섷셔-셯소-솧쇼-숳슈-싛'
293
+ '싸-쌓쌰-썋써-쎃쎠-쎻쏘-쏳쑈-쑿쓔-씧'
294
+ '자-잫쟈-쟣저-젛져-졓조-좋죠-줗쥬-즿'
295
+ '차-챃챠-챻처-첳쳐-쳫초-촣쵸-춯츄-칗'
296
+ '카-캏캬-컇커-컿켜-켷코-콯쿄-쿻큐-킣'
297
+ '타-탛탸-턓터-텋텨-톃토-톻툐-퉇튜-틯'
298
+ '파-팧퍄-퍟퍼-펗펴-폏포-퐇표-풓퓨-픻'
299
+ '하-핳햐-햫허-헣혀-혛호-홓효-훟휴-힇'
300
+ ']', Operator),
275
301
  ('.', Comment),
276
302
  ],
277
303
  }
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.ezhil
4
3
  ~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Pygments lexers for Ezhil 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
 
@@ -30,20 +29,20 @@ class EzhilLexer(RegexLexer):
30
29
  flags = re.MULTILINE | re.UNICODE
31
30
  # Refer to tamil.utf8.tamil_letters from open-tamil for a stricter version of this.
32
31
  # This much simpler version is close enough, and includes combining marks.
33
- _TALETTERS = u'[a-zA-Z_]|[\u0b80-\u0bff]'
32
+ _TALETTERS = '[a-zA-Z_]|[\u0b80-\u0bff]'
34
33
  tokens = {
35
34
  'root': [
36
35
  include('keywords'),
37
36
  (r'#.*\n', Comment.Single),
38
37
  (r'[@+/*,^\-%]|[!<>=]=?|&&?|\|\|?', Operator),
39
- (u'இல்', Operator.Word),
40
- (words((u'assert', u'max', u'min',
41
- u'நீளம்', u'சரம்_இடமாற்று', u'சரம்_கண்டுபிடி',
42
- u'பட்டியல்', u'பின்இணை', u'வரிசைப்படுத்து',
43
- u'எடு', u'தலைகீழ்', u'நீட்டிக்க', u'நுழைக்க', u'வை',
44
- u'கோப்பை_திற', u'கோப்பை_எழுது', u'கோப்பை_மூடு',
45
- u'pi', u'sin', u'cos', u'tan', u'sqrt', u'hypot', u'pow',
46
- u'exp', u'log', u'log10', u'exit',
38
+ ('இல்', Operator.Word),
39
+ (words(('assert', 'max', 'min',
40
+ 'நீளம்', 'சரம்_இடமாற்று', 'சரம்_கண்டுபிடி',
41
+ 'பட்டியல்', 'பின்இணை', 'வரிசைப்படுத்து',
42
+ 'எடு', 'தலைகீழ்', 'நீட்டிக்க', 'நுழைக்க', 'வை',
43
+ 'கோப்பை_திற', 'கோப்பை_எழுது', 'கோப்பை_மூடு',
44
+ 'pi', 'sin', 'cos', 'tan', 'sqrt', 'hypot', 'pow',
45
+ 'exp', 'log', 'log10', 'exit',
47
46
  ), suffix=r'\b'), Name.Builtin),
48
47
  (r'(True|False)\b', Keyword.Constant),
49
48
  (r'[^\S\n]+', Text),
@@ -52,10 +51,10 @@ class EzhilLexer(RegexLexer):
52
51
  (r'[(){}\[\]:;.]', Punctuation),
53
52
  ],
54
53
  'keywords': [
55
- (u'பதிப்பி|தேர்ந்தெடு|தேர்வு|ஏதேனில்|ஆனால்|இல்லைஆனால்|இல்லை|ஆக|ஒவ்வொன்றாக|இல்|வரை|செய்|முடியேனில்|பின்கொடு|முடி|நிரல்பாகம்|தொடர்|நிறுத்து|நிரல்பாகம்', Keyword),
54
+ ('பதிப்பி|தேர்ந்தெடு|தேர்வு|ஏதேனில்|ஆனால்|இல்லைஆனால்|இல்லை|ஆக|ஒவ்வொன்றாக|இல்|வரை|செய்|முடியேனில்|பின்கொடு|முடி|நிரல்பாகம்|தொடர்|நிறுத்து|நிரல்பாகம்', Keyword),
56
55
  ],
57
56
  'identifier': [
58
- (u'(?:'+_TALETTERS+u')(?:[0-9]|'+_TALETTERS+u')*', Name),
57
+ ('(?:'+_TALETTERS+')(?:[0-9]|'+_TALETTERS+')*', Name),
59
58
  ],
60
59
  'literal': [
61
60
  (r'".*?"', String),
@@ -64,6 +63,14 @@ class EzhilLexer(RegexLexer):
64
63
  ]
65
64
  }
66
65
 
66
+ def analyse_text(text):
67
+ """This language uses Tamil-script. We'll assume that if there's a
68
+ decent amount of Tamil-characters, it's this language. This assumption
69
+ is obviously horribly off if someone uses string literals in tamil
70
+ in another language."""
71
+ if len(re.findall(r'[\u0b80-\u0bff]', text)) > 10:
72
+ return 0.25
73
+
67
74
  def __init__(self, **options):
68
- super(EzhilLexer, self).__init__(**options)
75
+ super().__init__(**options)
69
76
  self.encoding = options.get('encoding', 'utf-8')
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.factor
4
3
  ~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for the Factor 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
 
@@ -265,7 +264,7 @@ class FactorLexer(RegexLexer):
265
264
  (r'(?:<PRIVATE|PRIVATE>)\s', Keyword.Namespace),
266
265
 
267
266
  # strings
268
- (r'"""\s+(?:.|\n)*?\s+"""', String),
267
+ (r'"""\s(?:.|\n)*?\s"""', String),
269
268
  (r'"(?:\\\\|\\"|[^"])*"', String),
270
269
  (r'\S+"\s+(?:\\\\|\\"|[^"])*"', String),
271
270
  (r'CHAR:\s+(?:\\[\\abfnrstv]|[^\\]\S*)\s', String.Char),
@@ -322,7 +321,7 @@ class FactorLexer(RegexLexer):
322
321
  'slots': [
323
322
  (r'\s+', Text),
324
323
  (r';\s', Keyword, '#pop'),
325
- (r'(\{\s+)(\S+)(\s+[^}]+\s+\}\s)',
324
+ (r'(\{\s+)(\S+)(\s[^}]+\s\}\s)',
326
325
  bygroups(Text, Name.Variable, Text)),
327
326
  (r'\S+', Name.Variable),
328
327
  ],
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.fantom
4
3
  ~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for the Fantom 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
 
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.felix
4
3
  ~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexer for the Felix 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
 
@@ -0,0 +1,82 @@
1
+ """
2
+ pygments.lexers.floscript
3
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexer for FloScript
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, include
12
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
13
+ Number, Punctuation
14
+
15
+ __all__ = ['FloScriptLexer']
16
+
17
+
18
+ class FloScriptLexer(RegexLexer):
19
+ """
20
+ For `FloScript <https://github.com/ioflo/ioflo>`_ configuration language source code.
21
+
22
+ .. versionadded:: 2.4
23
+ """
24
+
25
+ name = 'FloScript'
26
+ aliases = ['floscript', 'flo']
27
+ filenames = ['*.flo']
28
+
29
+ def innerstring_rules(ttype):
30
+ return [
31
+ # the old style '%s' % (...) string formatting
32
+ (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
33
+ '[hlL]?[E-GXc-giorsux%]', String.Interpol),
34
+ # backslashes, quotes and formatting signs must be parsed one at a time
35
+ (r'[^\\\'"%\n]+', ttype),
36
+ (r'[\'"\\]', ttype),
37
+ # unhandled string formatting sign
38
+ (r'%', ttype),
39
+ # newlines are an error (use "nl" state)
40
+ ]
41
+
42
+ tokens = {
43
+ 'root': [
44
+ (r'\n', Text),
45
+ (r'[^\S\n]+', Text),
46
+
47
+ (r'[]{}:(),;[]', Punctuation),
48
+ (r'\\\n', Text),
49
+ (r'\\', Text),
50
+ (r'(to|by|with|from|per|for|cum|qua|via|as|at|in|of|on|re|is|if|be|into|'
51
+ r'and|not)\b', Operator.Word),
52
+ (r'!=|==|<<|>>|[-~+/*%=<>&^|.]', Operator),
53
+ (r'(load|init|server|logger|log|loggee|first|over|under|next|done|timeout|'
54
+ r'repeat|native|benter|enter|recur|exit|precur|renter|rexit|print|put|inc|'
55
+ r'copy|set|aux|rear|raze|go|let|do|bid|ready|start|stop|run|abort|use|flo|'
56
+ r'give|take)\b', Name.Builtin),
57
+ (r'(frame|framer|house)\b', Keyword),
58
+ ('"', String, 'string'),
59
+
60
+ include('name'),
61
+ include('numbers'),
62
+ (r'#.+$', Comment.Singleline),
63
+ ],
64
+ 'string': [
65
+ ('[^"]+', String),
66
+ ('"', String, '#pop'),
67
+ ],
68
+ 'numbers': [
69
+ (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float),
70
+ (r'\d+[eE][+-]?[0-9]+j?', Number.Float),
71
+ (r'0[0-7]+j?', Number.Oct),
72
+ (r'0[bB][01]+', Number.Bin),
73
+ (r'0[xX][a-fA-F0-9]+', Number.Hex),
74
+ (r'\d+L', Number.Integer.Long),
75
+ (r'\d+j?', Number.Integer)
76
+ ],
77
+
78
+ 'name': [
79
+ (r'@[\w.]+', Name.Decorator),
80
+ (r'[a-zA-Z_]\w*', Name),
81
+ ],
82
+ }
@@ -1,17 +1,17 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.forth
4
3
  ~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
5
+ Lexer for the Forth language.
6
+
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
8
  :license: BSD, see LICENSE for details.
8
9
  """
9
10
 
10
11
  import re
11
12
 
12
- from pygments.lexer import RegexLexer, include, bygroups
13
- from pygments.token import Error, Punctuation, Literal, Token, \
14
- Text, Comment, Operator, Keyword, Name, String, Number, Generic
13
+ from pygments.lexer import RegexLexer, bygroups
14
+ from pygments.token import Text, Comment, Keyword, Name, String, Number
15
15
 
16
16
 
17
17
  __all__ = ['ForthLexer']
@@ -28,12 +28,6 @@ class ForthLexer(RegexLexer):
28
28
  filenames = ['*.frt', '*.fs']
29
29
  mimetypes = ['application/x-forth']
30
30
 
31
- delimiter = r'\s'
32
- delimiter_end = r'(?=[%s])' % delimiter
33
-
34
- valid_name_chars = r'[^%s]' % delimiter
35
- valid_name = r"%s+%s" % (valid_name_chars, delimiter_end)
36
-
37
31
  flags = re.IGNORECASE | re.MULTILINE
38
32
 
39
33
  tokens = {
@@ -69,7 +63,7 @@ class ForthLexer(RegexLexer):
69
63
  r'then|type|u\.|u\<|um\*|um\/mod|unloop|until|'
70
64
  r'variable|while|word|xor|\[char\]|\[\'\]|'
71
65
  r'@|!|\#|<\#|\#>|:|;|\+|-|\*|\/|,|<|>|\|1\+|1-|\.|'
72
- # *** Wordset CORE-EXT
66
+ # *** Wordset CORE-EXT
73
67
  r'\.r|0<>|'
74
68
  r'0>|2>r|2r>|2r@|:noname|\?do|again|c\"|'
75
69
  r'case|compile,|endcase|endof|erase|false|'
@@ -77,38 +71,38 @@ class ForthLexer(RegexLexer):
77
71
  r'restore-input|roll|save-input|source-id|to|'
78
72
  r'true|tuck|u\.r|u>|unused|value|within|'
79
73
  r'\[compile\]|'
80
- # *** Wordset CORE-EXT-obsolescent
74
+ # *** Wordset CORE-EXT-obsolescent
81
75
  r'\#tib|convert|expect|query|span|'
82
76
  r'tib|'
83
- # *** Wordset DOUBLE
77
+ # *** Wordset DOUBLE
84
78
  r'2constant|2literal|2variable|d\+|d-|'
85
79
  r'd\.|d\.r|d0<|d0=|d2\*|d2\/|d<|d=|d>s|'
86
80
  r'dabs|dmax|dmin|dnegate|m\*\/|m\+|'
87
- # *** Wordset DOUBLE-EXT
81
+ # *** Wordset DOUBLE-EXT
88
82
  r'2rot|du<|'
89
- # *** Wordset EXCEPTION
83
+ # *** Wordset EXCEPTION
90
84
  r'catch|throw|'
91
- # *** Wordset EXCEPTION-EXT
85
+ # *** Wordset EXCEPTION-EXT
92
86
  r'abort|abort\"|'
93
- # *** Wordset FACILITY
87
+ # *** Wordset FACILITY
94
88
  r'at-xy|key\?|page|'
95
- # *** Wordset FACILITY-EXT
89
+ # *** Wordset FACILITY-EXT
96
90
  r'ekey|ekey>char|ekey\?|emit\?|ms|time&date|'
97
- # *** Wordset FILE
91
+ # *** Wordset FILE
98
92
  r'BIN|CLOSE-FILE|CREATE-FILE|DELETE-FILE|FILE-POSITION|'
99
93
  r'FILE-SIZE|INCLUDE-FILE|INCLUDED|OPEN-FILE|R\/O|'
100
94
  r'R\/W|READ-FILE|READ-LINE|REPOSITION-FILE|RESIZE-FILE|'
101
95
  r'S\"|SOURCE-ID|W/O|WRITE-FILE|WRITE-LINE|'
102
- # *** Wordset FILE-EXT
96
+ # *** Wordset FILE-EXT
103
97
  r'FILE-STATUS|FLUSH-FILE|REFILL|RENAME-FILE|'
104
- # *** Wordset FLOAT
98
+ # *** Wordset FLOAT
105
99
  r'>float|d>f|'
106
100
  r'f!|f\*|f\+|f-|f\/|f0<|f0=|f<|f>d|f@|'
107
101
  r'falign|faligned|fconstant|fdepth|fdrop|fdup|'
108
102
  r'fliteral|float\+|floats|floor|fmax|fmin|'
109
103
  r'fnegate|fover|frot|fround|fswap|fvariable|'
110
104
  r'represent|'
111
- # *** Wordset FLOAT-EXT
105
+ # *** Wordset FLOAT-EXT
112
106
  r'df!|df@|dfalign|dfaligned|dfloat\+|'
113
107
  r'dfloats|f\*\*|f\.|fabs|facos|facosh|falog|'
114
108
  r'fasin|fasinh|fatan|fatan2|fatanh|fcos|fcosh|'
@@ -116,34 +110,34 @@ class ForthLexer(RegexLexer):
116
110
  r'fsincos|fsinh|fsqrt|ftan|ftanh|f~|precision|'
117
111
  r'set-precision|sf!|sf@|sfalign|sfaligned|sfloat\+|'
118
112
  r'sfloats|'
119
- # *** Wordset LOCAL
113
+ # *** Wordset LOCAL
120
114
  r'\(local\)|to|'
121
- # *** Wordset LOCAL-EXT
115
+ # *** Wordset LOCAL-EXT
122
116
  r'locals\||'
123
- # *** Wordset MEMORY
117
+ # *** Wordset MEMORY
124
118
  r'allocate|free|resize|'
125
- # *** Wordset SEARCH
119
+ # *** Wordset SEARCH
126
120
  r'definitions|find|forth-wordlist|get-current|'
127
121
  r'get-order|search-wordlist|set-current|set-order|'
128
122
  r'wordlist|'
129
- # *** Wordset SEARCH-EXT
123
+ # *** Wordset SEARCH-EXT
130
124
  r'also|forth|only|order|previous|'
131
- # *** Wordset STRING
125
+ # *** Wordset STRING
132
126
  r'-trailing|\/string|blank|cmove|cmove>|compare|'
133
127
  r'search|sliteral|'
134
- # *** Wordset TOOLS
128
+ # *** Wordset TOOLS
135
129
  r'.s|dump|see|words|'
136
- # *** Wordset TOOLS-EXT
130
+ # *** Wordset TOOLS-EXT
137
131
  r';code|'
138
132
  r'ahead|assembler|bye|code|cs-pick|cs-roll|'
139
133
  r'editor|state|\[else\]|\[if\]|\[then\]|'
140
- # *** Wordset TOOLS-EXT-obsolescent
141
- r'forget|'
142
- # Forth 2012
143
- r'defer|defer@|defer!|action-of|begin-structure|field:|buffer:|'
144
- r'parse-name|buffer:|traverse-wordlist|n>r|nr>|2value|fvalue|'
145
- r'name>interpret|name>compile|name>string|'
146
- r'cfield:|end-structure)'+delimiter, Keyword),
134
+ # *** Wordset TOOLS-EXT-obsolescent
135
+ r'forget|'
136
+ # Forth 2012
137
+ r'defer|defer@|defer!|action-of|begin-structure|field:|buffer:|'
138
+ r'parse-name|buffer:|traverse-wordlist|n>r|nr>|2value|fvalue|'
139
+ r'name>interpret|name>compile|name>string|'
140
+ r'cfield:|end-structure)(?!\S)', Keyword),
147
141
 
148
142
  # Numbers
149
143
  (r'(\$[0-9A-F]+)', Number.Hex),
@@ -154,18 +148,18 @@ class ForthLexer(RegexLexer):
154
148
  r'itype|icompare|sp@|sp!|rp@|rp!|up@|up!|'
155
149
  r'>a|a>|a@|a!|a@+|a@-|>b|b>|b@|b!|b@+|b@-|'
156
150
  r'find-name|1ms|'
157
- r'sp0|rp0|\(evaluate\)|int-trap|int!)' + delimiter,
151
+ r'sp0|rp0|\(evaluate\)|int-trap|int!)(?!\S)',
158
152
  Name.Constant),
159
153
  # a proposal
160
154
  (r'(do-recognizer|r:fail|recognizer:|get-recognizers|'
161
155
  r'set-recognizers|r:float|r>comp|r>int|r>post|'
162
156
  r'r:name|r:word|r:dnum|r:num|recognizer|forth-recognizer|'
163
- r'rec:num|rec:float|rec:word)' + delimiter, Name.Decorator),
157
+ r'rec:num|rec:float|rec:word)(?!\S)', Name.Decorator),
164
158
  # defining words. The next word is a new command name
165
159
  (r'(Evalue|Rvalue|Uvalue|Edefer|Rdefer|Udefer)(\s+)',
166
160
  bygroups(Keyword.Namespace, Text), 'worddef'),
167
161
 
168
- (valid_name, Name.Function), # Anything else is executed
162
+ (r'\S+', Name.Function), # Anything else is executed
169
163
 
170
164
  ],
171
165
  'worddef': [
@@ -175,3 +169,9 @@ class ForthLexer(RegexLexer):
175
169
  (r'[^"]+', String, '#pop'),
176
170
  ],
177
171
  }
172
+
173
+ def analyse_text(text):
174
+ """Forth uses : COMMAND ; quite a lot in a single line, so we're trying
175
+ to find that."""
176
+ if re.search('\n:[^\n]+;\n', text):
177
+ return 0.3