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,26 +1,26 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.asm
4
3
  ~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for assembly 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
 
12
11
  import re
13
12
 
14
13
  from pygments.lexer import RegexLexer, include, bygroups, using, words, \
15
- DelegatingLexer
14
+ DelegatingLexer, default
16
15
  from pygments.lexers.c_cpp import CppLexer, CLexer
17
16
  from pygments.lexers.d import DLexer
18
17
  from pygments.token import Text, Name, Number, String, Comment, Punctuation, \
19
- Other, Keyword, Operator
18
+ Other, Keyword, Operator, Literal
20
19
 
21
20
  __all__ = ['GasLexer', 'ObjdumpLexer', 'DObjdumpLexer', 'CppObjdumpLexer',
22
- 'CObjdumpLexer', 'HsailLexer', 'LlvmLexer', 'NasmLexer',
23
- 'NasmObjdumpLexer', 'TasmLexer', 'Ca65Lexer']
21
+ 'CObjdumpLexer', 'HsailLexer', 'LlvmLexer', 'LlvmMirBodyLexer',
22
+ 'LlvmMirLexer', 'NasmLexer', 'NasmObjdumpLexer', 'TasmLexer',
23
+ 'Ca65Lexer', 'Dasm16Lexer']
24
24
 
25
25
 
26
26
  class GasLexer(RegexLexer):
@@ -35,8 +35,9 @@ class GasLexer(RegexLexer):
35
35
  #: optional Comment or Whitespace
36
36
  string = r'"(\\"|[^"])*"'
37
37
  char = r'[\w$.@-]'
38
- identifier = r'(?:[a-zA-Z$_]' + char + '*|\.' + char + '+)'
39
- number = r'(?:0[xX][a-zA-Z0-9]+|\d+)'
38
+ identifier = r'(?:[a-zA-Z$_]' + char + r'*|\.' + char + '+)'
39
+ number = r'(?:0[xX][a-fA-F0-9]+|#?-?\d+)'
40
+ register = '%' + identifier
40
41
 
