pygments.rb 1.2.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (386) 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 +4 -6
  6. data/.rubocop.yml +16 -0
  7. data/CHANGELOG.adoc +137 -0
  8. data/Gemfile +3 -1
  9. data/LICENSE +1 -1
  10. data/README.adoc +159 -0
  11. data/Rakefile +8 -32
  12. data/bench.rb +14 -8
  13. data/lib/pygments.rb +16 -14
  14. data/lib/pygments/lexer.rb +87 -65
  15. data/lib/pygments/mentos.py +23 -110
  16. data/lib/pygments/popen.rb +188 -284
  17. data/lib/pygments/version.rb +2 -2
  18. data/pygments.rb.gemspec +20 -13
  19. data/test/test_pygments.rb +50 -110
  20. data/vendor/pygments-main/{AUTHORS → Pygments-2.8.1.dist-info/AUTHORS} +26 -3
  21. data/vendor/pygments-main/Pygments-2.8.1.dist-info/INSTALLER +1 -0
  22. data/vendor/pygments-main/{LICENSE → Pygments-2.8.1.dist-info/LICENSE} +1 -1
  23. data/vendor/pygments-main/Pygments-2.8.1.dist-info/METADATA +48 -0
  24. data/vendor/pygments-main/Pygments-2.8.1.dist-info/RECORD +494 -0
  25. data/vendor/pygments-main/Pygments-2.8.1.dist-info/REQUESTED +0 -0
  26. data/vendor/pygments-main/Pygments-2.8.1.dist-info/WHEEL +5 -0
  27. data/vendor/pygments-main/Pygments-2.8.1.dist-info/entry_points.txt +3 -0
  28. data/vendor/pygments-main/Pygments-2.8.1.dist-info/top_level.txt +1 -0
  29. data/vendor/pygments-main/bin/pygmentize +8 -0
  30. data/vendor/pygments-main/pygments/__init__.py +6 -12
  31. data/vendor/pygments-main/pygments/__main__.py +17 -0
  32. data/vendor/pygments-main/pygments/cmdline.py +213 -184
  33. data/vendor/pygments-main/pygments/console.py +6 -10
  34. data/vendor/pygments-main/pygments/filter.py +4 -7
  35. data/vendor/pygments-main/pygments/filters/__init__.py +609 -22
  36. data/vendor/pygments-main/pygments/formatter.py +4 -5
  37. data/vendor/pygments-main/pygments/formatters/__init__.py +10 -10
  38. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -4
  39. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
  40. data/vendor/pygments-main/pygments/formatters/html.py +242 -139
  41. data/vendor/pygments-main/pygments/formatters/img.py +91 -50
  42. data/vendor/pygments-main/pygments/formatters/irc.py +39 -40
  43. data/vendor/pygments-main/pygments/formatters/latex.py +62 -33
  44. data/vendor/pygments-main/pygments/formatters/other.py +18 -17
  45. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -30
  46. data/vendor/pygments-main/pygments/formatters/svg.py +40 -5
  47. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -32
  48. data/vendor/pygments-main/pygments/formatters/terminal256.py +45 -14
  49. data/vendor/pygments-main/pygments/lexer.py +47 -44
  50. data/vendor/pygments-main/pygments/lexers/__init__.py +341 -0
  51. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1644 -0
  52. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +231 -0
  53. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +75 -0
  54. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1724 -0
  55. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +5326 -0
  56. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +292 -0
  57. data/vendor/pygments-main/pygments/lexers/_mapping.py +554 -0
  58. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1171 -0
  59. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1281 -0
  60. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +2600 -0
  61. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +4752 -0
  62. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +677 -0
  63. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3093 -0
  64. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1160 -0
  65. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +557 -0
  66. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +457 -0
  67. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1003 -0
  68. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +112 -0
  69. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +279 -0
  70. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1938 -0
  71. data/vendor/pygments-main/pygments/lexers/actionscript.py +244 -0
  72. data/vendor/pygments-main/pygments/lexers/agile.py +23 -0
  73. data/vendor/pygments-main/pygments/lexers/algebra.py +239 -0
  74. data/vendor/pygments-main/pygments/lexers/ambient.py +75 -0
  75. data/vendor/pygments-main/pygments/lexers/amdgpu.py +48 -0
  76. data/vendor/pygments-main/pygments/lexers/ampl.py +86 -0
  77. data/vendor/pygments-main/pygments/lexers/apl.py +100 -0
  78. data/vendor/pygments-main/pygments/lexers/archetype.py +317 -0
  79. data/vendor/pygments-main/pygments/lexers/arrow.py +116 -0
  80. data/vendor/pygments-main/pygments/lexers/asm.py +1004 -0
  81. data/vendor/pygments-main/pygments/lexers/automation.py +379 -0
  82. data/vendor/pygments-main/pygments/lexers/bare.py +103 -0
  83. data/vendor/pygments-main/pygments/lexers/basic.py +661 -0
  84. data/vendor/pygments-main/pygments/lexers/bibtex.py +159 -0
  85. data/vendor/pygments-main/pygments/lexers/boa.py +101 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +626 -0
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +342 -0
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +565 -0
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +77 -0
  90. data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
  91. data/vendor/pygments-main/pygments/lexers/chapel.py +111 -0
  92. data/vendor/pygments-main/pygments/lexers/clean.py +178 -0
  93. data/vendor/pygments-main/pygments/lexers/compiled.py +33 -0
  94. data/vendor/pygments-main/pygments/lexers/configs.py +985 -0
  95. data/vendor/pygments-main/pygments/lexers/console.py +113 -0
  96. data/vendor/pygments-main/pygments/lexers/crystal.py +366 -0
  97. data/vendor/pygments-main/pygments/lexers/csound.py +466 -0
  98. data/vendor/pygments-main/pygments/lexers/css.py +694 -0
  99. data/vendor/pygments-main/pygments/lexers/d.py +255 -0
  100. data/vendor/pygments-main/pygments/lexers/dalvik.py +124 -0
  101. data/vendor/pygments-main/pygments/lexers/data.py +697 -0
  102. data/vendor/pygments-main/pygments/lexers/devicetree.py +108 -0
  103. data/vendor/pygments-main/pygments/lexers/diff.py +164 -0
  104. data/vendor/pygments-main/pygments/lexers/dotnet.py +706 -0
  105. data/vendor/pygments-main/pygments/lexers/dsls.py +959 -0
  106. data/vendor/pygments-main/pygments/lexers/dylan.py +286 -0
  107. data/vendor/pygments-main/pygments/lexers/ecl.py +137 -0
  108. data/vendor/pygments-main/pygments/lexers/eiffel.py +64 -0
  109. data/vendor/pygments-main/pygments/lexers/elm.py +120 -0
  110. data/vendor/pygments-main/pygments/lexers/email.py +150 -0
  111. data/vendor/pygments-main/pygments/lexers/erlang.py +529 -0
  112. data/vendor/pygments-main/pygments/lexers/esoteric.py +303 -0
  113. data/vendor/pygments-main/pygments/lexers/ezhil.py +76 -0
  114. data/vendor/pygments-main/pygments/lexers/factor.py +343 -0
  115. data/vendor/pygments-main/pygments/lexers/fantom.py +249 -0
  116. data/vendor/pygments-main/pygments/lexers/felix.py +272 -0
  117. data/vendor/pygments-main/pygments/lexers/floscript.py +82 -0
  118. data/vendor/pygments-main/pygments/lexers/forth.py +177 -0
  119. data/vendor/pygments-main/pygments/lexers/fortran.py +208 -0
  120. data/vendor/pygments-main/pygments/lexers/foxpro.py +427 -0
  121. data/vendor/pygments-main/pygments/lexers/freefem.py +897 -0
  122. data/vendor/pygments-main/pygments/lexers/functional.py +20 -0
  123. data/vendor/pygments-main/pygments/lexers/futhark.py +110 -0
  124. data/vendor/pygments-main/pygments/lexers/gdscript.py +345 -0
  125. data/vendor/pygments-main/pygments/lexers/go.py +100 -0
  126. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +269 -0
  127. data/vendor/pygments-main/pygments/lexers/graph.py +84 -0
  128. data/vendor/pygments-main/pygments/lexers/graphics.py +799 -0
  129. data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
  130. data/vendor/pygments-main/pygments/lexers/haskell.py +869 -0
  131. data/vendor/pygments-main/pygments/lexers/haxe.py +935 -0
  132. data/vendor/pygments-main/pygments/lexers/hdl.py +468 -0
  133. data/vendor/pygments-main/pygments/lexers/hexdump.py +102 -0
  134. data/vendor/pygments-main/pygments/lexers/html.py +613 -0
  135. data/vendor/pygments-main/pygments/lexers/idl.py +280 -0
  136. data/vendor/pygments-main/pygments/lexers/igor.py +419 -0
  137. data/vendor/pygments-main/pygments/lexers/inferno.py +95 -0
  138. data/vendor/pygments-main/pygments/lexers/installers.py +321 -0
  139. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1367 -0
  140. data/vendor/pygments-main/pygments/lexers/iolang.py +62 -0
  141. data/vendor/pygments-main/pygments/lexers/j.py +145 -0
  142. data/vendor/pygments-main/pygments/lexers/javascript.py +1536 -0
  143. data/vendor/pygments-main/pygments/lexers/julia.py +330 -0
  144. data/vendor/pygments-main/pygments/lexers/jvm.py +1739 -0
  145. data/vendor/pygments-main/pygments/lexers/lisp.py +2698 -0
  146. data/vendor/pygments-main/pygments/lexers/make.py +205 -0
  147. data/vendor/pygments-main/pygments/lexers/markup.py +762 -0
  148. data/vendor/pygments-main/pygments/lexers/math.py +20 -0
  149. data/vendor/pygments-main/pygments/lexers/matlab.py +3280 -0
  150. data/vendor/pygments-main/pygments/lexers/mime.py +225 -0
  151. data/vendor/pygments-main/pygments/lexers/ml.py +957 -0
  152. data/vendor/pygments-main/pygments/lexers/modeling.py +365 -0
  153. data/vendor/pygments-main/pygments/lexers/modula2.py +1579 -0
  154. data/vendor/pygments-main/pygments/lexers/monte.py +203 -0
  155. data/vendor/pygments-main/pygments/lexers/mosel.py +447 -0
  156. data/vendor/pygments-main/pygments/lexers/ncl.py +893 -0
  157. data/vendor/pygments-main/pygments/lexers/nimrod.py +158 -0
  158. data/vendor/pygments-main/pygments/lexers/nit.py +63 -0
  159. data/vendor/pygments-main/pygments/lexers/nix.py +135 -0
  160. data/vendor/pygments-main/pygments/lexers/oberon.py +120 -0
  161. data/vendor/pygments-main/pygments/lexers/objective.py +503 -0
  162. data/vendor/pygments-main/pygments/lexers/ooc.py +84 -0
  163. data/vendor/pygments-main/pygments/lexers/other.py +40 -0
  164. data/vendor/pygments-main/pygments/lexers/parasail.py +78 -0
  165. data/vendor/pygments-main/pygments/lexers/parsers.py +799 -0
  166. data/vendor/pygments-main/pygments/lexers/pascal.py +643 -0
  167. data/vendor/pygments-main/pygments/lexers/pawn.py +202 -0
  168. data/vendor/pygments-main/pygments/lexers/perl.py +731 -0
  169. data/vendor/pygments-main/pygments/lexers/php.py +320 -0
  170. data/vendor/pygments-main/pygments/lexers/pointless.py +70 -0
  171. data/vendor/pygments-main/pygments/lexers/pony.py +93 -0
  172. data/vendor/pygments-main/pygments/lexers/praat.py +301 -0
  173. data/vendor/pygments-main/pygments/lexers/prolog.py +305 -0
  174. data/vendor/pygments-main/pygments/lexers/promql.py +182 -0
  175. data/vendor/pygments-main/pygments/lexers/python.py +1158 -0
  176. data/vendor/pygments-main/pygments/lexers/qvt.py +151 -0
  177. data/vendor/pygments-main/pygments/lexers/r.py +190 -0
  178. data/vendor/pygments-main/pygments/lexers/rdf.py +462 -0
  179. data/vendor/pygments-main/pygments/lexers/rebol.py +430 -0
  180. data/vendor/pygments-main/pygments/lexers/resource.py +84 -0
  181. data/vendor/pygments-main/pygments/lexers/ride.py +138 -0
  182. data/vendor/pygments-main/pygments/lexers/rnc.py +66 -0
  183. data/vendor/pygments-main/pygments/lexers/roboconf.py +81 -0
  184. data/vendor/pygments-main/pygments/lexers/robotframework.py +551 -0
  185. data/vendor/pygments-main/pygments/lexers/ruby.py +523 -0
  186. data/vendor/pygments-main/pygments/lexers/rust.py +223 -0
  187. data/vendor/pygments-main/pygments/lexers/sas.py +227 -0
  188. data/vendor/pygments-main/pygments/lexers/scdoc.py +82 -0
  189. data/vendor/pygments-main/pygments/lexers/scripting.py +1283 -0
  190. data/vendor/pygments-main/pygments/lexers/sgf.py +60 -0
  191. data/vendor/pygments-main/pygments/lexers/shell.py +909 -0
  192. data/vendor/pygments-main/pygments/lexers/sieve.py +68 -0
  193. data/vendor/pygments-main/pygments/lexers/slash.py +184 -0
  194. data/vendor/pygments-main/pygments/lexers/smalltalk.py +194 -0
  195. data/vendor/pygments-main/pygments/lexers/smv.py +78 -0
  196. data/vendor/pygments-main/pygments/lexers/snobol.py +82 -0
  197. data/vendor/pygments-main/pygments/lexers/solidity.py +91 -0
  198. data/vendor/pygments-main/pygments/lexers/special.py +106 -0
  199. data/vendor/pygments-main/pygments/lexers/sql.py +832 -0
  200. data/vendor/pygments-main/pygments/lexers/stata.py +170 -0
  201. data/vendor/pygments-main/pygments/lexers/supercollider.py +94 -0
  202. data/vendor/pygments-main/pygments/lexers/tcl.py +144 -0
  203. data/vendor/pygments-main/pygments/lexers/templates.py +2263 -0
  204. data/vendor/pygments-main/pygments/lexers/teraterm.py +334 -0
  205. data/vendor/pygments-main/pygments/lexers/testing.py +206 -0
  206. data/vendor/pygments-main/pygments/lexers/text.py +25 -0
  207. data/vendor/pygments-main/pygments/lexers/textedit.py +168 -0
  208. data/vendor/pygments-main/pygments/lexers/textfmts.py +429 -0
  209. data/vendor/pygments-main/pygments/lexers/theorem.py +476 -0
  210. data/vendor/pygments-main/pygments/lexers/tnt.py +262 -0
  211. data/vendor/pygments-main/pygments/lexers/trafficscript.py +53 -0
  212. data/vendor/pygments-main/pygments/lexers/typoscript.py +218 -0
  213. data/vendor/pygments-main/pygments/lexers/unicon.py +411 -0
  214. data/vendor/pygments-main/pygments/lexers/urbi.py +145 -0
  215. data/vendor/pygments-main/pygments/lexers/usd.py +89 -0
  216. data/vendor/pygments-main/pygments/lexers/varnish.py +189 -0
  217. data/vendor/pygments-main/pygments/lexers/verification.py +113 -0
  218. data/vendor/pygments-main/pygments/lexers/web.py +23 -0
  219. data/vendor/pygments-main/pygments/lexers/webidl.py +298 -0
  220. data/vendor/pygments-main/pygments/lexers/webmisc.py +991 -0
  221. data/vendor/pygments-main/pygments/lexers/whiley.py +115 -0
  222. data/vendor/pygments-main/pygments/lexers/x10.py +68 -0
  223. data/vendor/pygments-main/pygments/lexers/xorg.py +36 -0
  224. data/vendor/pygments-main/pygments/lexers/yang.py +103 -0
  225. data/vendor/pygments-main/pygments/lexers/zig.py +123 -0
  226. data/vendor/pygments-main/pygments/modeline.py +1 -2
  227. data/vendor/pygments-main/pygments/plugin.py +4 -3
  228. data/vendor/pygments-main/pygments/regexopt.py +1 -2
  229. data/vendor/pygments-main/pygments/scanner.py +2 -3
  230. data/vendor/pygments-main/pygments/sphinxext.py +2 -5
  231. data/vendor/pygments-main/pygments/style.py +61 -25
  232. data/vendor/pygments-main/pygments/styles/__init__.py +12 -5
  233. data/vendor/pygments-main/pygments/styles/abap.py +1 -2
  234. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  235. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  236. data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
  237. data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
  238. data/vendor/pygments-main/pygments/styles/borland.py +1 -2
  239. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  240. data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
  241. data/vendor/pygments-main/pygments/styles/default.py +1 -2
  242. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  243. data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
  244. data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
  245. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  246. data/vendor/pygments-main/pygments/styles/inkpot.py +66 -0
  247. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
  248. data/vendor/pygments-main/pygments/styles/manni.py +1 -2
  249. data/vendor/pygments-main/pygments/styles/material.py +118 -0
  250. data/vendor/pygments-main/pygments/styles/monokai.py +4 -4
  251. data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
  252. data/vendor/pygments-main/pygments/styles/native.py +1 -2
  253. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
  254. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
  255. data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
  256. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  257. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
  258. data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
  259. data/vendor/pygments-main/pygments/styles/sas.py +1 -2
  260. data/vendor/pygments-main/pygments/styles/solarized.py +136 -0
  261. data/vendor/pygments-main/pygments/styles/stata_dark.py +40 -0
  262. data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -16
  263. data/vendor/pygments-main/pygments/styles/tango.py +1 -2
  264. data/vendor/pygments-main/pygments/styles/trac.py +1 -2
  265. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  266. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  267. data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
  268. data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
  269. data/vendor/pygments-main/pygments/token.py +1 -2
  270. data/vendor/pygments-main/pygments/unistring.py +47 -109
  271. data/vendor/pygments-main/pygments/util.py +16 -96
  272. metadata +81 -139
  273. data/CHANGELOG.md +0 -111
  274. data/README.md +0 -121
  275. data/cache-lexers.rb +0 -8
  276. data/circle.yml +0 -20
  277. data/test/test_data.c +0 -2581
  278. data/test/test_data.py +0 -514
  279. data/test/test_data_generated +0 -2582
  280. data/vendor/custom_lexers/github.py +0 -565
  281. data/vendor/pygments-main/CHANGES +0 -1186
  282. data/vendor/pygments-main/MANIFEST.in +0 -6
  283. data/vendor/pygments-main/Makefile +0 -65
  284. data/vendor/pygments-main/README.rst +0 -39
  285. data/vendor/pygments-main/REVISION +0 -1
  286. data/vendor/pygments-main/TODO +0 -12
  287. data/vendor/pygments-main/doc/Makefile +0 -153
  288. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  289. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  290. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  291. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  292. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  293. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  294. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  295. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  296. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  297. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  298. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  299. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  300. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  301. data/vendor/pygments-main/doc/conf.py +0 -241
  302. data/vendor/pygments-main/doc/docs/api.rst +0 -354
  303. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  304. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  305. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
  306. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  307. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  308. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  309. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  310. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  311. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  312. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  313. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
  314. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  315. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  316. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  317. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  318. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  319. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  320. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  321. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  322. data/vendor/pygments-main/doc/download.rst +0 -41
  323. data/vendor/pygments-main/doc/faq.rst +0 -139
  324. data/vendor/pygments-main/doc/index.rst +0 -54
  325. data/vendor/pygments-main/doc/languages.rst +0 -154
  326. data/vendor/pygments-main/doc/make.bat +0 -190
  327. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  328. data/vendor/pygments-main/external/autopygmentize +0 -101
  329. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  330. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  331. data/vendor/pygments-main/external/moin-parser.py +0 -112
  332. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  333. data/vendor/pygments-main/external/rst-directive.py +0 -82
  334. data/vendor/pygments-main/pygmentize +0 -8
  335. data/vendor/pygments-main/requirements.txt +0 -5
  336. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  337. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  338. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  339. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  340. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  341. data/vendor/pygments-main/scripts/pylintrc +0 -301
  342. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  343. data/vendor/pygments-main/setup.cfg +0 -10
  344. data/vendor/pygments-main/setup.py +0 -77
  345. data/vendor/pygments-main/tox.ini +0 -7
  346. data/vendor/simplejson/.gitignore +0 -10
  347. data/vendor/simplejson/.travis.yml +0 -5
  348. data/vendor/simplejson/CHANGES.txt +0 -291
  349. data/vendor/simplejson/LICENSE.txt +0 -19
  350. data/vendor/simplejson/MANIFEST.in +0 -5
  351. data/vendor/simplejson/README.rst +0 -19
  352. data/vendor/simplejson/conf.py +0 -179
  353. data/vendor/simplejson/index.rst +0 -628
  354. data/vendor/simplejson/scripts/make_docs.py +0 -18
  355. data/vendor/simplejson/setup.py +0 -104
  356. data/vendor/simplejson/simplejson/__init__.py +0 -510
  357. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  358. data/vendor/simplejson/simplejson/decoder.py +0 -425
  359. data/vendor/simplejson/simplejson/encoder.py +0 -567
  360. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  361. data/vendor/simplejson/simplejson/scanner.py +0 -77
  362. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  363. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  364. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  365. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  366. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  367. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  368. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  369. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  370. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  371. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  372. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  373. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  374. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  375. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  376. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  377. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  378. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  379. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  380. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  381. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  382. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  383. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  384. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  385. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  386. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -0,0 +1,75 @@
