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
@@ -0,0 +1,109 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.devicetree
4
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for Devicetree language.
7
+
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ from pygments.lexer import RegexLexer, bygroups, include, default, words
13
+ from pygments.token import Comment, Keyword, Name, Number, Operator, \
14
+ Punctuation, String, Text
15
+
16
+ __all__ = ['DevicetreeLexer']
17
+
18
+
19
+ class DevicetreeLexer(RegexLexer):
20
+ """
21
+ Lexer for `Devicetree <https://www.devicetree.org/>`_ files.
22
+
23
+ .. versionadded:: 2.7
24
+ """
25
+
26
+ name = 'Devicetree'
27
+ aliases = ['devicetree', 'dts']
28
+ filenames = ['*.dts', '*.dtsi']
29
+ mimetypes = ['text/x-c']
30
+
31
+ #: optional Whitespace or /*...*/ style comment
32
+ _ws = r'\s*(?:/[*][^*/]*?[*]/\s*)*'
33
+
34
+ tokens = {
35
+ 'macro': [
36
+ # Include preprocessor directives (C style):
37
+ (r'(#include)(' + _ws + r')([^\n]+)',
38
+ bygroups(Comment.Preproc, Comment.Multiline, Comment.PreprocFile)),
39
+ # Define preprocessor directives (C style):
40
+ (r'(#define)(' + _ws + r')([^\n]+)',
41
+ bygroups(Comment.Preproc, Comment.Multiline, Comment.Preproc)),
42
+ # devicetree style with file:
43
+ (r'(/[^*/{]+/)(' + _ws + r')("[^\n{]+")',
44
+ bygroups(Comment.Preproc, Comment.Multiline, Comment.PreprocFile)),
45
+ # devicetree style with property:
46
+ (r'(/[^*/{]+/)(' + _ws + r')([^\n;{]*)([;]?)',
47
+ bygroups(Comment.Preproc, Comment.Multiline, Comment.Preproc, Punctuation)),
48
+ ],
49
+ 'whitespace': [
50
+ (r'\n', Text),
51
+ (r'\s+', Text),
52
+ (r'\\\n', Text), # line continuation
53
+ (r'//(\n|[\w\W]*?[^\\]\n)', Comment.Single),
54
+ (r'/(\\\n)?[*][\w\W]*?[*](\\\n)?/', Comment.Multiline),
55
+ # Open until EOF, so no ending delimeter
56
+ (r'/(\\\n)?[*][\w\W]*', Comment.Multiline),
57
+ ],
58
+ 'statements': [
59
+ (r'(L?)(")', bygroups(String.Affix, String), 'string'),
60
+ (r'0x[0-9a-fA-F]+', Number.Hex),
61
+ (r'\d+', Number.Integer),
62
+ (r'([^\s{}/*]*)(\s*)(:)', bygroups(Name.Label, Text, Punctuation)),
63
+ (words(('compatible', 'model', 'phandle', 'status', '#address-cells',
64
+ '#size-cells', 'reg', 'virtual-reg', 'ranges', 'dma-ranges',
65
+ 'device_type', 'name'), suffix=r'\b'), Keyword.Reserved),
66
+ (r'([~!%^&*+=|?:<>/#-])', Operator),
67
+ (r'[()\[\]{},.]', Punctuation),
68
+ (r'[a-zA-Z_][\w-]*(?=(?:\s*,\s*[a-zA-Z_][\w-]*|(?:' + _ws + r'))*\s*[=;])',
69
+ Name),
70
+ (r'[a-zA-Z_]\w*', Name.Attribute),
71
+ ],
72
+ 'root': [
73
+ include('whitespace'),
74
+ include('macro'),
75
+
76
+ # Nodes
77
+ (r'([^/*@\s&]+|/)(@?)([0-9a-fA-F,]*)(' + _ws + r')(\{)',
78
+ bygroups(Name.Function, Operator, Number.Integer,
79
+ Comment.Multiline, Punctuation), 'node'),
80
+
81
+ default('statement'),
82
+ ],
83
+ 'statement': [
84
+ include('whitespace'),
85
+ include('statements'),
86
+ (';', Punctuation, '#pop'),
87
+ ],
88
+ 'node': [
89
+ include('whitespace'),
90
+ include('macro'),
91
+
92
+ (r'([^/*@\s&]+|/)(@?)([0-9a-fA-F,]*)(' + _ws + r')(\{)',
93
+ bygroups(Name.Function, Operator, Number.Integer,
94
+ Comment.Multiline, Punctuation), '#push'),
95
+
96
+ include('statements'),
97
+
98
+ (r'\};', Punctuation, '#pop'),
99
+ (';', Punctuation),
100
+ ],
101
+ 'string': [
102
+ (r'"', String, '#pop'),
103
+ (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|'
104
+ r'u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})', String.Escape),
105
+ (r'[^\\"\n]+', String), # all other characters
106
+ (r'\\\n', String), # line continuation
107
+ (r'\\', String), # stray backslash
108
+ ],
109
+ }
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for diff/patch formats.
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
 
