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