41
42
  tokens = {
42
43
  'root': [
@@ -52,7 +53,11 @@ class GasLexer(RegexLexer):
52
53
  (string, String),
53
54
  ('@' + identifier, Name.Attribute),
54
55
  (number, Number.Integer),
56
+ (register, Name.Variable),
55
57
  (r'[\r\n]+', Text, '#pop'),
58
+ (r'([;#]|//).*?\n', Comment.Single, '#pop'),
59
+ (r'/[*].*?[*]/', Comment.Multiline),
60
+ (r'/[*].*?\n[\w\W]*?[*]/', Comment.Multiline, '#pop'),
56
61
 
57
62
  include('punctuation'),
58
63
  include('whitespace')
@@ -71,11 +76,14 @@ class GasLexer(RegexLexer):
71
76
  (identifier, Name.Constant),
72
77
  (number, Number.Integer),
73
78
  # Registers
74
- ('%' + identifier, Name.Variable),
79
+ (register, Name.Variable),
75
80
  # Numeric constants
76
81
  ('$'+number, Number.Integer),
77
82
  (r"$'(.|\\')'", String.Char),
78
83
  (r'[\r\n]+', Text, '#pop'),
84
+ (r'([;#]|//).*?\n', Comment.Single, '#pop'),
85
+ (r'/[*].*?[*]/', Comment.Multiline),
86
+ (r'/[*].*?\n[\w\W]*?[*]/', Comment.Multiline, '#pop'),
79
87
 
80
88
  include('punctuation'),
81
89
  include('whitespace')
@@ -83,7 +91,8 @@ class GasLexer(RegexLexer):
83
91
  'whitespace': [
84
92
  (r'\n', Text),
85
93
  (r'\s+', Text),
86
- (r'[;#].*?\n', Comment)
94
+ (r'([;#]|//).*?\n', Comment.Single),
95
+ (r'/[*][\w\W]*?[*]/', Comment.Multiline)
87
96
  ],
88
97
  'punctuation': [
89
98
  (r'[-*,.()\[\]!:]+', Punctuation)
@@ -91,9 +100,9 @@ class GasLexer(RegexLexer):
91
100
  }
92
101
 
93
102
  def analyse_text(text):
94
- if re.match(r'^\.(text|data|section)', text, re.M):
103
+ if re.search(r'^\.(text|data|section)', text, re.M):
95
104
  return True
96
- elif re.match(r'^\.\w+', text, re.M):
105
+ elif re.search(r'^\.\w+', text, re.M):
97
106
  return 0.1
98
107
 
99
108
 
@@ -148,7 +157,7 @@ def _objdump_lexer_tokens(asm_lexer):
148
157
 
149
158
  class ObjdumpLexer(RegexLexer):
150
159
  """
151
- For the output of 'objdump -dr'
160
+ For the output of ``objdump -dr``.
152
161
  """
153
162
  name = 'objdump'
154
163
  aliases = ['objdump']
@@ -160,7 +169,7 @@ class ObjdumpLexer(RegexLexer):
160
169
 
161
170
  class DObjdumpLexer(DelegatingLexer):
162
171
  """
163
- For the output of 'objdump -Sr on compiled D files'
172
+ For the output of ``objdump -Sr`` on compiled D files.
164
173
  """
165
174
  name = 'd-objdump'
166
175
  aliases = ['d-objdump']
@@ -168,12 +177,12 @@ class DObjdumpLexer(DelegatingLexer):
168
177
  mimetypes = ['text/x-d-objdump']
169
178
 
170
179
  def __init__(self, **options):
171
- super(DObjdumpLexer, self).__init__(DLexer, ObjdumpLexer, **options)
180
+ super().__init__(DLexer, ObjdumpLexer, **options)
172
181
 
173
182
 
174
183
  class CppObjdumpLexer(DelegatingLexer):
175
184
  """
176
- For the output of 'objdump -Sr on compiled C++ files'
185
+ For the output of ``objdump -Sr`` on compiled C++ files.
177
186
  """
178
187
  name = 'cpp-objdump'
179
188
  aliases = ['cpp-objdump', 'c++-objdumb', 'cxx-objdump']
@@ -181,12 +190,12 @@ class CppObjdumpLexer(DelegatingLexer):
181
190
  mimetypes = ['text/x-cpp-objdump']
182
191
 
183
192
  def __init__(self, **options):
184
- super(CppObjdumpLexer, self).__init__(CppLexer, ObjdumpLexer, **options)
193
+ super().__init__(CppLexer, ObjdumpLexer, **options)
185
194
 
186
195
 
187
196
  class CObjdumpLexer(DelegatingLexer):
188
197
  """
189
- For the output of 'objdump -Sr on compiled C files'
198
+ For the output of ``objdump -Sr`` on compiled C files.
190
199
  """
191
200
  name = 'c-objdump'
192
201
  aliases = ['c-objdump']
@@ -194,7 +203,7 @@ class CObjdumpLexer(DelegatingLexer):
194
203
  mimetypes = ['text/x-c-objdump']
195
204
 
196
205
  def __init__(self, **options):
197
- super(CObjdumpLexer, self).__init__(CLexer, ObjdumpLexer, **options)
206
+ super().__init__(CLexer, ObjdumpLexer, **options)
198
207
 
199
208
 
200
209
  class HsailLexer(RegexLexer):
@@ -256,7 +265,7 @@ class HsailLexer(RegexLexer):
256
265
  (r'0[xX][a-fA-F0-9]+', Number.Hex),
257
266
  (ieeefloat, Number.Float),
258
267
  (float, Number.Float),
259
- ('\d+', Number.Integer),
268
+ (r'\d+', Number.Integer),
260
269
 
261
270
  (r'[=<>{}\[\]()*.,:;!]|x\b', Punctuation)
262
271
  ],
@@ -350,7 +359,7 @@ class LlvmLexer(RegexLexer):
350
359
  include('whitespace'),
351
360
 
352
361
  # Before keywords, because keywords are valid label names :(...
353
- (identifier + '\s*:', Name.Label),
362
+ (identifier + r'\s*:', Name.Label),
354
363
 
355
364
  include('keyword'),
356
365
 
@@ -375,66 +384,298 @@ class LlvmLexer(RegexLexer):
375
384
  'keyword': [
376
385
  # Regular keywords
377
386
  (words((
378
- 'begin', 'end', 'true', 'false', 'declare', 'define', 'global',
379
- 'constant', 'private', 'linker_private', 'internal',
380
- 'available_externally', 'linkonce', 'linkonce_odr', 'weak',
381
- 'weak_odr', 'appending', 'dllimport', 'dllexport', 'common',
382
- 'default', 'hidden', 'protected', 'extern_weak', 'external',
383
- 'thread_local', 'zeroinitializer', 'undef', 'null', 'to', 'tail',
384
- 'target', 'triple', 'datalayout', 'volatile', 'nuw', 'nsw', 'nnan',
385
- 'ninf', 'nsz', 'arcp', 'fast', 'exact', 'inbounds', 'align',
386
- 'addrspace', 'section', 'alias', 'module', 'asm', 'sideeffect',
387
- 'gc', 'dbg', 'linker_private_weak', 'attributes', 'blockaddress',
388
- 'initialexec', 'localdynamic', 'localexec', 'prefix', 'unnamed_addr',
389
- 'ccc', 'fastcc', 'coldcc', 'x86_stdcallcc', 'x86_fastcallcc',
390
- 'arm_apcscc', 'arm_aapcscc', 'arm_aapcs_vfpcc', 'ptx_device',
391
- 'ptx_kernel', 'intel_ocl_bicc', 'msp430_intrcc', 'spir_func',
392
- 'spir_kernel', 'x86_64_sysvcc', 'x86_64_win64cc', 'x86_thiscallcc',
393
- 'cc', 'c', 'signext', 'zeroext', 'inreg', 'sret', 'nounwind',
394
- 'noreturn', 'noalias', 'nocapture', 'byval', 'nest', 'readnone',
395
- 'readonly', 'inlinehint', 'noinline', 'alwaysinline', 'optsize', 'ssp',
396
- 'sspreq', 'noredzone', 'noimplicitfloat', 'naked', 'builtin', 'cold',
397
- 'nobuiltin', 'noduplicate', 'nonlazybind', 'optnone', 'returns_twice',
398
- 'sanitize_address', 'sanitize_memory', 'sanitize_thread', 'sspstrong',
399
- 'uwtable', 'returned', 'type', 'opaque', 'eq', 'ne', 'slt', 'sgt',
400
- 'sle', 'sge', 'ult', 'ugt', 'ule', 'uge', 'oeq', 'one', 'olt', 'ogt',
401
- 'ole', 'oge', 'ord', 'uno', 'ueq', 'une', 'x', 'acq_rel', 'acquire',
402
- 'alignstack', 'atomic', 'catch', 'cleanup', 'filter', 'inteldialect',
403
- 'max', 'min', 'monotonic', 'nand', 'personality', 'release', 'seq_cst',
404
- 'singlethread', 'umax', 'umin', 'unordered', 'xchg', 'add', 'fadd',
405
- 'sub', 'fsub', 'mul', 'fmul', 'udiv', 'sdiv', 'fdiv', 'urem', 'srem',
406
- 'frem', 'shl', 'lshr', 'ashr', 'and', 'or', 'xor', 'icmp', 'fcmp',
407
- 'phi', 'call', 'trunc', 'zext', 'sext', 'fptrunc', 'fpext', 'uitofp',
408
- 'sitofp', 'fptoui', 'fptosi', 'inttoptr', 'ptrtoint', 'bitcast',
409
- 'addrspacecast', 'select', 'va_arg', 'ret', 'br', 'switch', 'invoke',
410
- 'unwind', 'unreachable', 'indirectbr', 'landingpad', 'resume',
411
- 'malloc', 'alloca', 'free', 'load', 'store', 'getelementptr',
412
- 'extractelement', 'insertelement', 'shufflevector', 'getresult',
413
- 'extractvalue', 'insertvalue', 'atomicrmw', 'cmpxchg', 'fence',
414
- 'allocsize', 'amdgpu_cs', 'amdgpu_gs', 'amdgpu_kernel', 'amdgpu_ps',
415
- 'amdgpu_vs', 'any', 'anyregcc', 'argmemonly', 'avr_intrcc',
416
- 'avr_signalcc', 'caller', 'catchpad', 'catchret', 'catchswitch',
417
- 'cleanuppad', 'cleanupret', 'comdat', 'convergent', 'cxx_fast_tlscc',
418
- 'deplibs', 'dereferenceable', 'dereferenceable_or_null', 'distinct',
419
- 'exactmatch', 'externally_initialized', 'from', 'ghccc', 'hhvm_ccc',
420
- 'hhvmcc', 'ifunc', 'inaccessiblemem_or_argmemonly', 'inaccessiblememonly',
421
- 'inalloca', 'jumptable', 'largest', 'local_unnamed_addr', 'minsize',
422
- 'musttail', 'noduplicates', 'none', 'nonnull', 'norecurse', 'notail',
423
- 'preserve_allcc', 'preserve_mostcc', 'prologue', 'safestack', 'samesize',
424
- 'source_filename', 'swiftcc', 'swifterror', 'swiftself', 'webkit_jscc',
425
- 'within', 'writeonly', 'x86_intrcc', 'x86_vectorcallcc'),
387
+ 'acq_rel', 'acquire', 'add', 'addrspace', 'addrspacecast', 'afn', 'alias',
388
+ 'aliasee', 'align', 'alignLog2', 'alignstack', 'alloca', 'allocsize', 'allOnes',
389
+ 'alwaysinline', 'amdgpu_cs', 'amdgpu_es', 'amdgpu_gs', 'amdgpu_hs',
390
+ 'amdgpu_kernel', 'amdgpu_ls', 'amdgpu_ps', 'amdgpu_vs', 'and', 'any',
391
+ 'anyregcc', 'appending', 'arcp', 'argmemonly', 'args', 'arm_aapcs_vfpcc',
392
+ 'arm_aapcscc', 'arm_apcscc', 'ashr', 'asm', 'atomic', 'atomicrmw', 'attributes',
393
+ 'available_externally', 'avr_intrcc', 'avr_signalcc', 'bit', 'bitcast',
394
+ 'bitMask', 'blockaddress', 'br', 'branchFunnel', 'builtin', 'byArg', 'byte',
395
+ 'byteArray', 'byval', 'c', 'call', 'callee', 'caller', 'calls', 'catch',
396
+ 'catchpad', 'catchret', 'catchswitch', 'cc', 'ccc', 'cleanup', 'cleanuppad',
397
+ 'cleanupret', 'cmpxchg', 'cold', 'coldcc', 'comdat', 'common', 'constant',
398
+ 'contract', 'convergent', 'critical', 'cxx_fast_tlscc', 'datalayout', 'declare',
399
+ 'default', 'define', 'deplibs', 'dereferenceable', 'dereferenceable_or_null',
400
+ 'distinct', 'dllexport', 'dllimport', 'dso_local', 'dso_preemptable',
401
+ 'dsoLocal', 'eq', 'exact', 'exactmatch', 'extern_weak', 'external',
402
+ 'externally_initialized', 'extractelement', 'extractvalue', 'fadd', 'false',
403
+ 'fast', 'fastcc', 'fcmp', 'fdiv', 'fence', 'filter', 'flags', 'fmul',
404
+ 'fpext', 'fptosi', 'fptoui', 'fptrunc', 'freeze', 'frem', 'from', 'fsub',
405
+ 'funcFlags', 'function', 'gc', 'getelementptr', 'ghccc', 'global', 'guid', 'gv',
406
+ 'hash', 'hhvm_ccc', 'hhvmcc', 'hidden', 'hot', 'hotness', 'icmp',
407
+ 'ifunc', 'inaccessiblemem_or_argmemonly', 'inaccessiblememonly', 'inalloca',
408
+ 'inbounds', 'indir', 'indirectbr', 'info', 'initialexec', 'inline',
409
+ 'inlineBits', 'inlinehint', 'inrange', 'inreg', 'insertelement', 'insertvalue',
410
+ 'insts', 'intel_ocl_bicc', 'inteldialect', 'internal', 'inttoptr', 'invoke',
411
+ 'jumptable', 'kind', 'landingpad', 'largest', 'linkage', 'linkonce',
412
+ 'linkonce_odr', 'live', 'load', 'local_unnamed_addr', 'localdynamic',
413
+ 'localexec', 'lshr', 'max', 'metadata', 'min', 'minsize', 'module', 'monotonic',
414
+ 'msp430_intrcc', 'mul', 'musttail', 'naked', 'name', 'nand', 'ne', 'nest',
415
+ 'ninf', 'nnan', 'noalias', 'nobuiltin', 'nocapture', 'nocf_check',
416
+ 'noduplicate', 'noduplicates', 'noimplicitfloat', 'noinline', 'none',
417
+ 'nonlazybind', 'nonnull', 'norecurse', 'noRecurse', 'noredzone', 'noreturn',
418
+ 'notail', 'notEligibleToImport', 'nounwind', 'nsw', 'nsz', 'null', 'nuw', 'oeq',
419
+ 'offset', 'oge', 'ogt', 'ole', 'olt', 'one', 'opaque', 'optforfuzzing',
420
+ 'optnone', 'optsize', 'or', 'ord', 'path', 'personality', 'phi', 'poison',
421
+ 'prefix', 'preserve_allcc', 'preserve_mostcc', 'private', 'prologue',
422
+ 'protected', 'ptrtoint', 'ptx_device', 'ptx_kernel', 'readnone', 'readNone',
423
+ 'readonly', 'readOnly', 'reassoc', 'refs', 'relbf', 'release', 'resByArg',
424
+ 'resume', 'ret', 'returnDoesNotAlias', 'returned', 'returns_twice', 'safestack',
425
+ 'samesize', 'sanitize_address', 'sanitize_hwaddress', 'sanitize_memory',
426
+ 'sanitize_thread', 'sdiv', 'section', 'select', 'seq_cst', 'sext', 'sge', 'sgt',
427
+ 'shadowcallstack', 'shl', 'shufflevector', 'sideeffect', 'signext', 'single',
428
+ 'singleImpl', 'singleImplName', 'sitofp', 'sizeM1', 'sizeM1BitWidth', 'sle',
429
+ 'slt', 'source_filename', 'speculatable', 'spir_func', 'spir_kernel', 'srem',
430
+ 'sret', 'ssp', 'sspreq', 'sspstrong', 'store', 'strictfp', 'sub', 'summaries',
431
+ 'summary', 'swiftcc', 'swifterror', 'swiftself', 'switch', 'syncscope', 'tail',
432
+ 'target', 'thread_local', 'to', 'token', 'triple', 'true', 'trunc', 'type',
433
+ 'typeCheckedLoadConstVCalls', 'typeCheckedLoadVCalls', 'typeid', 'typeIdInfo',
434
+ 'typeTestAssumeConstVCalls', 'typeTestAssumeVCalls', 'typeTestRes', 'typeTests',
435
+ 'udiv', 'ueq', 'uge', 'ugt', 'uitofp', 'ule', 'ult', 'umax', 'umin', 'undef',
436
+ 'une', 'uniformRetVal', 'uniqueRetVal', 'unknown', 'unnamed_addr', 'uno',
437
+ 'unordered', 'unreachable', 'unsat', 'unwind', 'urem', 'uselistorder',
438
+ 'uselistorder_bb', 'uwtable', 'va_arg', 'variable', 'vFuncId',
439
+ 'virtualConstProp', 'void', 'volatile', 'weak', 'weak_odr', 'webkit_jscc',
440
+ 'win64cc', 'within', 'wpdRes', 'wpdResolutions', 'writeonly',
441
+ 'x86_64_sysvcc', 'x86_fastcallcc', 'x86_intrcc', 'x86_mmx',
442
+ 'x86_regcallcc', 'x86_stdcallcc', 'x86_thiscallcc', 'x86_vectorcallcc', 'xchg',
443
+ 'xor', 'zeroext', 'zeroinitializer', 'zext', 'immarg', 'willreturn'),
426
444
  suffix=r'\b'), Keyword),
427
445
 
428
446
  # Types
429
- (words(('void', 'half', 'float', 'double', 'x86_fp80', 'fp128',
430
- 'ppc_fp128', 'label', 'metadata', 'token')), Keyword.Type),
447
+ (words(('void', 'half', 'bfloat', 'float', 'double', 'fp128',
448
+ 'x86_fp80', 'ppc_fp128', 'label', 'metadata', 'token')),
449
+ Keyword.Type),
431
450
 
432
451
  # Integer types
433
- (r'i[1-9]\d*', Keyword)
452
+ (r'i[1-9]\d*', Keyword.Type)
434
453
  ]