1
+ """
2
+ pygments.lexers.ambient
3
+ ~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexers for AmbientTalk language.
6
+
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ import re
12
+
13
+ from pygments.lexer import RegexLexer, include, words
14
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
15
+ Number, Punctuation
16
+
17
+ __all__ = ['AmbientTalkLexer']
18
+
19
+
20
+ class AmbientTalkLexer(RegexLexer):
21
+ """
22
+ Lexer for `AmbientTalk <https://code.google.com/p/ambienttalk>`_ source code.
23
+
24
+ .. versionadded:: 2.0
25
+ """
26
+ name = 'AmbientTalk'
27
+ filenames = ['*.at']
28
+ aliases = ['at', 'ambienttalk', 'ambienttalk/2']
29
+ mimetypes = ['text/x-ambienttalk']
30
+
31
+ flags = re.MULTILINE | re.DOTALL
32
+
33
+ builtin = words(('if:', 'then:', 'else:', 'when:', 'whenever:', 'discovered:',
34
+ 'disconnected:', 'reconnected:', 'takenOffline:', 'becomes:',
35
+ 'export:', 'as:', 'object:', 'actor:', 'mirror:', 'taggedAs:',
36
+ 'mirroredBy:', 'is:'))
37
+ tokens = {
38
+ 'root': [
39
+ (r'\s+', Text),
40
+ (r'//.*?\n', Comment.Single),
41
+ (r'/\*.*?\*/', Comment.Multiline),
42
+ (r'(def|deftype|import|alias|exclude)\b', Keyword),
43
+ (builtin, Name.Builtin),
44
+ (r'(true|false|nil)\b', Keyword.Constant),
45
+ (r'(~|lobby|jlobby|/)\.', Keyword.Constant, 'namespace'),
46
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
47
+ (r'\|', Punctuation, 'arglist'),
48
+ (r'<:|[*^!%&<>+=,./?-]|:=', Operator),
49
+ (r"`[a-zA-Z_]\w*", String.Symbol),
50
+ (r"[a-zA-Z_]\w*:", Name.Function),
51
+ (r"[{}()\[\];`]", Punctuation),
52
+ (r'(self|super)\b', Name.Variable.Instance),
53
+ (r"[a-zA-Z_]\w*", Name.Variable),
54
+ (r"@[a-zA-Z_]\w*", Name.Class),
55
+ (r"@\[", Name.Class, 'annotations'),
56
+ include('numbers'),
57
+ ],
58
+ 'numbers': [
59
+ (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
60
+ (r'\d+', Number.Integer)
61
+ ],
62
+ 'namespace': [
63
+ (r'[a-zA-Z_]\w*\.', Name.Namespace),
64
+ (r'[a-zA-Z_]\w*:', Name.Function, '#pop'),
65
+ (r'[a-zA-Z_]\w*(?!\.)', Name.Function, '#pop')
66
+ ],
67
+ 'annotations': [
68
+ (r"(.*?)\]", Name.Class, '#pop')
69
+ ],
70
+ 'arglist': [
71
+ (r'\|', Punctuation, '#pop'),
72
+ (r'\s*(,)\s*', Punctuation),
73
+ (r'[a-zA-Z_]\w*', Name.Variable),
74
+ ],
75
+ }
@@ -0,0 +1,48 @@
1
+ """
2
+ pygments.lexers.amdgpu
3
+ ~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexers for the AMDGPU ISA assembly.
6
+
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ from pygments.lexer import RegexLexer
12
+ from pygments.token import Name, Text, Keyword, Whitespace, Number, Comment
13
+
14
+ import re
15
+
16
+ __all__ = ['AMDGPULexer']
17
+
18
+ class AMDGPULexer(RegexLexer):
19
+ """
20
+ For AMD GPU assembly.
21
+
22
+ .. versionadded:: 2.8
23
+ """
24
+ name = 'AMDGPU'
25
+ aliases = ['amdgpu']
26
+ filenames = ['*.isa']
27
+
28
+ flags = re.IGNORECASE
29
+
30
+ tokens = {
31
+ 'root': [
32
+ (r'\s+', Whitespace),
33
+ (r'[\r\n]+', Text),
34
+ (r'(([a-z_0-9])*:([a-z_0-9])*)', Name.Attribute),
35
+ (r'(\[|\]|\(|\)|,|\:|\&)', Text),
36
+ (r'([;#]|//).*?\n', Comment.Single),
37
+ (r'((s_)?(ds|buffer|flat|image)_[a-z0-9_]+)', Keyword.Reserved),
38
+ (r'(_lo|_hi)', Name.Variable),
39
+ (r'(vmcnt|lgkmcnt|expcnt|vmcnt|lit|unorm|glc)', Name.Attribute),
40
+ (r'(label_[a-z0-9]+)', Keyword),
41
+ (r'(_L[0-9]*)', Name.Variable),
42
+ (r'(s|v)_[a-z0-9_]+', Keyword),
43
+ (r'(v[0-9.]+|vcc|exec|v)', Name.Variable),
44
+ (r's[0-9.]+|s', Name.Variable),
45
+ (r'[0-9]+\.[^0-9]+', Number.Float),
46
+ (r'(0[xX][a-z0-9]+)|([0-9]+)', Number.Integer)
47
+ ]
48
+ }
@@ -0,0 +1,86 @@
1
+ """
2
+ pygments.lexers.ampl
3
+ ~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexers for the AMPL language.
6
+
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ from pygments.lexer import RegexLexer, bygroups, using, this, words
12
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
13
+ Number, Punctuation
14
+
15
+ __all__ = ['AmplLexer']
16
+
17
+
18
+ class AmplLexer(RegexLexer):
19
+ """
20
+ For `AMPL <http://ampl.com/>`_ source code.
21
+
22
+ .. versionadded:: 2.2
23
+ """
24
+ name = 'Ampl'
25
+ aliases = ['ampl']
26
+ filenames = ['*.run']
27
+
28
+ tokens = {
29
+ 'root': [
30
+ (r'\n', Text),
31
+ (r'\s+', Text.Whitespace),
32
+ (r'#.*?\n', Comment.Single),
33
+ (r'/[*](.|\n)*?[*]/', Comment.Multiline),
34
+ (words((
35
+ 'call', 'cd', 'close', 'commands', 'data', 'delete', 'display',
36
+ 'drop', 'end', 'environ', 'exit', 'expand', 'include', 'load',
37
+ 'model', 'objective', 'option', 'problem', 'purge', 'quit',
38
+ 'redeclare', 'reload', 'remove', 'reset', 'restore', 'shell',
39
+ 'show', 'solexpand', 'solution', 'solve', 'update', 'unload',
40
+ 'xref', 'coeff', 'coef', 'cover', 'obj', 'interval', 'default',
41
+ 'from', 'to', 'to_come', 'net_in', 'net_out', 'dimen',
42
+ 'dimension', 'check', 'complements', 'write', 'function',
43
+ 'pipe', 'format', 'if', 'then', 'else', 'in', 'while', 'repeat',
44
+ 'for'), suffix=r'\b'), Keyword.Reserved),
45
+ (r'(integer|binary|symbolic|ordered|circular|reversed|INOUT|IN|OUT|LOCAL)',
46
+ Keyword.Type),
47
+ (r'\".*?\"', String.Double),
48
+ (r'\'.*?\'', String.Single),
49
+ (r'[()\[\]{},;:]+', Punctuation),
50
+ (r'\b(\w+)(\.)(astatus|init0|init|lb0|lb1|lb2|lb|lrc|'
51
+ r'lslack|rc|relax|slack|sstatus|status|ub0|ub1|ub2|'
52
+ r'ub|urc|uslack|val)',
53
+ bygroups(Name.Variable, Punctuation, Keyword.Reserved)),
54
+ (r'(set|param|var|arc|minimize|maximize|subject to|s\.t\.|subj to|'
55
+ r'node|table|suffix|read table|write table)(\s+)(\w+)',
56
+ bygroups(Keyword.Declaration, Text, Name.Variable)),
57
+ (r'(param)(\s*)(:)(\s*)(\w+)(\s*)(:)(\s*)((\w|\s)+)',
58
+ bygroups(Keyword.Declaration, Text, Punctuation, Text,
59
+ Name.Variable, Text, Punctuation, Text, Name.Variable)),
60
+ (r'(let|fix|unfix)(\s*)((?:\{.*\})?)(\s*)(\w+)',
61
+ bygroups(Keyword.Declaration, Text, using(this), Text, Name.Variable)),
62
+ (words((
63
+ 'abs', 'acos', 'acosh', 'alias', 'asin', 'asinh', 'atan', 'atan2',
64
+ 'atanh', 'ceil', 'ctime', 'cos', 'exp', 'floor', 'log', 'log10',
65
+ 'max', 'min', 'precision', 'round', 'sin', 'sinh', 'sqrt', 'tan',
66
+ 'tanh', 'time', 'trunc', 'Beta', 'Cauchy', 'Exponential', 'Gamma',
67
+ 'Irand224', 'Normal', 'Normal01', 'Poisson', 'Uniform', 'Uniform01',
68
+ 'num', 'num0', 'ichar', 'char', 'length', 'substr', 'sprintf',
69
+ 'match', 'sub', 'gsub', 'print', 'printf', 'next', 'nextw', 'prev',
70
+ 'prevw', 'first', 'last', 'ord', 'ord0', 'card', 'arity',
71
+ 'indexarity'), prefix=r'\b', suffix=r'\b'), Name.Builtin),
72
+ (r'(\+|\-|\*|/|\*\*|=|<=|>=|==|\||\^|<|>|\!|\.\.|:=|\&|\!=|<<|>>)',
73
+ Operator),
74
+ (words((
75
+ 'or', 'exists', 'forall', 'and', 'in', 'not', 'within', 'union',
76
+ 'diff', 'difference', 'symdiff', 'inter', 'intersect',
77
+ 'intersection', 'cross', 'setof', 'by', 'less', 'sum', 'prod',
78
+ 'product', 'div', 'mod'), suffix=r'\b'),
79
+ Keyword.Reserved), # Operator.Name but not enough emphasized with that
80
+ (r'(\d+\.(?!\.)\d*|\.(?!.)\d+)([eE][+-]?\d+)?', Number.Float),
81
+ (r'\d+([eE][+-]?\d+)?', Number.Integer),
82
+ (r'[+-]?Infinity', Number.Integer),
83
+ (r'(\w+|(\.(?!\.)))', Text)
84
+ ]
85
+
86
+ }
@@ -0,0 +1,100 @@
1
+ """
2
+ pygments.lexers.apl
3
+ ~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexers for APL.
6
+
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ from pygments.lexer import RegexLexer
12
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
13
+ Number, Punctuation
14
+
15
+ __all__ = ['APLLexer']
16
+
17
+
18
+ class APLLexer(RegexLexer):
19
+ """
20
+ A simple `APL <https://en.m.wikipedia.org/wiki/APL_(programming_language)>`_ lexer.
21
+
22
+ .. versionadded:: 2.0
23
+ """
24
+ name = 'APL'
25
+ aliases = ['apl']
26
+ filenames = ['*.apl']
27
+
28
+ tokens = {
29
+ 'root': [
30
+ # Whitespace
31
+ # ==========
32
+ (r'\s+', Text),
33
+ #
34
+ # Comment
35
+ # =======
36
+ # '⍝' is traditional; '#' is supported by GNU APL and NGN (but not Dyalog)
37
+ (r'[⍝#].*$', Comment.Single),
38
+ #
39
+ # Strings
40
+ # =======
41
+ (r'\'((\'\')|[^\'])*\'', String.Single),
42
+ (r'"(("")|[^"])*"', String.Double), # supported by NGN APL
43
+ #
44
+ # Punctuation
45
+ # ===========
46
+ # This token type is used for diamond and parenthesis
47
+ # but not for bracket and ; (see below)
48
+ (r'[⋄◇()]', Punctuation),
49
+ #
50
+ # Array indexing
51
+ # ==============
52
+ # Since this token type is very important in APL, it is not included in
53
+ # the punctuation token type but rather in the following one
54
+ (r'[\[\];]', String.Regex),
55
+ #
56
+ # Distinguished names
57
+ # ===================
58
+ # following IBM APL2 standard
59
+ (r'⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*', Name.Function),
60
+ #
61
+ # Labels
62
+ # ======
63
+ # following IBM APL2 standard
64
+ # (r'[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*:', Name.Label),
65
+ #
66
+ # Variables
67
+ # =========
68
+ # following IBM APL2 standard
69
+ (r'[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*', Name.Variable),
70
+ #
71
+ # Numbers
72
+ # =======
73
+ (r'¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞)'
74
+ r'([Jj]¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞))?',
75
+ Number),
76
+ #
77
+ # Operators
78
+ # ==========
79
+ (r'[\.\\\/⌿⍀¨⍣⍨⍠⍤∘⌸&⌶@⌺⍥⍛⍢]', Name.Attribute), # closest token type
80
+ (r'[+\-×÷⌈⌊∣|⍳?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⌸⍯↗⊆⊇⍸√⌾…⍮]',
81
+ Operator),
82
+ #
83
+ # Constant
84
+ # ========
85
+ (r'⍬', Name.Constant),
86
+ #
87
+ # Quad symbol
88
+ # ===========
89
+ (r'[⎕⍞]', Name.Variable.Global),
90
+ #
91
+ # Arrows left/right
92
+ # =================
93
+ (r'[←→]', Keyword.Declaration),
94
+ #
95
+ # D-Fn
96
+ # ====
97
+ (r'[⍺⍵⍶⍹∇:]', Name.Builtin.Pseudo),
98
+ (r'[{}]', Keyword.Type),
99
+ ],
100
+ }
@@ -0,0 +1,317 @@
1
+ """
2
+ pygments.lexers.archetype
3
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Lexer for Archetype-related syntaxes, including:
6
+
7
+ - ODIN syntax <https://github.com/openEHR/odin>
8
+ - ADL syntax <http://www.openehr.org/releases/trunk/architecture/am/adl2.pdf>
9
+ - cADL sub-syntax of ADL
10
+
11
+ For uses of this syntax, see the openEHR archetypes <http://www.openEHR.org/ckm>
12
+
13
+ Contributed by Thomas Beale <https://github.com/wolandscat>,
14
+ <https://bitbucket.org/thomas_beale>.
15
+
16
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
17
+ :license: BSD, see LICENSE for details.
18
+ """
19
+
20
+ from pygments.lexer import RegexLexer, include, bygroups, using, default
21
+ from pygments.token import Text, Comment, Name, Literal, Number, String, \
22
+ Punctuation, Keyword, Operator, Generic
23
+
24
+ __all__ = ['OdinLexer', 'CadlLexer', 'AdlLexer']
25
+
26
+
27
+ class AtomsLexer(RegexLexer):
28
+ """
29
+ Lexer for Values used in ADL and ODIN.
30
+
31
+ .. versionadded:: 2.1
32
+ """
33
+
34
+ tokens = {
35
+ # ----- pseudo-states for inclusion -----
36
+ 'whitespace': [
37
+ (r'\n', Text),
38
+ (r'\s+', Text),
39
+ (r'[ \t]*--.*$', Comment),
40
+ ],
41
+ 'archetype_id': [
42
+ (r'[ \t]*([a-zA-Z]\w+(\.[a-zA-Z]\w+)*::)?[a-zA-Z]\w+(-[a-zA-Z]\w+){2}'
43
+ r'\.\w+[\w-]*\.v\d+(\.\d+){,2}((-[a-z]+)(\.\d+)?)?', Name.Decorator),
44
+ ],
45
+ 'date_constraints': [
46
+ # ISO 8601-based date/time constraints
47
+ (r'[Xx?YyMmDdHhSs\d]{2,4}([:-][Xx?YyMmDdHhSs\d]{2}){2}', Literal.Date),
48
+ # ISO 8601-based duration constraints + optional trailing slash
49
+ (r'(P[YyMmWwDd]+(T[HhMmSs]+)?|PT[HhMmSs]+)/?', Literal.Date),
50
+ ],
51
+ 'ordered_values': [
52
+ # ISO 8601 date with optional 'T' ligature
53
+ (r'\d{4}-\d{2}-\d{2}T?', Literal.Date),
54
+ # ISO 8601 time
55
+ (r'\d{2}:\d{2}:\d{2}(\.\d+)?([+-]\d{4}|Z)?', Literal.Date),
56
+ # ISO 8601 duration
57
+ (r'P((\d*(\.\d+)?[YyMmWwDd]){1,3}(T(\d*(\.\d+)?[HhMmSs]){,3})?|'
58
+ r'T(\d*(\.\d+)?[HhMmSs]){,3})', Literal.Date),
59
+ (r'[+-]?(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+', Number.Float),
60
+ (r'[+-]?\d*\.\d+%?', Number.Float),
61
+ (r'0x[0-9a-fA-F]+', Number.Hex),
62
+ (r'[+-]?\d+%?', Number.Integer),
63
+ ],
64
+ 'values': [
65
+ include('ordered_values'),
66
+ (r'([Tt]rue|[Ff]alse)', Literal),
67
+ (r'"', String, 'string'),
68
+ (r"'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char),
69
+ (r'[a-z][a-z0-9+.-]*:', Literal, 'uri'),
70
+ # term code
71
+ (r'(\[)(\w[\w-]*(?:\([^)\n]+\))?)(::)(\w[\w-]*)(\])',
72
+ bygroups(Punctuation, Name.Decorator, Punctuation, Name.Decorator,
73
+ Punctuation)),
74
+ (r'\|', Punctuation, 'interval'),
75
+ # list continuation
76
+ (r'\.\.\.', Punctuation),
77
+ ],
78
+ 'constraint_values': [
79
+ (r'(\[)(\w[\w-]*(?:\([^)\n]+\))?)(::)',
80
+ bygroups(Punctuation, Name.Decorator, Punctuation), 'adl14_code_constraint'),
81
+ # ADL 1.4 ordinal constraint
82
+ (r'(\d*)(\|)(\[\w[\w-]*::\w[\w-]*\])((?:[,;])?)',
83
+ bygroups(Number, Punctuation, Name.Decorator, Punctuation)),
84
+ include('date_constraints'),
85
+ include('values'),
86
+ ],
87
+
88
+ # ----- real states -----
89
+ 'string': [
90
+ ('"', String, '#pop'),
91
+ (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|'
92
+ r'u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})', String.Escape),
93
+ # all other characters
94
+ (r'[^\\"]+', String),
95
+ # stray backslash
96
+ (r'\\', String),
97
+ ],
98
+ 'uri': [
99
+ # effective URI terminators
100
+ (r'[,>\s]', Punctuation, '#pop'),
101
+ (r'[^>\s,]+', Literal),
102
+ ],
103
+ 'interval': [
104
+ (r'\|', Punctuation, '#pop'),
105
+ include('ordered_values'),
106
+ (r'\.\.', Punctuation),
107
+ (r'[<>=] *', Punctuation),
108
+ # handle +/-
109
+ (r'\+/-', Punctuation),
110
+ (r'\s+', Text),
111
+ ],
112
+ 'any_code': [
113
+ include('archetype_id'),
114
+ # if it is a code
115
+ (r'[a-z_]\w*[0-9.]+(@[^\]]+)?', Name.Decorator),
116
+ # if it is tuple with attribute names
117
+ (r'[a-z_]\w*', Name.Class),
118
+ # if it is an integer, i.e. Xpath child index
119
+ (r'[0-9]+', Text),
120
+ (r'\|', Punctuation, 'code_rubric'),
121
+ (r'\]', Punctuation, '#pop'),
122
+ # handle use_archetype statement
123
+ (r'\s*,\s*', Punctuation),
124
+ ],
125
+ 'code_rubric': [
126
+ (r'\|', Punctuation, '#pop'),
127
+ (r'[^|]+', String),
128
+ ],
129
+ 'adl14_code_constraint': [
130
+ (r'\]', Punctuation, '#pop'),
131
+ (r'\|', Punctuation, 'code_rubric'),
132
+ (r'(\w[\w-]*)([;,]?)', bygroups(Name.Decorator, Punctuation)),
133
+ include('whitespace'),
134
+ ],
135
+ }
136
+
137
+
138
+ class OdinLexer(AtomsLexer):
139
+ """
140
+ Lexer for ODIN syntax.
141
+
142
+ .. versionadded:: 2.1
143
+ """
144
+ name = 'ODIN'
145
+ aliases = ['odin']
146
+ filenames = ['*.odin']
147
+ mimetypes = ['text/odin']
148
+
149
+ tokens = {
150
+ 'path': [
151
+ (r'>', Punctuation, '#pop'),
152
+ # attribute name
153
+ (r'[a-z_]\w*', Name.Class),
154
+ (r'/', Punctuation),
155
+ (r'\[', Punctuation, 'key'),
156
+ (r'\s*,\s*', Punctuation, '#pop'),
157
+ (r'\s+', Text, '#pop'),
158
+ ],
159
+ 'key': [
160
+ include('values'),
161
+ (r'\]', Punctuation, '#pop'),
162
+ ],
163
+ 'type_cast': [
164
+ (r'\)', Punctuation, '#pop'),
165
+ (r'[^)]+', Name.Class),
166
+ ],
167
+ 'root': [
168
+ include('whitespace'),
169
+ (r'([Tt]rue|[Ff]alse)', Literal),
170
+ include('values'),
171
+ # x-ref path
172
+ (r'/', Punctuation, 'path'),
173
+ # x-ref path starting with key
174
+ (r'\[', Punctuation, 'key'),
175
+ # attribute name
176
+ (r'[a-z_]\w*', Name.Class),
177
+ (r'=', Operator),
178
+ (r'\(', Punctuation, 'type_cast'),
179
+ (r',', Punctuation),
180
+ (r'<', Punctuation),
181
+ (r'>', Punctuation),
182
+ (r';', Punctuation),
183
+ ],
184
+ }
185
+
186
+
187
+ class CadlLexer(AtomsLexer):
188
+ """
189
+ Lexer for cADL syntax.
190
+
191
+ .. versionadded:: 2.1
192
+ """
193
+ name = 'cADL'
194
+ aliases = ['cadl']
195
+ filenames = ['*.cadl']
196
+
197
+ tokens = {
198
+ 'path': [
199
+ # attribute name
200
+ (r'[a-z_]\w*', Name.Class),
201
+ (r'/', Punctuation),
202
+ (r'\[', Punctuation, 'any_code'),
203
+ (r'\s+', Punctuation, '#pop'),
204
+ ],
205
+ 'root': [
206
+ include('whitespace'),
207
+ (r'(cardinality|existence|occurrences|group|include|exclude|'
208
+ r'allow_archetype|use_archetype|use_node)\W', Keyword.Type),
209
+ (r'(and|or|not|there_exists|xor|implies|for_all)\W', Keyword.Type),
210
+ (r'(after|before|closed)\W', Keyword.Type),
211
+ (r'(not)\W', Operator),
212
+ (r'(matches|is_in)\W', Operator),
213
+ # is_in / not is_in char
214
+ ('(\u2208|\u2209)', Operator),
215
+ # there_exists / not there_exists / for_all / and / or
216
+ ('(\u2203|\u2204|\u2200|\u2227|\u2228|\u22BB|\223C)',
217
+ Operator),
218
+ # regex in slot or as string constraint
219
+ (r'(\{)(\s*/[^}]+/\s*)(\})',
220
+ bygroups(Punctuation, String.Regex, Punctuation)),
221
+ # regex in slot or as string constraint
222
+ (r'(\{)(\s*\^[^}]+\^\s*)(\})',
223
+ bygroups(Punctuation, String.Regex, Punctuation)),
224
+ (r'/', Punctuation, 'path'),
225
+ # for cardinality etc
226
+ (r'(\{)((?:\d+\.\.)?(?:\d+|\*))'
227
+ r'((?:\s*;\s*(?:ordered|unordered|unique)){,2})(\})',
228
+ bygroups(Punctuation, Number, Number, Punctuation)),
229
+ # [{ is start of a tuple value
230
+ (r'\[\{', Punctuation),
231
+ (r'\}\]', Punctuation),
232
+ (r'\{', Punctuation),
233
+ (r'\}', Punctuation),
234
+ include('constraint_values'),
235
+ # type name
236
+ (r'[A-Z]\w+(<[A-Z]\w+([A-Za-z_<>]*)>)?', Name.Class),
237
+ # attribute name
238
+ (r'[a-z_]\w*', Name.Class),
239
+ (r'\[', Punctuation, 'any_code'),
240
+ (r'(~|//|\\\\|\+|-|/|\*|\^|!=|=|<=|>=|<|>]?)', Operator),
241
+ (r'\(', Punctuation),
242
+ (r'\)', Punctuation),
243
+ # for lists of values
244
+ (r',', Punctuation),
245
+ (r'"', String, 'string'),
246
+ # for assumed value
247
+ (r';', Punctuation),
248
+ ],
249
+ }
250
+
251
+
252
+ class AdlLexer(AtomsLexer):
253
+ """
254
+ Lexer for ADL syntax.
255
+
256
+ .. versionadded:: 2.1
257
+ """
258
+
259
+ name = 'ADL'
260
+ aliases = ['adl']
261
+ filenames = ['*.adl', '*.adls', '*.adlf', '*.adlx']
262
+
263
+ tokens = {
264
+ 'whitespace': [
265
+ # blank line ends
266
+ (r'\s*\n', Text),
267
+ # comment-only line
268
+ (r'^[ \t]*--.*$', Comment),
269
+ ],
270
+ 'odin_section': [
271
+ # repeating the following two rules from the root state enable multi-line
272
+ # strings that start in the first column to be dealt with
273
+ (r'^(language|description|ontology|terminology|annotations|'
274
+ r'component_terminologies|revision_history)[ \t]*\n', Generic.Heading),
275
+ (r'^(definition)[ \t]*\n', Generic.Heading, 'cadl_section'),
276
+ (r'^([ \t]*|[ \t]+.*)\n', using(OdinLexer)),
277
+ (r'^([^"]*")(>[ \t]*\n)', bygroups(String, Punctuation)),
278
+ # template overlay delimiter
279
+ (r'^----------*\n', Text, '#pop'),
280
+ (r'^.*\n', String),
281
+ default('#pop'),
282
+ ],
283
+ 'cadl_section': [
284
+ (r'^([ \t]*|[ \t]+.*)\n', using(CadlLexer)),
285
+ default('#pop'),
286
+ ],
287
+ 'rules_section': [
288
+ (r'^[ \t]+.*\n', using(CadlLexer)),
289
+ default('#pop'),
290
+ ],
291
+ 'metadata': [
292
+ (r'\)', Punctuation, '#pop'),
293
+ (r';', Punctuation),
294
+ (r'([Tt]rue|[Ff]alse)', Literal),
295
+ # numbers and version ids
296
+ (r'\d+(\.\d+)*', Literal),
297
+ # Guids
298
+ (r'(\d|[a-fA-F])+(-(\d|[a-fA-F])+){3,}', Literal),
299
+ (r'\w+', Name.Class),
300
+ (r'"', String, 'string'),
301
+ (r'=', Operator),
302
+ (r'[ \t]+', Text),
303
+ default('#pop'),
304
+ ],
305
+ 'root': [
306
+ (r'^(archetype|template_overlay|operational_template|template|'
307
+ r'speciali[sz]e)', Generic.Heading),
308
+ (r'^(language|description|ontology|terminology|annotations|'
309
+ r'component_terminologies|revision_history)[ \t]*\n',
310
+ Generic.Heading, 'odin_section'),
311
+ (r'^(definition)[ \t]*\n', Generic.Heading, 'cadl_section'),
312
+ (r'^(rules)[ \t]*\n', Generic.Heading, 'rules_section'),
313
+ include('archetype_id'),
314
+ (r'[ \t]*\(', Punctuation, 'metadata'),
315
+ include('whitespace'),
316
+ ],
317
+ }