@@ -114,9 +114,9 @@ class WDiffLexer(RegexLexer):
114
114
 
115
115
  Note that:
116
116
 
117
- * only to normal output (without option like -l).
118
- * if target files of wdiff contain "[-", "-]", "{+", "+}",
119
- especially they are unbalanced, this lexer will get confusing.
117
+ * It only works with normal output (without options like ``-l``).
118
+ * If the target files contain "[-", "-]", "{+", or "+}",
119
+ especially they are unbalanced, the lexer will get confused.
120
120
 
121
121
  .. versionadded:: 2.2
122
122
  """
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for .net 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
  import re
@@ -14,7 +14,7 @@ from pygments.lexer import RegexLexer, DelegatingLexer, bygroups, include, \
14
14
  using, this, default, words
15
15
  from pygments.token import Punctuation, \
16
16
  Text, Comment, Operator, Keyword, Name, String, Number, Literal, Other
17
- from pygments.util import get_choice_opt, iteritems
17
+ from pygments.util import get_choice_opt
18
18
  from pygments import unistring as uni
19
19
 
20
20
  from pygments.lexers.html import XmlLexer
@@ -58,7 +58,7 @@ class CSharpLexer(RegexLexer):
58
58
  # http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf
59
59
 
60
60
  levels = {
61
- 'none': '@?[_a-zA-Z]\w*',
61
+ 'none': r'@?[_a-zA-Z]\w*',
62
62
  'basic': ('@?[_' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Nl') + ']' +
63
63
  '[' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Nl', 'Nd', 'Pc',
64
64
  'Cf', 'Mn', 'Mc') + ']*'),
@@ -71,7 +71,7 @@ class CSharpLexer(RegexLexer):
71
71
  tokens = {}
72
72
  token_variants = True
73
73
 
74
- for levelname, cs_ident in iteritems(levels):
74
+ for levelname, cs_ident in levels.items():
75
75
  tokens[levelname] = {
76
76
  'root': [
77
77
  # method names
@@ -171,7 +171,7 @@ class NemerleLexer(RegexLexer):
171
171
  # http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf
172
172
 
173
173
  levels = {
174
- 'none': '@?[_a-zA-Z]\w*',
174
+ 'none': r'@?[_a-zA-Z]\w*',
175
175
  'basic': ('@?[_' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Nl') + ']' +
176
176
  '[' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Nl', 'Nd', 'Pc',
177
177
  'Cf', 'Mn', 'Mc') + ']*'),
@@ -184,7 +184,7 @@ class NemerleLexer(RegexLexer):
184
184
  tokens = {}
185
185
  token_variants = True
186
186
 
187
- for levelname, cs_ident in iteritems(levels):
187
+ for levelname, cs_ident in levels.items():
188
188
  tokens[levelname] = {
189
189
  'root': [
190
190
  # method names
@@ -295,6 +295,16 @@ class NemerleLexer(RegexLexer):
295
295
 
296
296
  RegexLexer.__init__(self, **options)
297
297
 
298
+ def analyse_text(text):
299
+ """Nemerle is quite similar to Python, but @if is relatively uncommon
300
+ elsewhere."""
301
+ result = 0
302
+
303
+ if '@if' in text:
304
+ result += 0.1
305
+
306
+ return result
307
+
298
308
 
299
309
  class BooLexer(RegexLexer):
300
310
  """