435
454
  }
436
455
 
437
456
 
457
+ class LlvmMirBodyLexer(RegexLexer):
458
+ """
459
+ For LLVM MIR examples without the YAML wrapper.
460
+
461
+ For more information on LLVM MIR see https://llvm.org/docs/MIRLangRef.html.
462
+
463
+ .. versionadded:: 2.6
464
+ """
465
+ name = 'LLVM-MIR Body'
466
+ aliases = ['llvm-mir-body']
467
+ filenames = []
468
+ mimetypes = []
469
+
470
+ tokens = {
471
+ 'root': [
472
+ # Attributes on basic blocks
473
+ (words(('liveins', 'successors'), suffix=':'), Keyword),
474
+ # Basic Block Labels
475
+ (r'bb\.[0-9]+(\.[a-zA-Z0-9_.-]+)?( \(address-taken\))?:', Name.Label),
476
+ (r'bb\.[0-9]+ \(%[a-zA-Z0-9_.-]+\)( \(address-taken\))?:', Name.Label),
477
+ (r'%bb\.[0-9]+(\.\w+)?', Name.Label),
478
+ # Stack references
479
+ (r'%stack\.[0-9]+(\.\w+\.addr)?', Name),
480
+ # Subreg indices
481
+ (r'%subreg\.\w+', Name),
482
+ # Virtual registers
483
+ (r'%[a-zA-Z0-9_]+ *', Name.Variable, 'vreg'),
484
+ # Reference to LLVM-IR global
485
+ include('global'),
486
+ # Reference to Intrinsic
487
+ (r'intrinsic\(\@[a-zA-Z0-9_.]+\)', Name.Variable.Global),
488
+ # Comparison predicates
489
+ (words(('eq', 'ne', 'sgt', 'sge', 'slt', 'sle', 'ugt', 'uge', 'ult',
490
+ 'ule'), prefix=r'intpred\(', suffix=r'\)'), Name.Builtin),
491
+ (words(('oeq', 'one', 'ogt', 'oge', 'olt', 'ole', 'ugt', 'uge',
492
+ 'ult', 'ule'), prefix=r'floatpred\(', suffix=r'\)'),
493
+ Name.Builtin),
494
+ # Physical registers
495
+ (r'\$\w+', String.Single),
496
+ # Assignment operator
497
+ (r'=', Operator),
498
+ # gMIR Opcodes
499
+ (r'(G_ANYEXT|G_[SZ]EXT|G_SEXT_INREG|G_TRUNC|G_IMPLICIT_DEF|G_PHI|'
500
+ r'G_FRAME_INDEX|G_GLOBAL_VALUE|G_INTTOPTR|G_PTRTOINT|G_BITCAST|'
501
+ r'G_CONSTANT|G_FCONSTANT|G_VASTART|G_VAARG|G_CTLZ|G_CTLZ_ZERO_UNDEF|'
502
+ r'G_CTTZ|G_CTTZ_ZERO_UNDEF|G_CTPOP|G_BSWAP|G_BITREVERSE|'
503
+ r'G_ADDRSPACE_CAST|G_BLOCK_ADDR|G_JUMP_TABLE|G_DYN_STACKALLOC|'
504
+ r'G_ADD|G_SUB|G_MUL|G_[SU]DIV|G_[SU]REM|G_AND|G_OR|G_XOR|G_SHL|'
505
+ r'G_[LA]SHR|G_[IF]CMP|G_SELECT|G_GEP|G_PTR_MASK|G_SMIN|G_SMAX|'
506
+ r'G_UMIN|G_UMAX|G_[US]ADDO|G_[US]ADDE|G_[US]SUBO|G_[US]SUBE|'
507
+ r'G_[US]MULO|G_[US]MULH|G_FNEG|G_FPEXT|G_FPTRUNC|G_FPTO[US]I|'
508
+ r'G_[US]ITOFP|G_FABS|G_FCOPYSIGN|G_FCANONICALIZE|G_FMINNUM|'
509
+ r'G_FMAXNUM|G_FMINNUM_IEEE|G_FMAXNUM_IEEE|G_FMINIMUM|G_FMAXIMUM|'
510
+ r'G_FADD|G_FSUB|G_FMUL|G_FMA|G_FMAD|G_FDIV|G_FREM|G_FPOW|G_FEXP|'
511
+ r'G_FEXP2|G_FLOG|G_FLOG2|G_FLOG10|G_FCEIL|G_FCOS|G_FSIN|G_FSQRT|'
512
+ r'G_FFLOOR|G_FRINT|G_FNEARBYINT|G_INTRINSIC_TRUNC|'
513
+ r'G_INTRINSIC_ROUND|G_LOAD|G_[ZS]EXTLOAD|G_INDEXED_LOAD|'
514
+ r'G_INDEXED_[ZS]EXTLOAD|G_STORE|G_INDEXED_STORE|'
515
+ r'G_ATOMIC_CMPXCHG_WITH_SUCCESS|G_ATOMIC_CMPXCHG|'
516
+ r'G_ATOMICRMW_(XCHG|ADD|SUB|AND|NAND|OR|XOR|MAX|MIN|UMAX|UMIN|FADD|'
517
+ r'FSUB)'
518
+ r'|G_FENCE|G_EXTRACT|G_UNMERGE_VALUES|G_INSERT|G_MERGE_VALUES|'
519
+ r'G_BUILD_VECTOR|G_BUILD_VECTOR_TRUNC|G_CONCAT_VECTORS|'
520
+ r'G_INTRINSIC|G_INTRINSIC_W_SIDE_EFFECTS|G_BR|G_BRCOND|'
521
+ r'G_BRINDIRECT|G_BRJT|G_INSERT_VECTOR_ELT|G_EXTRACT_VECTOR_ELT|'
522
+ r'G_SHUFFLE_VECTOR)\b',
523
+ Name.Builtin),
524
+ # Target independent opcodes
525
+ (r'(COPY|PHI|INSERT_SUBREG|EXTRACT_SUBREG|REG_SEQUENCE)\b',
526
+ Name.Builtin),
527
+ # Flags
528
+ (words(('killed', 'implicit')), Keyword),
529
+ # ConstantInt values
530
+ (r'i[0-9]+ +', Keyword.Type, 'constantint'),
531
+ # ConstantFloat values
532
+ (r'(half|float|double) +', Keyword.Type, 'constantfloat'),
533
+ # Bare immediates
534
+ include('integer'),
535
+ # MMO's
536
+ (r':: *', Operator, 'mmo'),
537
+ # MIR Comments
538
+ (r';.*', Comment),
539
+ # If we get here, assume it's a target instruction
540
+ (r'[a-zA-Z0-9_]+', Name),
541
+ # Everything else that isn't highlighted
542
+ (r'[(), \n]+', Text),
543
+ ],
544
+ # The integer constant from a ConstantInt value
545
+ 'constantint': [
546
+ include('integer'),
547
+ (r'(?=.)', Text, '#pop'),
548
+ ],
549
+ # The floating point constant from a ConstantFloat value
550
+ 'constantfloat': [
551
+ include('float'),
552
+ (r'(?=.)', Text, '#pop'),
553
+ ],
554
+ 'vreg': [
555
+ # The bank or class if there is one
556
+ (r' *:(?!:)', Keyword, ('#pop', 'vreg_bank_or_class')),
557
+ # The LLT if there is one
558
+ (r' *\(', Text, 'vreg_type'),
559
+ (r'(?=.)', Text, '#pop'),
560
+ ],
561
+ 'vreg_bank_or_class': [
562
+ # The unassigned bank/class
563
+ (r' *_', Name.Variable.Magic),
564
+ (r' *[a-zA-Z0-9_]+', Name.Variable),
565
+ # The LLT if there is one
566
+ (r' *\(', Text, 'vreg_type'),
567
+ (r'(?=.)', Text, '#pop'),
568
+ ],
569
+ 'vreg_type': [
570
+ # Scalar and pointer types
571
+ (r' *[sp][0-9]+', Keyword.Type),
572
+ (r' *<[0-9]+ *x *[sp][0-9]+>', Keyword.Type),
573
+ (r'\)', Text, '#pop'),
574
+ (r'(?=.)', Text, '#pop'),
575
+ ],
576
+ 'mmo': [
577
+ (r'\(', Text),
578
+ (r' +', Text),
579
+ (words(('load', 'store', 'on', 'into', 'from', 'align', 'monotonic',
580
+ 'acquire', 'release', 'acq_rel', 'seq_cst')),
581
+ Keyword),
582
+ # IR references
583
+ (r'%ir\.[a-zA-Z0-9_.-]+', Name),
584
+ (r'%ir-block\.[a-zA-Z0-9_.-]+', Name),
585
+ (r'[-+]', Operator),
586
+ include('integer'),
587
+ include('global'),
588
+ (r',', Punctuation),
589
+ (r'\), \(', Text),
590
+ (r'\)', Text, '#pop'),
591
+ ],
592
+ 'integer': [(r'-?[0-9]+', Number.Integer),],
593
+ 'float': [(r'-?[0-9]+\.[0-9]+(e[+-][0-9]+)?', Number.Float)],
594
+ 'global': [(r'\@[a-zA-Z0-9_.]+', Name.Variable.Global)],
595
+ }
596
+
597
+
598
+ class LlvmMirLexer(RegexLexer):
599
+ """
600
+ Lexer for the overall LLVM MIR document format.
601
+
602
+ MIR is a human readable serialization format that's used to represent LLVM's
603
+ machine specific intermediate representation. It allows LLVM's developers to
604
+ see the state of the compilation process at various points, as well as test
605
+ individual pieces of the compiler.
606
+
607
+ For more information on LLVM MIR see https://llvm.org/docs/MIRLangRef.html.
608
+
609
+ .. versionadded:: 2.6
610
+ """
611
+ name = 'LLVM-MIR'
612
+ aliases = ['llvm-mir']
613
+ filenames = ['*.mir']
614
+
615
+ tokens = {
616
+ 'root': [
617
+ # Comments are hashes at the YAML level
618
+ (r'#.*', Comment),
619
+ # Documents starting with | are LLVM-IR
620
+ (r'--- \|$', Keyword, 'llvm_ir'),
621
+ # Other documents are MIR
622
+ (r'---', Keyword, 'llvm_mir'),
623
+ # Consume everything else in one token for efficiency
624
+ (r'[^-#]+|.', Text),
625
+ ],
626
+ 'llvm_ir': [
627
+ # Documents end with '...' or '---'
628
+ (r'(\.\.\.|(?=---))', Keyword, '#pop'),
629
+ # Delegate to the LlvmLexer
630
+ (r'((?:.|\n)+?)(?=(\.\.\.|---))', bygroups(using(LlvmLexer))),
631
+ ],
632
+ 'llvm_mir': [
633
+ # Comments are hashes at the YAML level
634
+ (r'#.*', Comment),
635
+ # Documents end with '...' or '---'
636
+ (r'(\.\.\.|(?=---))', Keyword, '#pop'),
637
+ # Handle the simple attributes
638
+ (r'name:', Keyword, 'name'),
639
+ (words(('alignment', ),
640
+ suffix=':'), Keyword, 'number'),
641
+ (words(('legalized', 'regBankSelected', 'tracksRegLiveness',
642
+ 'selected', 'exposesReturnsTwice'),
643
+ suffix=':'), Keyword, 'boolean'),
644
+ # Handle the attributes don't highlight inside
645
+ (words(('registers', 'stack', 'fixedStack', 'liveins', 'frameInfo',
646
+ 'machineFunctionInfo'),
647
+ suffix=':'), Keyword),
648
+ # Delegate the body block to the LlvmMirBodyLexer
649
+ (r'body: *\|', Keyword, 'llvm_mir_body'),
650
+ # Consume everything else
651
+ (r'.+', Text),
652
+ (r'\n', Text),
653
+ ],
654
+ 'name': [
655
+ (r'[^\n]+', Name),
656
+ default('#pop'),
657
+ ],
658
+ 'boolean': [
659
+ (r' *(true|false)', Name.Builtin),
660
+ default('#pop'),
661
+ ],
662
+ 'number': [
663
+ (r' *[0-9]+', Number),
664
+ default('#pop'),
665
+ ],
666
+ 'llvm_mir_body': [
667
+ # Documents end with '...' or '---'.
668
+ # We have to pop llvm_mir_body and llvm_mir
669
+ (r'(\.\.\.|(?=---))', Keyword, '#pop:2'),
670
+ # Delegate the body block to the LlvmMirBodyLexer
671
+ (r'((?:.|\n)+?)(?=\.\.\.|---)', bygroups(using(LlvmMirBodyLexer))),
672
+ # The '...' is optional. If we didn't already find it then it isn't
673
+ # there. There might be a '---' instead though.
674
+ (r'(?!\.\.\.|---)((?:.|\n)+)', bygroups(using(LlvmMirBodyLexer))),
675
+ ],
676
+ }
677
+
678
+
438
679
  class NasmLexer(RegexLexer):