@@ -352,13 +362,13 @@ class BooLexer(RegexLexer):
352
362
  ('[*/]', Comment.Multiline)
353
363
  ],
354
364
  'funcname': [
355
- ('[a-zA-Z_]\w*', Name.Function, '#pop')
365
+ (r'[a-zA-Z_]\w*', Name.Function, '#pop')
356
366
  ],
357
367
  'classname': [
358
- ('[a-zA-Z_]\w*', Name.Class, '#pop')
368
+ (r'[a-zA-Z_]\w*', Name.Class, '#pop')
359
369
  ],
360
370
  'namespace': [
361
- ('[a-zA-Z_][\w.]*', Name.Namespace, '#pop')
371
+ (r'[a-zA-Z_][\w.]*', Name.Namespace, '#pop')
362
372
  ]
363
373
  }
364
374
 
@@ -413,7 +423,7 @@ class VbNetLexer(RegexLexer):
413
423
  'Static', 'Step', 'Stop', 'SyncLock', 'Then', 'Throw', 'To',
414
424
  'True', 'Try', 'TryCast', 'Wend', 'Using', 'When', 'While',
415
425
  'Widening', 'With', 'WithEvents', 'WriteOnly'),
416
- prefix='(?<!\.)', suffix=r'\b'), Keyword),
426
+ prefix=r'(?<!\.)', suffix=r'\b'), Keyword),
417
427
  (r'(?<!\.)End\b', Keyword, 'end'),
418
428
  (r'(?<!\.)(Dim|Const)\b', Keyword, 'dim'),
419
429
  (r'(?<!\.)(Function|Sub|Property)(\s+)',
@@ -507,8 +517,7 @@ class CSharpAspxLexer(DelegatingLexer):
507
517
  mimetypes = []
508
518
 
509
519
  def __init__(self, **options):
510
- super(CSharpAspxLexer, self).__init__(CSharpLexer, GenericAspxLexer,
511
- **options)
520
+ super().__init__(CSharpLexer, GenericAspxLexer, **options)
512
521
 
513
522
  def analyse_text(text):
514
523
  if re.search(r'Page\s*Language="C#"', text, re.I) is not None:
@@ -528,8 +537,7 @@ class VbNetAspxLexer(DelegatingLexer):
528
537
  mimetypes = []
529
538
 
530
539
  def __init__(self, **options):
531
- super(VbNetAspxLexer, self).__init__(VbNetLexer, GenericAspxLexer,
532
- **options)
540
+ super().__init__(VbNetLexer, GenericAspxLexer, **options)
533
541
 
534
542
  def analyse_text(text):
535
543
  if re.search(r'Page\s*Language="Vb"', text, re.I) is not None:
@@ -541,16 +549,13 @@ class VbNetAspxLexer(DelegatingLexer):
541
549
  # Very close to functional.OcamlLexer
542
550
  class FSharpLexer(RegexLexer):
543
551
  """
544
- For the F# language (version 3.0).
545
-
546
- AAAAACK Strings
547
- http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html#_Toc335818775
552
+ For the `F# language <https://fsharp.org/>`_ (version 3.0).
548
553
 
549
554
  .. versionadded:: 1.5
550
555
  """
551
556
 
552
- name = 'FSharp'
553
- aliases = ['fsharp']
557
+ name = 'F#'
558
+ aliases = ['fsharp', 'f#']
554
559
  filenames = ['*.fs', '*.fsi']
555
560
  mimetypes = ['text/x-fsharp']
556
561
 
@@ -574,10 +579,10 @@ class FSharpLexer(RegexLexer):
574
579
  'virtual', 'volatile',
575
580
  ]
576
581
  keyopts = [
577
- '!=', '#', '&&', '&', '\(', '\)', '\*', '\+', ',', '-\.',
578
- '->', '-', '\.\.', '\.', '::', ':=', ':>', ':', ';;', ';', '<-',
579
- '<\]', '<', '>\]', '>', '\?\?', '\?', '\[<', '\[\|', '\[', '\]',
580
- '_', '`', '\{', '\|\]', '\|', '\}', '~', '<@@', '<@', '=', '@>', '@@>',
582
+ '!=', '#', '&&', '&', r'\(', r'\)', r'\*', r'\+', ',', r'-\.',
583
+ '->', '-', r'\.\.', r'\.', '::', ':=', ':>', ':', ';;', ';', '<-',
584
+ r'<\]', '<', r'>\]', '>', r'\?\?', r'\?', r'\[<', r'\[\|', r'\[', r'\]',
585
+ '_', '`', r'\{', r'\|\]', r'\|', r'\}', '~', '<@@', '<@', '=', '@>', '@@>',
581
586
  ]
582
587
 
583
588
  operators = r'[!$%&*+\./:<=>?@^|~-]'
@@ -689,3 +694,14 @@ class FSharpLexer(RegexLexer):
689
694
  (r'"', String),
690
695
  ],
691
696
  }
697
+
698
+ def analyse_text(text):
699
+ """F# doesn't have that many unique features -- |> and <| are weak
700
+ indicators."""
701
+ result = 0
702
+ if '|>' in text:
703
+ result += 0.05
704
+ if '<|' in text:
705
+ result += 0.05
706
+
707
+ return result
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for various domain-specific languages.
7
7
 
8
- :copyright: Copyright 2006-2016 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
 
@@ -14,9 +14,9 @@ import re
14
14
  from pygments.lexer import ExtendedRegexLexer, RegexLexer, bygroups, words, \
15
15
  include, default, this, using, combined
16
16
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
17
- Number, Punctuation, Literal, Whitespace
17
+ Number, Punctuation, Whitespace
18
18
 