439
680
  """
440
681
  For Nasm (Intel) assembly code.
@@ -444,6 +685,10 @@ class NasmLexer(RegexLexer):
444
685
  filenames = ['*.asm', '*.ASM']
445
686
  mimetypes = ['text/x-nasm']
446
687
 
688
+ # Tasm uses the same file endings, but TASM is not as common as NASM, so
689
+ # we prioritize NASM higher by default
690
+ priority = 1.0
691
+
447
692
  identifier = r'[a-z$._?][\w$.?#@~]*'
448
693
  hexn = r'(?:0x[0-9a-f]+|$0[0-9a-f]*|[0-9]+[0-9a-f]*h)'
449
694
  octn = r'[0-7]+q'
@@ -452,14 +697,16 @@ class NasmLexer(RegexLexer):
452
697
  floatn = decn + r'\.e?' + decn
453
698
  string = r'"(\\"|[^"\n])*"|' + r"'(\\'|[^'\n])*'|" + r"`(\\`|[^`\n])*`"
454
699
  declkw = r'(?:res|d)[bwdqt]|times'
455
- register = (r'r[0-9][0-5]?[bwd]|'
700
+ register = (r'r[0-9][0-5]?[bwd]?|'
456
701
  r'[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|'
457
702
  r'mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]')
458
703
  wordop = r'seg|wrt|strict'
459
704
  type = r'byte|[dq]?word'
460
- directives = (r'BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|'
705
+ # Directives must be followed by whitespace, otherwise CPU will match
706
+ # cpuid for instance.
707
+ directives = (r'(?:BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|'
461
708
  r'ORG|ALIGN|STRUC|ENDSTRUC|COMMON|CPU|GROUP|UPPERCASE|IMPORT|'
462
- r'EXPORT|LIBRARY|MODULE')
709
+ r'EXPORT|LIBRARY|MODULE)\s+')
463
710
 
464
711
  flags = re.IGNORECASE | re.MULTILINE
465
712
  tokens = {
@@ -507,10 +754,15 @@ class NasmLexer(RegexLexer):
507
754
  ],
508
755
  }
509
756
 
757
+ def analyse_text(text):
758
+ # Probably TASM
759
+ if re.match(r'PROC', text, re.IGNORECASE):
760
+ return False
761
+
510
762
 
511
763
  class NasmObjdumpLexer(ObjdumpLexer):
512
764
  """