19
- __all__ = ['ProtoBufLexer', 'BroLexer', 'PuppetLexer', 'RslLexer',
19
+ __all__ = ['ProtoBufLexer', 'ZeekLexer', 'PuppetLexer', 'RslLexer',
20
20
  'MscgenLexer', 'VGLLexer', 'AlloyLexer', 'PanLexer',
21
21
  'CrmshLexer', 'ThriftLexer', 'FlatlineLexer', 'SnowballLexer']
22
22
 
@@ -36,13 +36,13 @@ class ProtoBufLexer(RegexLexer):
36
36
  tokens = {
37
37
  'root': [
38
38
  (r'[ \t]+', Text),
39
- (r'[,;{}\[\]()]', Punctuation),
39
+ (r'[,;{}\[\]()<>]', Punctuation),
40
40
  (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single),
41
41
  (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment.Multiline),
42
42
  (words((
43
- 'import', 'option', 'optional', 'required', 'repeated', 'default',
44
- 'packed', 'ctype', 'extensions', 'to', 'max', 'rpc', 'returns',
45
- 'oneof'), prefix=r'\b', suffix=r'\b'),
43
+ 'import', 'option', 'optional', 'required', 'repeated',
44
+ 'reserved', 'default', 'packed', 'ctype', 'extensions', 'to',
45
+ 'max', 'rpc', 'returns', 'oneof', 'syntax'), prefix=r'\b', suffix=r'\b'),
46
46
  Keyword),
47
47
  (words((
48
48
  'int32', 'int64', 'uint32', 'uint64', 'sint32', 'sint64',
@@ -66,7 +66,7 @@ class ProtoBufLexer(RegexLexer):
66
66
  (r'[+-=]', Operator),
67
67
  (r'([a-zA-Z_][\w.]*)([ \t]*)(=)',
68
68
  bygroups(Name.Attribute, Text, Operator)),
69
- ('[a-zA-Z_][\w.]*', Name),
69
+ (r'[a-zA-Z_][\w.]*', Name),
70
70
  ],
71
71
  'package': [
72
72
  (r'[a-zA-Z_]\w*', Name.Namespace, '#pop'),
@@ -188,84 +188,166 @@ class ThriftLexer(RegexLexer):
188
188
  }
189
189
 
190
190
 
191
- class BroLexer(RegexLexer):
191
+ class ZeekLexer(RegexLexer):
192
192
  """
193
- For `Bro <http://bro-ids.org/>`_ scripts.
193
+ For `Zeek <https://www.zeek.org/>`_ scripts.
194
194
 
195
- .. versionadded:: 1.5
195
+ .. versionadded:: 2.5
196
196
  """
197
- name = 'Bro'
198
- aliases = ['bro']
199
- filenames = ['*.bro']
197
+ name = 'Zeek'
198
+ aliases = ['zeek', 'bro']
199
+ filenames = ['*.zeek', '*.bro']
200
200
 
201
- _hex = r'[0-9a-fA-F_]'
201
+ _hex = r'[0-9a-fA-F]'
202
202
  _float = r'((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?'
203
203
  _h = r'[A-Za-z0-9][-A-Za-z0-9]*'
204
204
 
205
205
  tokens = {
206
206
  'root': [
207
- # Whitespace
208
- (r'^@.*?\n', Comment.Preproc),
209
- (r'#.*?\n', Comment.Single),
207
+ include('whitespace'),
208
+ include('comments'),
209
+ include('directives'),
210
+ include('attributes'),
211
+ include('types'),
212
+ include('keywords'),
213
+ include('literals'),
214
+ include('operators'),
215
+ include('punctuation'),
216
+ (r'((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(?=\s*\()',
217
+ Name.Function),
218
+ include('identifiers'),
219
+ ],
220
+
221
+ 'whitespace': [
210
222
  (r'\n', Text),
211
223
  (r'\s+', Text),
212
224
  (r'\\\n', Text),
213
- # Keywords
214
- (r'(add|alarm|break|case|const|continue|delete|do|else|enum|event'
215
- r'|export|for|function|if|global|hook|local|module|next'
216
- r'|of|print|redef|return|schedule|switch|type|when|while)\b', Keyword),
217
- (r'(addr|any|bool|count|counter|double|file|int|interval|net'
218
- r'|pattern|port|record|set|string|subnet|table|time|timer'
219
- r'|vector)\b', Keyword.Type),
225
+ ],
226
+
227
+ 'comments': [
228
+ (r'#.*$', Comment),
229
+ ],
230
+
231
+ 'directives': [
232
+ (r'@(load-plugin|load-sigs|load|unload)\b.*$', Comment.Preproc),
233
+ (r'@(DEBUG|DIR|FILENAME|deprecated|if|ifdef|ifndef|else|endif)\b', Comment.Preproc),
234
+ (r'(@prefixes)\s*(\+?=).*$', Comment.Preproc),
235
+ ],
236
+
237
+ 'attributes': [
238
+ (words(('redef', 'priority', 'log', 'optional', 'default', 'add_func',
239
+ 'delete_func', 'expire_func', 'read_expire', 'write_expire',
240
+ 'create_expire', 'synchronized', 'persistent', 'rotate_interval',
241
+ 'rotate_size', 'encrypt', 'raw_output', 'mergeable', 'error_handler',
242
+ 'type_column', 'deprecated'),
243
+ prefix=r'&', suffix=r'\b'),
244
+ Keyword.Pseudo),
245
+ ],
246
+
247
+ 'types': [
248
+ (words(('any',
249
+ 'enum', 'record', 'set', 'table', 'vector',
250
+ 'function', 'hook', 'event',
251
+ 'addr', 'bool', 'count', 'double', 'file', 'int', 'interval',
252
+ 'pattern', 'port', 'string', 'subnet', 'time'),
253
+ suffix=r'\b'),
254
+ Keyword.Type),
255
+
256
+ (r'(opaque)(\s+)(of)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\b',
257
+ bygroups(Keyword.Type, Text, Operator.Word, Text, Keyword.Type)),
258
+
259
+ (r'(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)(\s*)\b(record|enum)\b',
260
+ bygroups(Keyword, Text, Name.Class, Text, Operator, Text, Keyword.Type)),
261
+
262
+ (r'(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)',
263
+ bygroups(Keyword, Text, Name, Text, Operator)),
264
+
265
+ (r'(redef)(\s+)(record|enum)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\b',
266
+ bygroups(Keyword, Text, Keyword.Type, Text, Name.Class)),
267
+ ],
268
+
269
+ 'keywords': [
270
+ (words(('redef', 'export', 'if', 'else', 'for', 'while',
271
+ 'return', 'break', 'next', 'continue', 'fallthrough',
272
+ 'switch', 'default', 'case',
273
+ 'add', 'delete',
274
+ 'when', 'timeout', 'schedule'),
275
+ suffix=r'\b'),
276
+ Keyword),
277
+ (r'(print)\b', Keyword),
278
+ (r'(global|local|const|option)\b', Keyword.Declaration),
279
+ (r'(module)(\s+)(([A-Za-z_]\w*)(?:::([A-Za-z_]\w*))*)\b',
280
+ bygroups(Keyword.Namespace, Text, Name.Namespace)),
281
+ ],
282
+
283
+ 'literals': [
284
+ (r'"', String, 'string'),
285
+
286
+ # Not the greatest match for patterns, but generally helps
287
+ # disambiguate between start of a pattern and just a division
288
+ # operator.
289
+ (r'/(?=.*/)', String.Regex, 'regex'),
290
+
220
291
  (r'(T|F)\b', Keyword.Constant),
221
- (r'(&)((?:add|delete|expire)_func|attr|(?:create|read|write)_expire'
222
- r'|default|disable_print_hook|raw_output|encrypt|group|log'
223
- r'|mergeable|optional|persistent|priority|redef'
224
- r'|rotate_(?:interval|size)|synchronized)\b',
225
- bygroups(Punctuation, Keyword)),
226
- (r'\s+module\b', Keyword.Namespace),
227
- # Addresses, ports and networks
228
- (r'\d+/(tcp|udp|icmp|unknown)\b', Number),
229
- (r'(\d+\.){3}\d+', Number),
230
- (r'(' + _hex + r'){7}' + _hex, Number),
231
- (r'0x' + _hex + r'(' + _hex + r'|:)*::(' + _hex + r'|:)*', Number),
232
- (r'((\d+|:)(' + _hex + r'|:)*)?::(' + _hex + r'|:)*', Number),
233
- (r'(\d+\.\d+\.|(\d+\.){2}\d+)', Number),
292
+
293
+ # Port
294
+ (r'\d{1,5}/(udp|tcp|icmp|unknown)\b', Number),
295
+
296
+ # IPv4 Address
297
+ (r'(\d{1,3}.){3}(\d{1,3})\b', Number),
298
+
299
+ # IPv6 Address
300
+ (r'\[([0-9a-fA-F]{0,4}:){2,7}([0-9a-fA-F]{0,4})?((\d{1,3}.){3}(\d{1,3}))?\]', Number),
301
+
302
+ # Numeric
303
+ (r'0[xX]' + _hex + r'+\b', Number.Hex),
304
+ (_float + r'\s*(day|hr|min|sec|msec|usec)s?\b', Number.Float),
305
+ (_float + r'\b', Number.Float),
306
+ (r'(\d+)\b', Number.Integer),
307
+
234
308
  # Hostnames
235
309
  (_h + r'(\.' + _h + r')+', String),
236
- # Numeric
237
- (_float + r'\s+(day|hr|min|sec|msec|usec)s?\b', Literal.Date),
238
- (r'0[xX]' + _hex, Number.Hex),
239
- (_float, Number.Float),
240
- (r'\d+', Number.Integer),
241
- (r'/', String.Regex, 'regex'),
242
- (r'"', String, 'string'),
243
- # Operators
244
- (r'[!%*/+:<=>?~|-]', Operator),
310
+ ],
311
+
312
+ 'operators': [
313
+ (r'[!%*/+<=>~|&^-]', Operator),
245
314
  (r'([-+=&|]{2}|[+=!><-]=)', Operator),
246
- (r'(in|match)\b', Operator.Word),
247
- (r'[{}()\[\]$.,;]', Punctuation),
248
- # Identfier
249
- (r'([_a-zA-Z]\w*)(::)', bygroups(Name, Name.Namespace)),
315
+ (r'(in|as|is|of)\b', Operator.Word),
316
+ (r'\??\$', Operator),
317
+ ],
318
+
319
+ 'punctuation': [
320
+ (r'[{}()\[\],;.]', Punctuation),
321
+ # The "ternary if", which uses '?' and ':', could instead be
322
+ # treated as an Operator, but colons are more frequently used to
323
+ # separate field/identifier names from their types, so the (often)
324
+ # less-prominent Punctuation is used even with '?' for consistency.
325
+ (r'[?:]', Punctuation),
326
+ ],
327
+
328
+ 'identifiers': [
329
+ (r'([a-zA-Z_]\w*)(::)', bygroups(Name, Punctuation)),
250
330
  (r'[a-zA-Z_]\w*', Name)
251
331
  ],
332
+
252
333
  'string': [
334
+ (r'\\.', String.Escape),
335
+ (r'%-?[0-9]*(\.[0-9]+)?[DTd-gsx]', String.Escape),
253
336
  (r'"', String, '#pop'),
254
- (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
255
- (r'[^\\"\n]+', String),
256
- (r'\\\n', String),
257
- (r'\\', String)
337
+ (r'.', String),
258
338
  ],
339
+
259
340
  'regex': [
341
+ (r'\\.', String.Escape),
260
342
  (r'/', String.Regex, '#pop'),
261
- (r'\\[\\nt/]', String.Regex), # String.Escape is too intense here.
262
- (r'[^\\/\n]+', String.Regex),
263
- (r'\\\n', String.Regex),
264
- (r'\\', String.Regex)
265
- ]
343
+ (r'.', String.Regex),
344
+ ],
266
345
  }
267
346
 
268
347
 
348
+ BroLexer = ZeekLexer
349
+
350
+
269
351
  class PuppetLexer(RegexLexer):
270
352
  """
271
353
  For `Puppet <http://puppetlabs.com/>`__ configuration DSL.
@@ -300,7 +382,7 @@ class PuppetLexer(RegexLexer):
300
382
  ],
301
383
 
302
384
  'names': [
303
- ('[a-zA-Z_]\w*', Name.Attribute),
385
+ (r'[a-zA-Z_]\w*', Name.Attribute),
304
386
  (r'(\$\S+)(\[)(\S+)(\])', bygroups(Name.Variable, Punctuation,
305
387
  String, Punctuation)),
306
388
  (r'\$\S+', Name.Variable),
@@ -558,7 +640,7 @@ class AlloyLexer(RegexLexer):
558
640
 
559
641
  class PanLexer(RegexLexer):
560
642
  """
561
- Lexer for `pan <http://github.com/quattor/pan/>`_ source files.
643
+ Lexer for `pan <https://github.com/quattor/pan/>`_ source files.
562
644
 
563
645
  Based on tcsh lexer.
564
646
 
@@ -581,7 +663,7 @@ class PanLexer(RegexLexer):
581
663
  'if', 'for', 'with', 'else', 'type', 'bind', 'while', 'valid', 'final',
582
664
  'prefix', 'unique', 'object', 'foreach', 'include', 'template',
583
665
  'function', 'variable', 'structure', 'extensible', 'declaration'),
584
- prefix=r'\b', suffix=r'\s*\b'),
666
+ prefix=r'\b', suffix=r'\s*\b'),
585
667
  Keyword),
586
668
  (words((
587
669
  'file_contents', 'format', 'index', 'length', 'match', 'matches',
@@ -593,7 +675,7 @@ class PanLexer(RegexLexer):
593
675
  'is_number', 'is_property', 'is_resource', 'is_string', 'to_boolean',
594
676
  'to_double', 'to_long', 'to_string', 'clone', 'delete', 'exists',
595
677
  'path_exists', 'if_exists', 'return', 'value'),
596
- prefix=r'\b', suffix=r'\s*\b'),
678
+ prefix=r'\b', suffix=r'\s*\b'),
597
679
  Name.Builtin),
598
680
  (r'#.*', Comment),
599
681
  (r'\\[\w\W]', String.Escape),
@@ -688,7 +770,7 @@ class CrmshLexer(RegexLexer):
688
770
  (r'([\w#$-]+)(?:(:)(%s))?(?![\w#$-])' % rsc_role_action,
689
771
  bygroups(Name, Punctuation, Operator.Word)),
690
772
  # punctuation
691
- (r'(\\(?=\n)|[[\](){}/:@])', Punctuation),
773
+ (r'(\\(?=\n)|[\[\](){}/:@])', Punctuation),
692
774
  (r'\s+|\n', Whitespace),
693
775
  ],
694
776
  }