513
- For the output of 'objdump -d -M intel'.
765
+ For the output of ``objdump -d -M intel``.
514
766
 
515
767
  .. versionadded:: 2.0
516
768
  """
@@ -601,6 +853,11 @@ class TasmLexer(RegexLexer):
601
853
  ],
602
854
  }
603
855
 
856
+ def analyse_text(text):
857
+ # See above
858
+ if re.match(r'PROC', text, re.I):
859
+ return True
860
+
604
861
 
605
862
  class Ca65Lexer(RegexLexer):
606
863
  """
@@ -637,5 +894,111 @@ class Ca65Lexer(RegexLexer):
637
894
 
638
895
  def analyse_text(self, text):
639
896
  # comments in GAS start with "#"
640
- if re.match(r'^\s*;', text, re.MULTILINE):
897
+ if re.search(r'^\s*;', text, re.MULTILINE):
641
898
  return 0.9
899
+
900
+
901
+ class Dasm16Lexer(RegexLexer):
902
+ """
903
+ For DCPU-16 Assembly.
904
+
905
+ Check http://0x10c.com/doc/dcpu-16.txt
906
+
907
+ .. versionadded:: 2.4
908
+ """
909
+ name = 'DASM16'
910
+ aliases = ['dasm16']
911
+ filenames = ['*.dasm16', '*.dasm']
912
+ mimetypes = ['text/x-dasm16']
913
+
914
+ INSTRUCTIONS = [
915
+ 'SET',
916
+ 'ADD', 'SUB',
917
+ 'MUL', 'MLI',
918
+ 'DIV', 'DVI',
919
+ 'MOD', 'MDI',
920
+ 'AND', 'BOR', 'XOR',
921
+ 'SHR', 'ASR', 'SHL',
922
+ 'IFB', 'IFC', 'IFE', 'IFN', 'IFG', 'IFA', 'IFL', 'IFU',
923
+ 'ADX', 'SBX',
924
+ 'STI', 'STD',
925
+ 'JSR',
926
+ 'INT', 'IAG', 'IAS', 'RFI', 'IAQ', 'HWN', 'HWQ', 'HWI',
927
+ ]
928
+
929
+ REGISTERS = [
930
+ 'A', 'B', 'C',
931
+ 'X', 'Y', 'Z',
932
+ 'I', 'J',
933
+ 'SP', 'PC', 'EX',
934
+ 'POP', 'PEEK', 'PUSH'
935
+ ]
936
+
937
+ # Regexes yo
938
+ char = r'[a-zA-Z0-9_$@.]'
939
+ identifier = r'(?:[a-zA-Z$_]' + char + r'*|\.' + char + '+)'
940
+ number = r'[+-]?(?:0[xX][a-zA-Z0-9]+|\d+)'
941
+ binary_number = r'0b[01_]+'
942
+ instruction = r'(?i)(' + '|'.join(INSTRUCTIONS) + ')'
943
+ single_char = r"'\\?" + char + "'"
944
+ string = r'"(\\"|[^"])*"'
945
+
946
+ def guess_identifier(lexer, match):
947
+ ident = match.group(0)
948
+ klass = Name.Variable if ident.upper() in lexer.REGISTERS else Name.Label
949
+ yield match.start(), klass, ident
950
+
951
+ tokens = {
952
+ 'root': [
953
+ include('whitespace'),
954
+ (':' + identifier, Name.Label),
955
+ (identifier + ':', Name.Label),
956
+ (instruction, Name.Function, 'instruction-args'),
957
+ (r'\.' + identifier, Name.Function, 'data-args'),
958
+ (r'[\r\n]+', Text)
959
+ ],
960
+
961
+ 'numeric' : [
962
+ (binary_number, Number.Integer),
963
+ (number, Number.Integer),
964
+ (single_char, String),
965
+ ],
966
+
967
+ 'arg' : [
968
+ (identifier, guess_identifier),
969
+ include('numeric')
970
+ ],
971
+
972
+ 'deref' : [
973
+ (r'\+', Punctuation),
974
+ (r'\]', Punctuation, '#pop'),
975
+ include('arg'),
976
+ include('whitespace')
977
+ ],
978
+
979
+ 'instruction-line' : [
980
+ (r'[\r\n]+', Text, '#pop'),
981
+ (r';.*?$', Comment, '#pop'),
982
+ include('whitespace')
983
+ ],
984
+
985
+ 'instruction-args': [
986
+ (r',', Punctuation),
987
+ (r'\[', Punctuation, 'deref'),
988
+ include('arg'),
989
+ include('instruction-line')
990
+ ],
991
+
992
+ 'data-args' : [
993
+ (r',', Punctuation),
994
+ include('numeric'),
995
+ (string, String),
996
+ include('instruction-line')
997
+ ],
998
+
999
+ 'whitespace': [
1000
+ (r'\n', Text),
1001
+ (r'\s+', Text),
1002
+ (r';.*?\n', Comment)
1003
+ ],
1004
+ }