pygments.rb 0.6.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (606) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +6 -6
  4. data/Rakefile +2 -1
  5. data/cache-lexers.rb +1 -1
  6. data/circle.yml +7 -0
  7. data/lib/pygments/lexer.rb +3 -3
  8. data/lib/pygments/popen.rb +67 -30
  9. data/lib/pygments/version.rb +1 -1
  10. data/pygments.rb.gemspec +2 -1
  11. data/test/test_pygments.rb +16 -16
  12. data/vendor/pygments-main/AUTHORS +54 -8
  13. data/vendor/pygments-main/CHANGES +247 -25
  14. data/vendor/pygments-main/LICENSE +1 -1
  15. data/vendor/pygments-main/Makefile +15 -6
  16. data/vendor/pygments-main/README.rst +39 -0
  17. data/vendor/pygments-main/REVISION +1 -1
  18. data/vendor/pygments-main/TODO +0 -3
  19. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +1 -1
  20. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +1 -1
  21. data/vendor/pygments-main/doc/conf.py +3 -11
  22. data/vendor/pygments-main/doc/docs/api.rst +15 -0
  23. data/vendor/pygments-main/doc/docs/cmdline.rst +6 -2
  24. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +4 -3
  25. data/vendor/pygments-main/doc/docs/integrate.rst +11 -15
  26. data/vendor/pygments-main/doc/docs/java.rst +7 -7
  27. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +258 -171
  28. data/vendor/pygments-main/doc/docs/lexers.rst +2 -2
  29. data/vendor/pygments-main/doc/docs/styles.rst +58 -0
  30. data/vendor/pygments-main/doc/docs/tokens.rst +22 -2
  31. data/vendor/pygments-main/doc/docs/unicode.rst +15 -7
  32. data/vendor/pygments-main/doc/faq.rst +17 -21
  33. data/vendor/pygments-main/doc/index.rst +12 -11
  34. data/vendor/pygments-main/doc/languages.rst +10 -7
  35. data/vendor/pygments-main/external/autopygmentize +9 -6
  36. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +70 -52
  37. data/vendor/pygments-main/external/markdown-processor.py +1 -1
  38. data/vendor/pygments-main/external/moin-parser.py +1 -1
  39. data/vendor/pygments-main/external/rst-directive.py +1 -1
  40. data/vendor/pygments-main/pygmentize +2 -1
  41. data/vendor/pygments-main/pygments/__init__.py +14 -15
  42. data/vendor/pygments-main/pygments/cmdline.py +188 -113
  43. data/vendor/pygments-main/pygments/console.py +13 -13
  44. data/vendor/pygments-main/pygments/filter.py +7 -7
  45. data/vendor/pygments-main/pygments/filters/__init__.py +24 -32
  46. data/vendor/pygments-main/pygments/formatter.py +5 -5
  47. data/vendor/pygments-main/pygments/formatters/__init__.py +92 -44
  48. data/vendor/pygments-main/pygments/formatters/_mapping.py +51 -69
  49. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  50. data/vendor/pygments-main/pygments/formatters/html.py +63 -51
  51. data/vendor/pygments-main/pygments/formatters/img.py +25 -22
  52. data/vendor/pygments-main/pygments/formatters/irc.py +182 -0
  53. data/vendor/pygments-main/pygments/formatters/latex.py +34 -22
  54. data/vendor/pygments-main/pygments/formatters/other.py +5 -7
  55. data/vendor/pygments-main/pygments/formatters/rtf.py +28 -31
  56. data/vendor/pygments-main/pygments/formatters/svg.py +1 -2
  57. data/vendor/pygments-main/pygments/formatters/terminal.py +29 -45
  58. data/vendor/pygments-main/pygments/formatters/terminal256.py +118 -31
  59. data/vendor/pygments-main/pygments/lexer.py +120 -34
  60. data/vendor/pygments-main/pygments/lexers/__init__.py +85 -53
  61. data/vendor/pygments-main/pygments/lexers/{_asybuiltins.py → _asy_builtins.py} +7 -7
  62. data/vendor/pygments-main/pygments/lexers/{_clbuiltins.py → _cl_builtins.py} +17 -17
  63. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +72 -0
  64. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1346 -0
  65. data/vendor/pygments-main/pygments/lexers/{_lassobuiltins.py → _lasso_builtins.py} +4699 -4561
  66. data/vendor/pygments-main/pygments/lexers/{_luabuiltins.py → _lua_builtins.py} +91 -51
  67. data/vendor/pygments-main/pygments/lexers/_mapping.py +342 -242
  68. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1172 -0
  69. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +2547 -0
  70. data/vendor/pygments-main/pygments/lexers/{_phpbuiltins.py → _php_builtins.py} +350 -353
  71. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +600 -212
  72. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3084 -30
  73. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1163 -0
  74. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +91 -13
  75. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +419 -0
  76. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1004 -0
  77. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1939 -0
  78. data/vendor/pygments-main/pygments/lexers/actionscript.py +240 -0
  79. data/vendor/pygments-main/pygments/lexers/agile.py +14 -2542
  80. data/vendor/pygments-main/pygments/lexers/algebra.py +221 -0
  81. data/vendor/pygments-main/pygments/lexers/ambient.py +76 -0
  82. data/vendor/pygments-main/pygments/lexers/ampl.py +87 -0
  83. data/vendor/pygments-main/pygments/lexers/apl.py +101 -0
  84. data/vendor/pygments-main/pygments/lexers/archetype.py +318 -0
  85. data/vendor/pygments-main/pygments/lexers/asm.py +276 -81
  86. data/vendor/pygments-main/pygments/lexers/automation.py +374 -0
  87. data/vendor/pygments-main/pygments/lexers/basic.py +500 -0
  88. data/vendor/pygments-main/pygments/lexers/bibtex.py +156 -0
  89. data/vendor/pygments-main/pygments/lexers/business.py +594 -0
  90. data/vendor/pygments-main/pygments/lexers/c_cpp.py +252 -0
  91. data/vendor/pygments-main/pygments/lexers/c_like.py +541 -0
  92. data/vendor/pygments-main/pygments/lexers/capnproto.py +79 -0
  93. data/vendor/pygments-main/pygments/lexers/chapel.py +101 -0
  94. data/vendor/pygments-main/pygments/lexers/clean.py +288 -0
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +24 -5182
  96. data/vendor/pygments-main/pygments/lexers/configs.py +833 -0
  97. data/vendor/pygments-main/pygments/lexers/console.py +114 -0
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +384 -0
  99. data/vendor/pygments-main/pygments/lexers/csound.py +366 -0
  100. data/vendor/pygments-main/pygments/lexers/css.py +689 -0
  101. data/vendor/pygments-main/pygments/lexers/d.py +251 -0
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +6 -6
  103. data/vendor/pygments-main/pygments/lexers/data.py +555 -0
  104. data/vendor/pygments-main/pygments/lexers/diff.py +165 -0
  105. data/vendor/pygments-main/pygments/lexers/dotnet.py +96 -88
  106. data/vendor/pygments-main/pygments/lexers/dsls.py +878 -0
  107. data/vendor/pygments-main/pygments/lexers/dylan.py +289 -0
  108. data/vendor/pygments-main/pygments/lexers/ecl.py +125 -0
  109. data/vendor/pygments-main/pygments/lexers/eiffel.py +65 -0
  110. data/vendor/pygments-main/pygments/lexers/elm.py +121 -0
  111. data/vendor/pygments-main/pygments/lexers/erlang.py +533 -0
  112. data/vendor/pygments-main/pygments/lexers/esoteric.py +275 -0
  113. data/vendor/pygments-main/pygments/lexers/ezhil.py +68 -0
  114. data/vendor/pygments-main/pygments/lexers/factor.py +344 -0
  115. data/vendor/pygments-main/pygments/lexers/fantom.py +250 -0
  116. data/vendor/pygments-main/pygments/lexers/felix.py +273 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +177 -0
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +205 -0
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
  120. data/vendor/pygments-main/pygments/lexers/functional.py +11 -3661
  121. data/vendor/pygments-main/pygments/lexers/go.py +101 -0
  122. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +213 -0
  123. data/vendor/pygments-main/pygments/lexers/graph.py +7 -8
  124. data/vendor/pygments-main/pygments/lexers/graphics.py +553 -0
  125. data/vendor/pygments-main/pygments/lexers/haskell.py +840 -0
  126. data/vendor/pygments-main/pygments/lexers/haxe.py +936 -0
  127. data/vendor/pygments-main/pygments/lexers/hdl.py +172 -145
  128. data/vendor/pygments-main/pygments/lexers/hexdump.py +97 -0
  129. data/vendor/pygments-main/pygments/lexers/html.py +602 -0
  130. data/vendor/pygments-main/pygments/lexers/idl.py +270 -0
  131. data/vendor/pygments-main/pygments/lexers/igor.py +288 -0
  132. data/vendor/pygments-main/pygments/lexers/inferno.py +3 -3
  133. data/vendor/pygments-main/pygments/lexers/installers.py +322 -0
  134. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1343 -0
  135. data/vendor/pygments-main/pygments/lexers/iolang.py +63 -0
  136. data/vendor/pygments-main/pygments/lexers/j.py +146 -0
  137. data/vendor/pygments-main/pygments/lexers/javascript.py +1506 -0
  138. data/vendor/pygments-main/pygments/lexers/julia.py +333 -0
  139. data/vendor/pygments-main/pygments/lexers/jvm.py +232 -186
  140. data/vendor/pygments-main/pygments/lexers/lisp.py +2621 -0
  141. data/vendor/pygments-main/pygments/lexers/make.py +202 -0
  142. data/vendor/pygments-main/pygments/lexers/markup.py +595 -0
  143. data/vendor/pygments-main/pygments/lexers/math.py +11 -2276
  144. data/vendor/pygments-main/pygments/lexers/matlab.py +663 -0
  145. data/vendor/pygments-main/pygments/lexers/ml.py +769 -0
  146. data/vendor/pygments-main/pygments/lexers/modeling.py +358 -0
  147. data/vendor/pygments-main/pygments/lexers/modula2.py +1561 -0
  148. data/vendor/pygments-main/pygments/lexers/monte.py +203 -0
  149. data/vendor/pygments-main/pygments/lexers/ncl.py +1053 -0
  150. data/vendor/pygments-main/pygments/lexers/nimrod.py +159 -0
  151. data/vendor/pygments-main/pygments/lexers/nit.py +64 -0
  152. data/vendor/pygments-main/pygments/lexers/nix.py +136 -0
  153. data/vendor/pygments-main/pygments/lexers/oberon.py +105 -0
  154. data/vendor/pygments-main/pygments/lexers/objective.py +504 -0
  155. data/vendor/pygments-main/pygments/lexers/ooc.py +85 -0
  156. data/vendor/pygments-main/pygments/lexers/other.py +30 -4481
  157. data/vendor/pygments-main/pygments/lexers/parasail.py +79 -0
  158. data/vendor/pygments-main/pygments/lexers/parsers.py +171 -114
  159. data/vendor/pygments-main/pygments/lexers/pascal.py +644 -0
  160. data/vendor/pygments-main/pygments/lexers/pawn.py +199 -0
  161. data/vendor/pygments-main/pygments/lexers/perl.py +616 -0
  162. data/vendor/pygments-main/pygments/lexers/php.py +267 -0
  163. data/vendor/pygments-main/pygments/lexers/praat.py +294 -0
  164. data/vendor/pygments-main/pygments/lexers/prolog.py +306 -0
  165. data/vendor/pygments-main/pygments/lexers/python.py +938 -0
  166. data/vendor/pygments-main/pygments/lexers/qvt.py +152 -0
  167. data/vendor/pygments-main/pygments/lexers/r.py +453 -0
  168. data/vendor/pygments-main/pygments/lexers/rdf.py +195 -24
  169. data/vendor/pygments-main/pygments/lexers/rebol.py +431 -0
  170. data/vendor/pygments-main/pygments/lexers/resource.py +85 -0
  171. data/vendor/pygments-main/pygments/lexers/rnc.py +67 -0
  172. data/vendor/pygments-main/pygments/lexers/roboconf.py +82 -0
  173. data/vendor/pygments-main/pygments/lexers/{_robotframeworklexer.py → robotframework.py} +20 -18
  174. data/vendor/pygments-main/pygments/lexers/ruby.py +519 -0
  175. data/vendor/pygments-main/pygments/lexers/rust.py +209 -0
  176. data/vendor/pygments-main/pygments/lexers/sas.py +228 -0
  177. data/vendor/pygments-main/pygments/lexers/scripting.py +1222 -0
  178. data/vendor/pygments-main/pygments/lexers/shell.py +478 -115
  179. data/vendor/pygments-main/pygments/lexers/smalltalk.py +195 -0
  180. data/vendor/pygments-main/pygments/lexers/smv.py +75 -0
  181. data/vendor/pygments-main/pygments/lexers/snobol.py +83 -0
  182. data/vendor/pygments-main/pygments/lexers/special.py +6 -2
  183. data/vendor/pygments-main/pygments/lexers/sql.py +209 -120
  184. data/vendor/pygments-main/pygments/lexers/stata.py +106 -0
  185. data/vendor/pygments-main/pygments/lexers/supercollider.py +90 -0
  186. data/vendor/pygments-main/pygments/lexers/tcl.py +145 -0
  187. data/vendor/pygments-main/pygments/lexers/templates.py +282 -90
  188. data/vendor/pygments-main/pygments/lexers/testing.py +207 -0
  189. data/vendor/pygments-main/pygments/lexers/text.py +15 -2045
  190. data/vendor/pygments-main/pygments/lexers/textedit.py +169 -0
  191. data/vendor/pygments-main/pygments/lexers/textfmts.py +297 -0
  192. data/vendor/pygments-main/pygments/lexers/theorem.py +458 -0
  193. data/vendor/pygments-main/pygments/lexers/trafficscript.py +54 -0
  194. data/vendor/pygments-main/pygments/lexers/typoscript.py +225 -0
  195. data/vendor/pygments-main/pygments/lexers/urbi.py +133 -0
  196. data/vendor/pygments-main/pygments/lexers/varnish.py +190 -0
  197. data/vendor/pygments-main/pygments/lexers/verification.py +111 -0
  198. data/vendor/pygments-main/pygments/lexers/web.py +13 -4499
  199. data/vendor/pygments-main/pygments/lexers/webmisc.py +979 -0
  200. data/vendor/pygments-main/pygments/lexers/whiley.py +117 -0
  201. data/vendor/pygments-main/pygments/lexers/x10.py +69 -0
  202. data/vendor/pygments-main/pygments/modeline.py +5 -2
  203. data/vendor/pygments-main/pygments/plugin.py +1 -1
  204. data/vendor/pygments-main/pygments/regexopt.py +92 -0
  205. data/vendor/pygments-main/pygments/scanner.py +3 -2
  206. data/vendor/pygments-main/pygments/sphinxext.py +11 -6
  207. data/vendor/pygments-main/pygments/style.py +41 -4
  208. data/vendor/pygments-main/pygments/styles/__init__.py +5 -1
  209. data/vendor/pygments-main/pygments/styles/algol.py +63 -0
  210. data/vendor/pygments-main/pygments/styles/algol_nu.py +63 -0
  211. data/vendor/pygments-main/pygments/styles/arduino.py +98 -0
  212. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  213. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  214. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  215. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  216. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  217. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  218. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  219. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  220. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  221. data/vendor/pygments-main/pygments/styles/lovelace.py +97 -0
  222. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  223. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  224. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  225. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  226. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  227. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  228. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  229. data/vendor/pygments-main/pygments/styles/perldoc.py +2 -2
  230. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  231. data/vendor/pygments-main/pygments/styles/sas.py +41 -0
  232. data/vendor/pygments-main/pygments/styles/stata.py +37 -0
  233. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  234. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  238. data/vendor/pygments-main/pygments/token.py +31 -16
  239. data/vendor/pygments-main/pygments/unistring.py +141 -65
  240. data/vendor/pygments-main/pygments/util.py +129 -33
  241. data/vendor/pygments-main/requirements.txt +5 -0
  242. data/vendor/pygments-main/scripts/check_sources.py +25 -40
  243. data/vendor/pygments-main/scripts/debug_lexer.py +246 -0
  244. data/vendor/pygments-main/scripts/find_error.py +1 -0
  245. data/vendor/pygments-main/scripts/get_vimkw.py +35 -4
  246. data/vendor/pygments-main/setup.cfg +3 -0
  247. data/vendor/pygments-main/setup.py +17 -30
  248. data/vendor/pygments-main/tox.ini +7 -0
  249. metadata +159 -387
  250. data/vendor/pygments-main/ez_setup.py +0 -382
  251. data/vendor/pygments-main/pygments/lexers/_cocoabuiltins.py +0 -73
  252. data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +0 -562
  253. data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +0 -1077
  254. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +0 -13
  255. data/vendor/pygments-main/pygments/lexers/qbasic.py +0 -157
  256. data/vendor/pygments-main/scripts/find_codetags.py +0 -213
  257. data/vendor/pygments-main/scripts/find_error.py +0 -173
  258. data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +0 -37
  259. data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +0 -869
  260. data/vendor/pygments-main/tests/dtds/HTML4.dcl +0 -88
  261. data/vendor/pygments-main/tests/dtds/HTML4.dtd +0 -1092
  262. data/vendor/pygments-main/tests/dtds/HTML4.soc +0 -9
  263. data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +0 -195
  264. data/vendor/pygments-main/tests/dtds/HTMLspec.ent +0 -77
  265. data/vendor/pygments-main/tests/dtds/HTMLsym.ent +0 -241
  266. data/vendor/pygments-main/tests/examplefiles/99_bottles_of_beer.chpl +0 -118
  267. data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +0 -209
  268. data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +0 -102
  269. data/vendor/pygments-main/tests/examplefiles/BOM.js +0 -1
  270. data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +0 -611
  271. data/vendor/pygments-main/tests/examplefiles/Config.in.cache +0 -1973
  272. data/vendor/pygments-main/tests/examplefiles/Constants.mo +0 -158
  273. data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +0 -411
  274. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +0 -578
  275. data/vendor/pygments-main/tests/examplefiles/Error.pmod +0 -38
  276. data/vendor/pygments-main/tests/examplefiles/Errors.scala +0 -18
  277. data/vendor/pygments-main/tests/examplefiles/FakeFile.pike +0 -360
  278. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +0 -66
  279. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +0 -104
  280. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +0 -671
  281. data/vendor/pygments-main/tests/examplefiles/Intro.java +0 -1660
  282. data/vendor/pygments-main/tests/examplefiles/Makefile +0 -1131
  283. data/vendor/pygments-main/tests/examplefiles/Object.st +0 -4394
  284. data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +0 -584
  285. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +0 -23
  286. data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +0 -378
  287. data/vendor/pygments-main/tests/examplefiles/Sorting.mod +0 -470
  288. data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +0 -382
  289. data/vendor/pygments-main/tests/examplefiles/addressbook.proto +0 -30
  290. data/vendor/pygments-main/tests/examplefiles/antlr_ANTLRv3.g +0 -608
  291. data/vendor/pygments-main/tests/examplefiles/antlr_throws +0 -1
  292. data/vendor/pygments-main/tests/examplefiles/apache2.conf +0 -393
  293. data/vendor/pygments-main/tests/examplefiles/as3_test.as +0 -143
  294. data/vendor/pygments-main/tests/examplefiles/as3_test2.as +0 -46
  295. data/vendor/pygments-main/tests/examplefiles/as3_test3.as +0 -3
  296. data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +0 -27
  297. data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +0 -25
  298. data/vendor/pygments-main/tests/examplefiles/badcase.java +0 -2
  299. data/vendor/pygments-main/tests/examplefiles/batchfile.bat +0 -49
  300. data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +0 -308
  301. data/vendor/pygments-main/tests/examplefiles/boot-9.scm +0 -1557
  302. data/vendor/pygments-main/tests/examplefiles/ca65_example +0 -284
  303. data/vendor/pygments-main/tests/examplefiles/cbmbas_example +0 -9
  304. data/vendor/pygments-main/tests/examplefiles/cells.ps +0 -515
  305. data/vendor/pygments-main/tests/examplefiles/ceval.c +0 -2604
  306. data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +0 -13
  307. data/vendor/pygments-main/tests/examplefiles/classes.dylan +0 -125
  308. data/vendor/pygments-main/tests/examplefiles/clojure-weird-keywords.clj +0 -5
  309. data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +0 -10
  310. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +0 -447
  311. data/vendor/pygments-main/tests/examplefiles/core.cljs +0 -52
  312. data/vendor/pygments-main/tests/examplefiles/database.pytb +0 -20
  313. data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +0 -2461
  314. data/vendor/pygments-main/tests/examplefiles/demo.ahk +0 -181
  315. data/vendor/pygments-main/tests/examplefiles/demo.cfm +0 -50
  316. data/vendor/pygments-main/tests/examplefiles/demo.hbs +0 -12
  317. data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +0 -68
  318. data/vendor/pygments-main/tests/examplefiles/dwarf.cw +0 -17
  319. data/vendor/pygments-main/tests/examplefiles/ember.handlebars +0 -33
  320. data/vendor/pygments-main/tests/examplefiles/erl_session +0 -10
  321. data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +0 -1
  322. data/vendor/pygments-main/tests/examplefiles/evil_regex.js +0 -48
  323. data/vendor/pygments-main/tests/examplefiles/example.Rd +0 -78
  324. data/vendor/pygments-main/tests/examplefiles/example.als +0 -217
  325. data/vendor/pygments-main/tests/examplefiles/example.bug +0 -54
  326. data/vendor/pygments-main/tests/examplefiles/example.c +0 -2080
  327. data/vendor/pygments-main/tests/examplefiles/example.ceylon +0 -52
  328. data/vendor/pygments-main/tests/examplefiles/example.chai +0 -6
  329. data/vendor/pygments-main/tests/examplefiles/example.clay +0 -33
  330. data/vendor/pygments-main/tests/examplefiles/example.cls +0 -15
  331. data/vendor/pygments-main/tests/examplefiles/example.cob +0 -3556
  332. data/vendor/pygments-main/tests/examplefiles/example.coffee +0 -27
  333. data/vendor/pygments-main/tests/examplefiles/example.cpp +0 -2363
  334. data/vendor/pygments-main/tests/examplefiles/example.e +0 -124
  335. data/vendor/pygments-main/tests/examplefiles/example.f90 +0 -8
  336. data/vendor/pygments-main/tests/examplefiles/example.feature +0 -16
  337. data/vendor/pygments-main/tests/examplefiles/example.gd +0 -23
  338. data/vendor/pygments-main/tests/examplefiles/example.gi +0 -64
  339. data/vendor/pygments-main/tests/examplefiles/example.groovy +0 -2
  340. data/vendor/pygments-main/tests/examplefiles/example.gs +0 -106
  341. data/vendor/pygments-main/tests/examplefiles/example.gst +0 -7
  342. data/vendor/pygments-main/tests/examplefiles/example.hs +0 -27
  343. data/vendor/pygments-main/tests/examplefiles/example.hx +0 -185
  344. data/vendor/pygments-main/tests/examplefiles/example.i6t +0 -32
  345. data/vendor/pygments-main/tests/examplefiles/example.i7x +0 -45
  346. data/vendor/pygments-main/tests/examplefiles/example.inf +0 -374
  347. data/vendor/pygments-main/tests/examplefiles/example.j +0 -564
  348. data/vendor/pygments-main/tests/examplefiles/example.jag +0 -48
  349. data/vendor/pygments-main/tests/examplefiles/example.java +0 -16
  350. data/vendor/pygments-main/tests/examplefiles/example.kal +0 -75
  351. data/vendor/pygments-main/tests/examplefiles/example.kt +0 -47
  352. data/vendor/pygments-main/tests/examplefiles/example.lagda +0 -19
  353. data/vendor/pygments-main/tests/examplefiles/example.liquid +0 -42
  354. data/vendor/pygments-main/tests/examplefiles/example.lua +0 -250
  355. data/vendor/pygments-main/tests/examplefiles/example.ma +0 -8
  356. data/vendor/pygments-main/tests/examplefiles/example.monkey +0 -152
  357. data/vendor/pygments-main/tests/examplefiles/example.moo +0 -26
  358. data/vendor/pygments-main/tests/examplefiles/example.moon +0 -629
  359. data/vendor/pygments-main/tests/examplefiles/example.mq4 +0 -187
  360. data/vendor/pygments-main/tests/examplefiles/example.mqh +0 -123
  361. data/vendor/pygments-main/tests/examplefiles/example.msc +0 -43
  362. data/vendor/pygments-main/tests/examplefiles/example.ni +0 -57
  363. data/vendor/pygments-main/tests/examplefiles/example.nim +0 -1010
  364. data/vendor/pygments-main/tests/examplefiles/example.nix +0 -80
  365. data/vendor/pygments-main/tests/examplefiles/example.ns2 +0 -69
  366. data/vendor/pygments-main/tests/examplefiles/example.pas +0 -2708
  367. data/vendor/pygments-main/tests/examplefiles/example.pp +0 -8
  368. data/vendor/pygments-main/tests/examplefiles/example.prg +0 -161
  369. data/vendor/pygments-main/tests/examplefiles/example.rb +0 -1852
  370. data/vendor/pygments-main/tests/examplefiles/example.red +0 -257
  371. data/vendor/pygments-main/tests/examplefiles/example.reds +0 -150
  372. data/vendor/pygments-main/tests/examplefiles/example.reg +0 -19
  373. data/vendor/pygments-main/tests/examplefiles/example.rexx +0 -50
  374. data/vendor/pygments-main/tests/examplefiles/example.rhtml +0 -561
  375. data/vendor/pygments-main/tests/examplefiles/example.rkt +0 -743
  376. data/vendor/pygments-main/tests/examplefiles/example.rpf +0 -4
  377. data/vendor/pygments-main/tests/examplefiles/example.sh +0 -22
  378. data/vendor/pygments-main/tests/examplefiles/example.sh-session +0 -19
  379. data/vendor/pygments-main/tests/examplefiles/example.shell-session +0 -45
  380. data/vendor/pygments-main/tests/examplefiles/example.slim +0 -31
  381. data/vendor/pygments-main/tests/examplefiles/example.sls +0 -51
  382. data/vendor/pygments-main/tests/examplefiles/example.sml +0 -156
  383. data/vendor/pygments-main/tests/examplefiles/example.snobol +0 -15
  384. data/vendor/pygments-main/tests/examplefiles/example.stan +0 -110
  385. data/vendor/pygments-main/tests/examplefiles/example.tea +0 -34
  386. data/vendor/pygments-main/tests/examplefiles/example.todotxt +0 -9
  387. data/vendor/pygments-main/tests/examplefiles/example.ts +0 -28
  388. data/vendor/pygments-main/tests/examplefiles/example.u +0 -548
  389. data/vendor/pygments-main/tests/examplefiles/example.weechatlog +0 -9
  390. data/vendor/pygments-main/tests/examplefiles/example.xhtml +0 -376
  391. data/vendor/pygments-main/tests/examplefiles/example.xtend +0 -34
  392. data/vendor/pygments-main/tests/examplefiles/example.yaml +0 -302
  393. data/vendor/pygments-main/tests/examplefiles/example2.aspx +0 -29
  394. data/vendor/pygments-main/tests/examplefiles/example2.msc +0 -79
  395. data/vendor/pygments-main/tests/examplefiles/exampleScript.cfc +0 -241
  396. data/vendor/pygments-main/tests/examplefiles/exampleTag.cfc +0 -18
  397. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +0 -205
  398. data/vendor/pygments-main/tests/examplefiles/example_file.fy +0 -128
  399. data/vendor/pygments-main/tests/examplefiles/firefox.mak +0 -586
  400. data/vendor/pygments-main/tests/examplefiles/flipflop.sv +0 -19
  401. data/vendor/pygments-main/tests/examplefiles/foo.sce +0 -6
  402. data/vendor/pygments-main/tests/examplefiles/format.ml +0 -1213
  403. data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +0 -77
  404. data/vendor/pygments-main/tests/examplefiles/function.mu +0 -1
  405. data/vendor/pygments-main/tests/examplefiles/functional.rst +0 -1472
  406. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +0 -133
  407. data/vendor/pygments-main/tests/examplefiles/genclass.clj +0 -510
  408. data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +0 -193
  409. data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +0 -33
  410. data/vendor/pygments-main/tests/examplefiles/glsl.frag +0 -7
  411. data/vendor/pygments-main/tests/examplefiles/glsl.vert +0 -13
  412. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +0 -22
  413. data/vendor/pygments-main/tests/examplefiles/hash_syntax.rb +0 -5
  414. data/vendor/pygments-main/tests/examplefiles/hello.at +0 -6
  415. data/vendor/pygments-main/tests/examplefiles/hello.golo +0 -5
  416. data/vendor/pygments-main/tests/examplefiles/hello.lsl +0 -12
  417. data/vendor/pygments-main/tests/examplefiles/hello.smali +0 -40
  418. data/vendor/pygments-main/tests/examplefiles/hello.sp +0 -9
  419. data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +0 -1
  420. data/vendor/pygments-main/tests/examplefiles/http_request_example +0 -15
  421. data/vendor/pygments-main/tests/examplefiles/http_response_example +0 -29
  422. data/vendor/pygments-main/tests/examplefiles/hybris_File.hy +0 -174
  423. data/vendor/pygments-main/tests/examplefiles/idl_sample.pro +0 -73
  424. data/vendor/pygments-main/tests/examplefiles/iex_example +0 -23
  425. data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +0 -71
  426. data/vendor/pygments-main/tests/examplefiles/intro.ik +0 -24
  427. data/vendor/pygments-main/tests/examplefiles/ints.php +0 -10
  428. data/vendor/pygments-main/tests/examplefiles/intsyn.fun +0 -675
  429. data/vendor/pygments-main/tests/examplefiles/intsyn.sig +0 -286
  430. data/vendor/pygments-main/tests/examplefiles/irb_heredoc +0 -8
  431. data/vendor/pygments-main/tests/examplefiles/irc.lsp +0 -214
  432. data/vendor/pygments-main/tests/examplefiles/java.properties +0 -16
  433. data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +0 -28
  434. data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +0 -45
  435. data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +0 -713
  436. data/vendor/pygments-main/tests/examplefiles/json.lasso +0 -301
  437. data/vendor/pygments-main/tests/examplefiles/json.lasso9 +0 -213
  438. data/vendor/pygments-main/tests/examplefiles/language.hy +0 -165
  439. data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +0 -13
  440. data/vendor/pygments-main/tests/examplefiles/limbo.b +0 -456
  441. data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +0 -47
  442. data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +0 -43
  443. data/vendor/pygments-main/tests/examplefiles/logos_example.xm +0 -28
  444. data/vendor/pygments-main/tests/examplefiles/ltmain.sh +0 -2849
  445. data/vendor/pygments-main/tests/examplefiles/main.cmake +0 -44
  446. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +0 -679
  447. data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +0 -3
  448. data/vendor/pygments-main/tests/examplefiles/matlab_sample +0 -30
  449. data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +0 -37
  450. data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +0 -455
  451. data/vendor/pygments-main/tests/examplefiles/minehunt.qml +0 -112
  452. data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +0 -4
  453. data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +0 -340
  454. data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +0 -38
  455. data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +0 -95
  456. data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +0 -96
  457. data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +0 -30
  458. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +0 -87
  459. data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +0 -118
  460. data/vendor/pygments-main/tests/examplefiles/numbers.c +0 -12
  461. data/vendor/pygments-main/tests/examplefiles/objc_example.m +0 -179
  462. data/vendor/pygments-main/tests/examplefiles/openedge_example +0 -34
  463. data/vendor/pygments-main/tests/examplefiles/pawn_example +0 -25
  464. data/vendor/pygments-main/tests/examplefiles/perl_misc +0 -62
  465. data/vendor/pygments-main/tests/examplefiles/perl_perl5db +0 -998
  466. data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +0 -120
  467. data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +0 -856
  468. data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +0 -163
  469. data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +0 -567
  470. data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +0 -1223
  471. data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +0 -47
  472. data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +0 -10
  473. data/vendor/pygments-main/tests/examplefiles/psql_session.txt +0 -122
  474. data/vendor/pygments-main/tests/examplefiles/py3_test.txt +0 -2
  475. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +0 -4
  476. data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +0 -14
  477. data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +0 -2
  478. data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +0 -4
  479. data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +0 -234
  480. data/vendor/pygments-main/tests/examplefiles/qbasic_example +0 -2
  481. data/vendor/pygments-main/tests/examplefiles/qsort.prolog +0 -13
  482. data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +0 -38
  483. data/vendor/pygments-main/tests/examplefiles/r6rs-comments.scm +0 -23
  484. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +0 -280
  485. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +0 -2
  486. data/vendor/pygments-main/tests/examplefiles/regex.js +0 -22
  487. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +0 -427
  488. data/vendor/pygments-main/tests/examplefiles/robotframework_test.txt +0 -39
  489. data/vendor/pygments-main/tests/examplefiles/rql-queries.rql +0 -34
  490. data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +0 -11
  491. data/vendor/pygments-main/tests/examplefiles/rust_example.rs +0 -233
  492. data/vendor/pygments-main/tests/examplefiles/scilab.sci +0 -30
  493. data/vendor/pygments-main/tests/examplefiles/scope.cirru +0 -43
  494. data/vendor/pygments-main/tests/examplefiles/session.dylan-console +0 -9
  495. data/vendor/pygments-main/tests/examplefiles/sibling.prolog +0 -19
  496. data/vendor/pygments-main/tests/examplefiles/simple.md +0 -747
  497. data/vendor/pygments-main/tests/examplefiles/smarty_example.html +0 -209
  498. data/vendor/pygments-main/tests/examplefiles/source.lgt +0 -343
  499. data/vendor/pygments-main/tests/examplefiles/sources.list +0 -62
  500. data/vendor/pygments-main/tests/examplefiles/sparql.rq +0 -23
  501. data/vendor/pygments-main/tests/examplefiles/sphere.pov +0 -18
  502. data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +0 -27
  503. data/vendor/pygments-main/tests/examplefiles/squid.conf +0 -30
  504. data/vendor/pygments-main/tests/examplefiles/string.jl +0 -1031
  505. data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +0 -21
  506. data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +0 -3
  507. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +0 -1329
  508. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +0 -225
  509. data/vendor/pygments-main/tests/examplefiles/test.R +0 -185
  510. data/vendor/pygments-main/tests/examplefiles/test.adb +0 -211
  511. data/vendor/pygments-main/tests/examplefiles/test.agda +0 -102
  512. data/vendor/pygments-main/tests/examplefiles/test.apl +0 -26
  513. data/vendor/pygments-main/tests/examplefiles/test.asy +0 -131
  514. data/vendor/pygments-main/tests/examplefiles/test.awk +0 -121
  515. data/vendor/pygments-main/tests/examplefiles/test.bb +0 -95
  516. data/vendor/pygments-main/tests/examplefiles/test.bmx +0 -145
  517. data/vendor/pygments-main/tests/examplefiles/test.boo +0 -39
  518. data/vendor/pygments-main/tests/examplefiles/test.bro +0 -250
  519. data/vendor/pygments-main/tests/examplefiles/test.cs +0 -374
  520. data/vendor/pygments-main/tests/examplefiles/test.css +0 -54
  521. data/vendor/pygments-main/tests/examplefiles/test.cu +0 -36
  522. data/vendor/pygments-main/tests/examplefiles/test.cyp +0 -123
  523. data/vendor/pygments-main/tests/examplefiles/test.d +0 -135
  524. data/vendor/pygments-main/tests/examplefiles/test.dart +0 -23
  525. data/vendor/pygments-main/tests/examplefiles/test.dtd +0 -89
  526. data/vendor/pygments-main/tests/examplefiles/test.ebnf +0 -31
  527. data/vendor/pygments-main/tests/examplefiles/test.ec +0 -605
  528. data/vendor/pygments-main/tests/examplefiles/test.ecl +0 -58
  529. data/vendor/pygments-main/tests/examplefiles/test.eh +0 -315
  530. data/vendor/pygments-main/tests/examplefiles/test.erl +0 -169
  531. data/vendor/pygments-main/tests/examplefiles/test.evoque +0 -33
  532. data/vendor/pygments-main/tests/examplefiles/test.fan +0 -818
  533. data/vendor/pygments-main/tests/examplefiles/test.flx +0 -57
  534. data/vendor/pygments-main/tests/examplefiles/test.gdc +0 -13
  535. data/vendor/pygments-main/tests/examplefiles/test.groovy +0 -97
  536. data/vendor/pygments-main/tests/examplefiles/test.html +0 -339
  537. data/vendor/pygments-main/tests/examplefiles/test.idr +0 -93
  538. data/vendor/pygments-main/tests/examplefiles/test.ini +0 -10
  539. data/vendor/pygments-main/tests/examplefiles/test.java +0 -653
  540. data/vendor/pygments-main/tests/examplefiles/test.jsp +0 -24
  541. data/vendor/pygments-main/tests/examplefiles/test.maql +0 -45
  542. data/vendor/pygments-main/tests/examplefiles/test.mask +0 -41
  543. data/vendor/pygments-main/tests/examplefiles/test.mod +0 -374
  544. data/vendor/pygments-main/tests/examplefiles/test.moo +0 -51
  545. data/vendor/pygments-main/tests/examplefiles/test.myt +0 -166
  546. data/vendor/pygments-main/tests/examplefiles/test.nim +0 -93
  547. data/vendor/pygments-main/tests/examplefiles/test.opa +0 -10
  548. data/vendor/pygments-main/tests/examplefiles/test.p6 +0 -252
  549. data/vendor/pygments-main/tests/examplefiles/test.pan +0 -54
  550. data/vendor/pygments-main/tests/examplefiles/test.pas +0 -743
  551. data/vendor/pygments-main/tests/examplefiles/test.php +0 -507
  552. data/vendor/pygments-main/tests/examplefiles/test.pig +0 -148
  553. data/vendor/pygments-main/tests/examplefiles/test.plot +0 -333
  554. data/vendor/pygments-main/tests/examplefiles/test.ps1 +0 -108
  555. data/vendor/pygments-main/tests/examplefiles/test.pwn +0 -253
  556. data/vendor/pygments-main/tests/examplefiles/test.pypylog +0 -1839
  557. data/vendor/pygments-main/tests/examplefiles/test.r3 +0 -114
  558. data/vendor/pygments-main/tests/examplefiles/test.rb +0 -177
  559. data/vendor/pygments-main/tests/examplefiles/test.rhtml +0 -43
  560. data/vendor/pygments-main/tests/examplefiles/test.rsl +0 -111
  561. data/vendor/pygments-main/tests/examplefiles/test.scaml +0 -8
  562. data/vendor/pygments-main/tests/examplefiles/test.ssp +0 -12
  563. data/vendor/pygments-main/tests/examplefiles/test.swift +0 -65
  564. data/vendor/pygments-main/tests/examplefiles/test.tcsh +0 -830
  565. data/vendor/pygments-main/tests/examplefiles/test.vb +0 -407
  566. data/vendor/pygments-main/tests/examplefiles/test.vhdl +0 -161
  567. data/vendor/pygments-main/tests/examplefiles/test.xqy +0 -138
  568. data/vendor/pygments-main/tests/examplefiles/test.xsl +0 -23
  569. data/vendor/pygments-main/tests/examplefiles/test.zep +0 -33
  570. data/vendor/pygments-main/tests/examplefiles/test2.pypylog +0 -120
  571. data/vendor/pygments-main/tests/examplefiles/truncated.pytb +0 -15
  572. data/vendor/pygments-main/tests/examplefiles/type.lisp +0 -1218
  573. data/vendor/pygments-main/tests/examplefiles/underscore.coffee +0 -603
  574. data/vendor/pygments-main/tests/examplefiles/unicode.applescript +0 -5
  575. data/vendor/pygments-main/tests/examplefiles/unicode.go +0 -10
  576. data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +0 -11
  577. data/vendor/pygments-main/tests/examplefiles/unix-io.lid +0 -37
  578. data/vendor/pygments-main/tests/examplefiles/vbnet_test.bas +0 -29
  579. data/vendor/pygments-main/tests/examplefiles/vctreestatus_hg +0 -4
  580. data/vendor/pygments-main/tests/examplefiles/vimrc +0 -21
  581. data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +0 -3
  582. data/vendor/pygments-main/tests/examplefiles/while.pov +0 -13
  583. data/vendor/pygments-main/tests/examplefiles/wiki.factor +0 -384
  584. data/vendor/pygments-main/tests/examplefiles/xml_example +0 -1897
  585. data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +0 -798
  586. data/vendor/pygments-main/tests/run.py +0 -44
  587. data/vendor/pygments-main/tests/string_asserts.py +0 -22
  588. data/vendor/pygments-main/tests/support.py +0 -15
  589. data/vendor/pygments-main/tests/support/tags +0 -36
  590. data/vendor/pygments-main/tests/test_basic_api.py +0 -309
  591. data/vendor/pygments-main/tests/test_cfm.py +0 -46
  592. data/vendor/pygments-main/tests/test_clexer.py +0 -236
  593. data/vendor/pygments-main/tests/test_cmdline.py +0 -106
  594. data/vendor/pygments-main/tests/test_examplefiles.py +0 -110
  595. data/vendor/pygments-main/tests/test_html_formatter.py +0 -180
  596. data/vendor/pygments-main/tests/test_latex_formatter.py +0 -57
  597. data/vendor/pygments-main/tests/test_lexers_other.py +0 -68
  598. data/vendor/pygments-main/tests/test_objectiveclexer.py +0 -81
  599. data/vendor/pygments-main/tests/test_perllexer.py +0 -137
  600. data/vendor/pygments-main/tests/test_qbasiclexer.py +0 -43
  601. data/vendor/pygments-main/tests/test_regexlexer.py +0 -54
  602. data/vendor/pygments-main/tests/test_rtf_formatter.py +0 -109
  603. data/vendor/pygments-main/tests/test_string_asserts.py +0 -39
  604. data/vendor/pygments-main/tests/test_token.py +0 -46
  605. data/vendor/pygments-main/tests/test_using_api.py +0 -40
  606. data/vendor/pygments-main/tests/test_util.py +0 -135
@@ -0,0 +1,85 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.ooc
4
+ ~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for the Ooc language.
7
+
8
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ from pygments.lexer import RegexLexer, bygroups, words
13
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
14
+ Number, Punctuation
15
+
16
+ __all__ = ['OocLexer']
17
+
18
+
19
+ class OocLexer(RegexLexer):
20
+ """
21
+ For `Ooc <http://ooc-lang.org/>`_ source code
22
+
23
+ .. versionadded:: 1.2
24
+ """
25
+ name = 'Ooc'
26
+ aliases = ['ooc']
27
+ filenames = ['*.ooc']
28
+ mimetypes = ['text/x-ooc']
29
+
30
+ tokens = {
31
+ 'root': [
32
+ (words((
33
+ 'class', 'interface', 'implement', 'abstract', 'extends', 'from',
34
+ 'this', 'super', 'new', 'const', 'final', 'static', 'import',
35
+ 'use', 'extern', 'inline', 'proto', 'break', 'continue',
36
+ 'fallthrough', 'operator', 'if', 'else', 'for', 'while', 'do',
37
+ 'switch', 'case', 'as', 'in', 'version', 'return', 'true',
38
+ 'false', 'null'), prefix=r'\b', suffix=r'\b'),
39
+ Keyword),
40
+ (r'include\b', Keyword, 'include'),
41
+ (r'(cover)([ \t]+)(from)([ \t]+)(\w+[*@]?)',
42
+ bygroups(Keyword, Text, Keyword, Text, Name.Class)),
43
+ (r'(func)((?:[ \t]|\\\n)+)(~[a-z_]\w*)',
44
+ bygroups(Keyword, Text, Name.Function)),
45
+ (r'\bfunc\b', Keyword),
46
+ # Note: %= and ^= not listed on http://ooc-lang.org/syntax
47
+ (r'//.*', Comment),
48
+ (r'(?s)/\*.*?\*/', Comment.Multiline),
49
+ (r'(==?|\+=?|-[=>]?|\*=?|/=?|:=|!=?|%=?|\?|>{1,3}=?|<{1,3}=?|\.\.|'
50
+ r'&&?|\|\|?|\^=?)', Operator),
51
+ (r'(\.)([ \t]*)([a-z]\w*)', bygroups(Operator, Text,
52
+ Name.Function)),
53
+ (r'[A-Z][A-Z0-9_]+', Name.Constant),
54
+ (r'[A-Z]\w*([@*]|\[[ \t]*\])?', Name.Class),
55
+
56
+ (r'([a-z]\w*(?:~[a-z]\w*)?)((?:[ \t]|\\\n)*)(?=\()',
57
+ bygroups(Name.Function, Text)),
58
+ (r'[a-z]\w*', Name.Variable),
59
+
60
+ # : introduces types
61
+ (r'[:(){}\[\];,]', Punctuation),
62
+
63
+ (r'0x[0-9a-fA-F]+', Number.Hex),
64
+ (r'0c[0-9]+', Number.Oct),
65
+ (r'0b[01]+', Number.Bin),
66
+ (r'[0-9_]\.[0-9_]*(?!\.)', Number.Float),
67
+ (r'[0-9_]+', Number.Decimal),
68
+
69
+ (r'"(?:\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\"])*"',
70
+ String.Double),
71
+ (r"'(?:\\.|\\[0-9]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'",
72
+ String.Char),
73
+ (r'@', Punctuation), # pointer dereference
74
+ (r'\.', Punctuation), # imports or chain operator
75
+
76
+ (r'\\[ \t\n]', Text),
77
+ (r'[ \t]+', Text),
78
+ ],
79
+ 'include': [
80
+ (r'[\w/]+', Name),
81
+ (r',', Punctuation),
82
+ (r'[ \t]', Text),
83
+ (r'[;\n]', Text, '#pop'),
84
+ ],
85
+ }
@@ -3,4490 +3,39 @@
3
3
  pygments.lexers.other
4
4
  ~~~~~~~~~~~~~~~~~~~~~
5
5
 
6
- Lexers for other languages.
6
+ Just export lexer classes previously contained in this module.
7
7
 
8
- :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
12
- import re
13
-
14
- from pygments.lexer import RegexLexer, include, bygroups, using, \
15
- this, combined, ExtendedRegexLexer, default
16
- from pygments.token import Error, Punctuation, Literal, Token, \
17
- Text, Comment, Operator, Keyword, Name, String, Number, Generic, \
18
- Whitespace
19
- from pygments.util import get_bool_opt
20
- from pygments.lexers.web import HtmlLexer
21
-
22
- from pygments.lexers._openedgebuiltins import OPENEDGEKEYWORDS
23
- from pygments.lexers._robotframeworklexer import RobotFrameworkLexer
24
-
25
- # backwards compatibility
26
12
  from pygments.lexers.sql import SqlLexer, MySqlLexer, SqliteConsoleLexer
27
13
  from pygments.lexers.shell import BashLexer, BashSessionLexer, BatchLexer, \
28
- TcshLexer
29
-
30
- __all__ = ['BrainfuckLexer', 'BefungeLexer', 'RedcodeLexer', 'MOOCodeLexer',
31
- 'SmalltalkLexer', 'LogtalkLexer', 'GnuplotLexer', 'PovrayLexer',
32
- 'AppleScriptLexer', 'ModelicaLexer', 'RebolLexer', 'ABAPLexer',
33
- 'NewspeakLexer', 'GherkinLexer', 'AsymptoteLexer', 'PostScriptLexer',
34
- 'AutohotkeyLexer', 'GoodDataCLLexer', 'MaqlLexer', 'ProtoBufLexer',
35
- 'HybrisLexer', 'AwkLexer', 'Cfengine3Lexer', 'SnobolLexer',
36
- 'ECLLexer', 'UrbiscriptLexer', 'OpenEdgeLexer', 'BroLexer',
37
- 'MscgenLexer', 'KconfigLexer', 'VGLLexer', 'SourcePawnLexer',
38
- 'RobotFrameworkLexer', 'PuppetLexer', 'NSISLexer', 'RPMSpecLexer',
39
- 'CbmBasicV2Lexer', 'AutoItLexer', 'RexxLexer', 'APLLexer',
40
- 'LSLLexer', 'AmbientTalkLexer', 'PawnLexer', 'VCTreeStatusLexer',
41
- 'RslLexer', 'PanLexer', 'RedLexer', 'AlloyLexer']
42
-
43
-
44
- class LSLLexer(RegexLexer):
45
- """
46
- For Second Life's Linden Scripting Language source code.
47
- """
48
-
49
- name = 'LSL'
50
- aliases = ['lsl']
51
- filenames = ['*.lsl']
52
- mimetypes = ['text/x-lsl']
53
-
54
- flags = re.MULTILINE
55
-
56
- lsl_keywords = r'\b(?:do|else|for|if|jump|return|while)\b'
57
- lsl_types = r'\b(?:float|integer|key|list|quaternion|rotation|string|vector)\b'
58
- lsl_states = r'\b(?:(?:state)\s+\w+|default)\b'
59
- lsl_events = r'\b(?:state_(?:entry|exit)|touch(?:_(?:start|end))?|(?:land_)?collision(?:_(?:start|end))?|timer|listen|(?:no_)?sensor|control|(?:not_)?at_(?:rot_)?target|money|email|run_time_permissions|changed|attach|dataserver|moving_(?:start|end)|link_message|(?:on|object)_rez|remote_data|http_re(?:sponse|quest)|path_update|transaction_result)\b'
60
- lsl_functions_builtin = r'\b(?:ll(?:ReturnObjectsBy(?:ID|Owner)|Json(?:2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(?:Mag|Norm|Dist)|Rot(?:Between|2(?:Euler|Fwd|Left|Up))|(?:Euler|Axes)2Rot|Whisper|(?:Region|Owner)?Say|Shout|Listen(?:Control|Remove)?|Sensor(?:Repeat|Remove)?|Detected(?:Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|(?:[GS]et)(?:AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(?:Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(?:Scale|Offset|Rotate)Texture|(?:Rot)?Target(?:Remove)?|(?:Stop)?MoveToTarget|Apply(?:Rotational)?Impulse|Set(?:KeyframedMotion|ContentType|RegionPos|(?:Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(?:Queueing|Radius)|Vehicle(?:Type|(?:Float|Vector|Rotation)Param)|(?:Touch|Sit)?Text|Camera(?:Eye|At)Offset|PrimitiveParams|ClickAction|Link(?:Alpha|Color|PrimitiveParams(?:Fast)?|Texture(?:Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get(?:(?:Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(?:PrimitiveParams|Number(?:OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(?:Details|PermMask|PrimCount)|Parcel(?:MaxPrims|Details|Prim(?:Count|Owners))|Attached|(?:SPMax|Free|Used)Memory|Region(?:Name|TimeDilation|FPS|Corner|AgentCount)|Root(?:Position|Rotation)|UnixTime|(?:Parcel|Region)Flags|(?:Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(?:Prims|NotecardLines|Sides)|Animation(?:List)?|(?:Camera|Local)(?:Pos|Rot)|Vel|Accel|Omega|Time(?:stamp|OfDay)|(?:Object|CenterOf)?Mass|MassMKS|Energy|Owner|(?:Owner)?Key|SunDirection|Texture(?:Offset|Scale|Rot)|Inventory(?:Number|Name|Key|Type|Creator|PermMask)|Permissions(?:Key)?|StartParameter|List(?:Length|EntryType)|Date|Agent(?:Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(?:Name|State))|(?:Get|Reset|GetAndReset)Time|PlaySound(?:Slave)?|LoopSound(?:Master|Slave)?|(?:Trigger|Stop|Preload)Sound|(?:(?:Get|Delete)Sub|Insert)String|To(?:Upper|Lower)|Give(?:InventoryList|Money)|RezObject|(?:Stop)?LookAt|Sleep|CollisionFilter|(?:Take|Release)Controls|DetachFromAvatar|AttachToAvatar(?:Temp)?|InstantMessage|(?:GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(?:Length|Trim)|(?:Start|Stop)Animation|TargetOmega|RequestPermissions|(?:Create|Break)Link|BreakAllLinks|(?:Give|Remove)Inventory|Water|PassTouches|Request(?:Agent|Inventory)Data|TeleportAgent(?:Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(?:Axis|Angle)|A(?:cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(?:CSV|Integer|Json|Float|String|Key|Vector|Rot|List(?:Strided)?)|DeleteSubList|List(?:Statistics|Sort|Randomize|(?:Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(?:CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(?:Slope|Normal|Contour)|GroundRepel|(?:Set|Remove)VehicleFlags|(?:AvatarOn)?(?:Link)?SitTarget|Script(?:Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(?:Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(?:Integer|String)ToBase64|XorBase64|Log(?:10)?|Base64To(?:String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(?:Load|Release|(?:E|Une)scape)URL|ParcelMedia(?:CommandList|Query)|ModPow|MapDestination|(?:RemoveFrom|AddTo|Reset)Land(?:Pass|Ban)List|(?:Set|Clear)CameraParams|HTTP(?:Request|Response)|TextBox|DetectedTouch(?:UV|Face|Pos|(?:N|Bin)ormal|ST)|(?:MD5|SHA1|DumpList2)String|Request(?:Secure)?URL|Clear(?:Prim|Link)Media|(?:Link)?ParticleSystem|(?:Get|Request)(?:Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(?:Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\b'
61
- lsl_constants_float = r'\b(?:DEG_TO_RAD|PI(?:_BY_TWO)?|RAD_TO_DEG|SQRT2|TWO_PI)\b'
62
- lsl_constants_integer = r'\b(?:JSON_APPEND|STATUS_(?:PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(?:_OBJECT)?|(?:DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(?:FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(?:_(?:BY_(?:LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(?:PARCEL(?:_OWNER)?|REGION)))?|CAMERA_(?:PITCH|DISTANCE|BEHINDNESS_(?:ANGLE|LAG)|(?:FOCUS|POSITION)(?:_(?:THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(?:ROOT|SET|ALL_(?:OTHERS|CHILDREN)|THIS)|ACTIVE|PASSIVE|SCRIPTED|CONTROL_(?:FWD|BACK|(?:ROT_)?(?:LEFT|RIGHT)|UP|DOWN|(?:ML_)?LBUTTON)|PERMISSION_(?:RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(?:CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(?:TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(?:INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(?:_START)?|TELEPORT|MEDIA)|OBJECT_(?:(?:PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_ON_REZ|NAME|DESC|POS|PRIM_EQUIVALENCE|RETURN_(?:PARCEL(?:_OWNER)?|REGION)|ROO?T|VELOCITY|OWNER|GROUP|CREATOR|ATTACHED_POINT|RENDER_WEIGHT|PATHFINDING_TYPE|(?:RUNNING|TOTAL)_SCRIPT_COUNT|SCRIPT_(?:MEMORY|TIME))|TYPE_(?:INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(?:DEBUG|PUBLIC)_CHANNEL|ATTACH_(?:AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](?:SHOULDER|HAND|FOOT|EAR|EYE|[UL](?:ARM|LEG)|HIP)|(?:LEFT|RIGHT)_PEC|HUD_(?:CENTER_[12]|TOP_(?:RIGHT|CENTER|LEFT)|BOTTOM(?:_(?:RIGHT|LEFT))?))|LAND_(?:LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(?:ONLINE|NAME|BORN|SIM_(?:POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(?:ON_FILE|USED)|REMOTE_DATA_(?:CHANNEL|REQUEST|REPLY)|PSYS_(?:PART_(?:BF_(?:ZERO|ONE(?:_MINUS_(?:DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(?:START|END)_(?:COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(?:RIBBON|WIND|INTERP_(?:COLOR|SCALE)|BOUNCE|FOLLOW_(?:SRC|VELOCITY)|TARGET_(?:POS|LINEAR)|EMISSIVE)_MASK)|SRC_(?:MAX_AGE|PATTERN|ANGLE_(?:BEGIN|END)|BURST_(?:RATE|PART_COUNT|RADIUS|SPEED_(?:MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(?:DROP|EXPLODE|ANGLE(?:_CONE(?:_EMPTY)?)?)))|VEHICLE_(?:REFERENCE_FRAME|TYPE_(?:NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(?:LINEAR|ANGULAR)_(?:FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(?:HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(?:LINEAR|ANGULAR)_(?:DEFLECTION_(?:EFFICIENCY|TIMESCALE)|MOTOR_(?:DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(?:EFFICIENCY|TIMESCALE)|BANKING_(?:EFFICIENCY|MIX|TIMESCALE)|FLAG_(?:NO_DEFLECTION_UP|LIMIT_(?:ROLL_ONLY|MOTOR_UP)|HOVER_(?:(?:WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(?:STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(?:TYPE(?:_(?:BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(?:DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(?:_(?:STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(?:NONE|LOW|MEDIUM|HIGH)|BUMP_(?:NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(?:DEFAULT|PLANAR)|SCULPT_(?:TYPE_(?:SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(?:MIRROR|INVERT))|PHYSICS(?:_(?:SHAPE_(?:CONVEX|NONE|PRIM|TYPE)))?|(?:POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(?:ALT_IMAGE_ENABLE|CONTROLS|(?:CURRENT|HOME)_URL|AUTO_(?:LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(?:WIDTH|HEIGHT)_PIXELS|WHITELIST(?:_ENABLE)?|PERMS_(?:INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(?:STANDARD|MINI)|PERM_(?:NONE|OWNER|GROUP|ANYONE)|MAX_(?:URL_LENGTH|WHITELIST_(?:SIZE|COUNT)|(?:WIDTH|HEIGHT)_PIXELS)))|MASK_(?:BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(?:TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(?:MEDIA_COMMAND_(?:STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(?:ALLOW_(?:FLY|(?:GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(?:GROUP_)?OBJECTS)|USE_(?:ACCESS_(?:GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(?:GROUP|ALL)_OBJECT_ENTRY)|COUNT_(?:TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(?:NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(?:MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(?:_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(?:HIDE|DEFAULT)|REGION_FLAG_(?:ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(?:COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(?:METHOD|MIMETYPE|BODY_(?:MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|STRING_(?:TRIM(?:_(?:HEAD|TAIL))?)|CLICK_ACTION_(?:NONE|TOUCH|SIT|BUY|PAY|OPEN(?:_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(?:NONE|SCRIPT_MEMORY)|RC_(?:DATA_FLAGS|DETECT_PHANTOM|GET_(?:LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(?:TYPES|AGENTS|(?:NON)?PHYSICAL|LAND))|RCERR_(?:CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(?:ALLOWED_(?:AGENT|GROUP)_(?:ADD|REMOVE)|BANNED_AGENT_(?:ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(?:COMMAND|CMD_(?:PLAY|STOP|PAUSE|SET_MODE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(?:GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(?:CMD_(?:(?:SMOOTH_)?STOP|JUMP)|DESIRED_(?:TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(?:_(?:[ABCD]|NONE))?|MAX_(?:DECEL|TURN_RADIUS|(?:ACCEL|SPEED)))|PURSUIT_(?:OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(?:CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(?:EVADE_(?:HIDDEN|SPOTTED)|FAILURE_(?:DYNAMIC_PATHFINDING_DISABLED|INVALID_(?:GOAL|START)|NO_(?:NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(?:PARCEL_)?UNREACHABLE)|(?:GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(?:_(?:FAST|NONE|SLOW))?|CONTENT_TYPE_(?:ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(?:RADIUS|STATIC)|(?:PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(?:AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\b'
63
- lsl_constants_integer_boolean = r'\b(?:FALSE|TRUE)\b'
64
- lsl_constants_rotation = r'\b(?:ZERO_ROTATION)\b'
65
- lsl_constants_string = r'\b(?:EOF|JSON_(?:ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(?:BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(?:GRANTED|DENIED))\b'
66
- lsl_constants_vector = r'\b(?:TOUCH_INVALID_(?:TEXCOORD|VECTOR)|ZERO_VECTOR)\b'
67
- lsl_invalid_broken = r'\b(?:LAND_(?:LARGE|MEDIUM|SMALL)_BRUSH)\b'
68
- lsl_invalid_deprecated = r'\b(?:ATTACH_[LR]PEC|DATA_RATING|OBJECT_ATTACHMENT_(?:GEOMETRY_BYTES|SURFACE_AREA)|PRIM_(?:CAST_SHADOWS|MATERIAL_LIGHT|TYPE_LEGACY)|PSYS_SRC_(?:INNER|OUTER)ANGLE|VEHICLE_FLAG_NO_FLY_UP|ll(?:Cloud|Make(?:Explosion|Fountain|Smoke|Fire)|RemoteDataSetRegion|Sound(?:Preload)?|XorBase64Strings(?:Correct)?))\b'
69
- lsl_invalid_illegal = r'\b(?:event)\b'
70
- lsl_invalid_unimplemented = r'\b(?:CHARACTER_(?:MAX_ANGULAR_(?:ACCEL|SPEED)|TURN_SPEED_MULTIPLIER)|PERMISSION_(?:CHANGE_(?:JOINTS|PERMISSIONS)|RELEASE_OWNERSHIP|REMAP_CONTROLS)|PRIM_PHYSICS_MATERIAL|PSYS_SRC_OBJ_REL_MASK|ll(?:CollisionSprite|(?:Stop)?PointAt|(?:(?:Refresh|Set)Prim)URL|(?:Take|Release)Camera|RemoteLoadScript))\b'
71
- lsl_reserved_godmode = r'\b(?:ll(?:GodLikeRezObject|Set(?:Inventory|Object)PermMask))\b'
72
- lsl_reserved_log = r'\b(?:print)\b'
73
- lsl_operators = r'\+\+|\-\-|<<|>>|&&?|\|\|?|\^|~|[!%<>=*+\-\/]=?'
74
-
75
- tokens = {
76
- 'root':
77
- [
78
- (r'//.*?\n', Comment.Single),
79
- (r'/\*', Comment.Multiline, 'comment'),
80
- (r'"', String.Double, 'string'),
81
- (lsl_keywords, Keyword),
82
- (lsl_types, Keyword.Type),
83
- (lsl_states, Name.Class),
84
- (lsl_events, Name.Builtin),
85
- (lsl_functions_builtin, Name.Function),
86
- (lsl_constants_float, Keyword.Constant),
87
- (lsl_constants_integer, Keyword.Constant),
88
- (lsl_constants_integer_boolean, Keyword.Constant),
89
- (lsl_constants_rotation, Keyword.Constant),
90
- (lsl_constants_string, Keyword.Constant),
91
- (lsl_constants_vector, Keyword.Constant),
92
- (lsl_invalid_broken, Error),
93
- (lsl_invalid_deprecated, Error),
94
- (lsl_invalid_illegal, Error),
95
- (lsl_invalid_unimplemented, Error),
96
- (lsl_reserved_godmode, Keyword.Reserved),
97
- (lsl_reserved_log, Keyword.Reserved),
98
- (r'\b([a-zA-Z_]\w*)\b', Name.Variable),
99
- (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d*', Number.Float),
100
- (r'(\d+\.\d*|\.\d+)', Number.Float),
101
- (r'0[xX][0-9a-fA-F]+', Number.Hex),
102
- (r'\d+', Number.Integer),
103
- (lsl_operators, Operator),
104
- (r':=?', Error),
105
- (r'[,;{}\(\)\[\]]', Punctuation),
106
- (r'\n+', Whitespace),
107
- (r'\s+', Whitespace)
108
- ],
109
- 'comment':
110
- [
111
- (r'[^*/]+', Comment.Multiline),
112
- (r'/\*', Comment.Multiline, '#push'),
113
- (r'\*/', Comment.Multiline, '#pop'),
114
- (r'[*/]', Comment.Multiline)
115
- ],
116
- 'string':
117
- [
118
- (r'\\([nt"\\])', String.Escape),
119
- (r'"', String.Double, '#pop'),
120
- (r'\\.', Error),
121
- (r'[^"\\]+', String.Double),
122
- ]
123
- }
124
-
125
-
126
- class ECLLexer(RegexLexer):
127
- """
128
- Lexer for the declarative big-data `ECL
129
- <http://hpccsystems.com/community/docs/ecl-language-reference/html>`_
130
- language.
131
-
132
- .. versionadded:: 1.5
133
- """
134
-
135
- name = 'ECL'
136
- aliases = ['ecl']
137
- filenames = ['*.ecl']
138
- mimetypes = ['application/x-ecl']
139
-
140
- flags = re.IGNORECASE | re.MULTILINE
141
-
142
- tokens = {
143
- 'root': [
144
- include('whitespace'),
145
- include('statements'),
146
- ],
147
- 'whitespace': [
148
- (r'\s+', Text),
149
- (r'\/\/.*', Comment.Single),
150
- (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment.Multiline),
151
- ],
152
- 'statements': [
153
- include('types'),
154
- include('keywords'),
155
- include('functions'),
156
- include('hash'),
157
- (r'"', String, 'string'),
158
- (r'\'', String, 'string'),
159
- (r'(\d+\.\d*|\.\d+|\d+)e[+-]?\d+[lu]*', Number.Float),
160
- (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
161
- (r'0x[0-9a-f]+[lu]*', Number.Hex),
162
- (r'0[0-7]+[lu]*', Number.Oct),
163
- (r'\d+[LlUu]*', Number.Integer),
164
- (r'\*/', Error),
165
- (r'[~!%^&*+=|?:<>/-]+', Operator),
166
- (r'[{}()\[\],.;]', Punctuation),
167
- (r'[a-z_]\w*', Name),
168
- ],
169
- 'hash': [
170
- (r'^#.*$', Comment.Preproc),
171
- ],
172
- 'types': [
173
- (r'(RECORD|END)\D', Keyword.Declaration),
174
- (r'((?:ASCII|BIG_ENDIAN|BOOLEAN|DATA|DECIMAL|EBCDIC|INTEGER|PATTERN|'
175
- r'QSTRING|REAL|RECORD|RULE|SET OF|STRING|TOKEN|UDECIMAL|UNICODE|'
176
- r'UNSIGNED|VARSTRING|VARUNICODE)\d*)(\s+)',
177
- bygroups(Keyword.Type, Text)),
178
- ],
179
- 'keywords': [
180
- (r'(APPLY|ASSERT|BUILD|BUILDINDEX|EVALUATE|FAIL|KEYDIFF|KEYPATCH|'
181
- r'LOADXML|NOTHOR|NOTIFY|OUTPUT|PARALLEL|SEQUENTIAL|SOAPCALL|WAIT'
182
- r'CHECKPOINT|DEPRECATED|FAILCODE|FAILMESSAGE|FAILURE|GLOBAL|'
183
- r'INDEPENDENT|ONWARNING|PERSIST|PRIORITY|RECOVERY|STORED|SUCCESS|'
184
- r'WAIT|WHEN)\b', Keyword.Reserved),
185
- # These are classed differently, check later
186
- (r'(ALL|AND|ANY|AS|ATMOST|BEFORE|BEGINC\+\+|BEST|BETWEEN|CASE|CONST|'
187
- r'COUNTER|CSV|DESCEND|ENCRYPT|ENDC\+\+|ENDMACRO|EXCEPT|EXCLUSIVE|'
188
- r'EXPIRE|EXPORT|EXTEND|FALSE|FEW|FIRST|FLAT|FULL|FUNCTION|GROUP|'
189
- r'HEADER|HEADING|HOLE|IFBLOCK|IMPORT|IN|JOINED|KEEP|KEYED|LAST|'
190
- r'LEFT|LIMIT|LOAD|LOCAL|LOCALE|LOOKUP|MACRO|MANY|MAXCOUNT|'
191
- r'MAXLENGTH|MIN SKEW|MODULE|INTERFACE|NAMED|NOCASE|NOROOT|NOSCAN|'
192
- r'NOSORT|NOT|OF|ONLY|OPT|OR|OUTER|OVERWRITE|PACKED|PARTITION|'
193
- r'PENALTY|PHYSICALLENGTH|PIPE|QUOTE|RELATIONSHIP|REPEAT|RETURN|'
194
- r'RIGHT|SCAN|SELF|SEPARATOR|SERVICE|SHARED|SKEW|SKIP|SQL|STORE|'
195
- r'TERMINATOR|THOR|THRESHOLD|TOKEN|TRANSFORM|TRIM|TRUE|TYPE|'
196
- r'UNICODEORDER|UNSORTED|VALIDATE|VIRTUAL|WHOLE|WILD|WITHIN|XML|'
197
- r'XPATH|__COMPRESSED__)\b', Keyword.Reserved),
198
- ],
199
- 'functions': [
200
- (r'(ABS|ACOS|ALLNODES|ASCII|ASIN|ASSTRING|ATAN|ATAN2|AVE|CASE|'
201
- r'CHOOSE|CHOOSEN|CHOOSESETS|CLUSTERSIZE|COMBINE|CORRELATION|COS|'
202
- r'COSH|COUNT|COVARIANCE|CRON|DATASET|DEDUP|DEFINE|DENORMALIZE|'
203
- r'DISTRIBUTE|DISTRIBUTED|DISTRIBUTION|EBCDIC|ENTH|ERROR|EVALUATE|'
204
- r'EVENT|EVENTEXTRA|EVENTNAME|EXISTS|EXP|FAILCODE|FAILMESSAGE|'
205
- r'FETCH|FROMUNICODE|GETISVALID|GLOBAL|GRAPH|GROUP|HASH|HASH32|'
206
- r'HASH64|HASHCRC|HASHMD5|HAVING|IF|INDEX|INTFORMAT|ISVALID|'
207
- r'ITERATE|JOIN|KEYUNICODE|LENGTH|LIBRARY|LIMIT|LN|LOCAL|LOG|LOOP|'
208
- r'MAP|MATCHED|MATCHLENGTH|MATCHPOSITION|MATCHTEXT|MATCHUNICODE|'
209
- r'MAX|MERGE|MERGEJOIN|MIN|NOLOCAL|NONEMPTY|NORMALIZE|PARSE|PIPE|'
210
- r'POWER|PRELOAD|PROCESS|PROJECT|PULL|RANDOM|RANGE|RANK|RANKED|'
211
- r'REALFORMAT|RECORDOF|REGEXFIND|REGEXREPLACE|REGROUP|REJECTED|'
212
- r'ROLLUP|ROUND|ROUNDUP|ROW|ROWDIFF|SAMPLE|SET|SIN|SINH|SIZEOF|'
213
- r'SOAPCALL|SORT|SORTED|SQRT|STEPPED|STORED|SUM|TABLE|TAN|TANH|'
214
- r'THISNODE|TOPN|TOUNICODE|TRANSFER|TRIM|TRUNCATE|TYPEOF|UNGROUP|'
215
- r'UNICODEORDER|VARIANCE|WHICH|WORKUNIT|XMLDECODE|XMLENCODE|'
216
- r'XMLTEXT|XMLUNICODE)\b', Name.Function),
217
- ],
218
- 'string': [
219
- (r'"', String, '#pop'),
220
- (r'\'', String, '#pop'),
221
- (r'[^"\']+', String),
222
- ],
223
- }
224
-
225
-
226
- class BrainfuckLexer(RegexLexer):
227
- """
228
- Lexer for the esoteric `BrainFuck <http://www.muppetlabs.com/~breadbox/bf/>`_
229
- language.
230
- """
231
-
232
- name = 'Brainfuck'
233
- aliases = ['brainfuck', 'bf']
234
- filenames = ['*.bf', '*.b']
235
- mimetypes = ['application/x-brainfuck']
236
-
237
- tokens = {
238
- 'common': [
239
- # use different colors for different instruction types
240
- (r'[.,]+', Name.Tag),
241
- (r'[+-]+', Name.Builtin),
242
- (r'[<>]+', Name.Variable),
243
- (r'[^.,+\-<>\[\]]+', Comment),
244
- ],
245
- 'root': [
246
- (r'\[', Keyword, 'loop'),
247
- (r'\]', Error),
248
- include('common'),
249
- ],
250
- 'loop': [
251
- (r'\[', Keyword, '#push'),
252
- (r'\]', Keyword, '#pop'),
253
- include('common'),
254
- ]
255
- }
256
-
257
-
258
- class BefungeLexer(RegexLexer):
259
- """
260
- Lexer for the esoteric `Befunge <http://en.wikipedia.org/wiki/Befunge>`_
261
- language.
262
-
263
- .. versionadded:: 0.7
264
- """
265
- name = 'Befunge'
266
- aliases = ['befunge']
267
- filenames = ['*.befunge']
268
- mimetypes = ['application/x-befunge']
269
-
270
- tokens = {
271
- 'root': [
272
- (r'[0-9a-f]', Number),
273
- (r'[\+\*/%!`-]', Operator), # Traditional math
274
- (r'[<>^v?\[\]rxjk]', Name.Variable), # Move, imperatives
275
- (r'[:\\$.,n]', Name.Builtin), # Stack ops, imperatives
276
- (r'[|_mw]', Keyword),
277
- (r'[{}]', Name.Tag), # Befunge-98 stack ops
278
- (r'".*?"', String.Double), # Strings don't appear to allow escapes
279
- (r'\'.', String.Single), # Single character
280
- (r'[#;]', Comment), # Trampoline... depends on direction hit
281
- (r'[pg&~=@iotsy]', Keyword), # Misc
282
- (r'[()A-Z]', Comment), # Fingerprints
283
- (r'\s+', Text), # Whitespace doesn't matter
284
- ],
285
- }
286
-
287
-
288
- class RedcodeLexer(RegexLexer):
289
- """
290
- A simple Redcode lexer based on ICWS'94.
291
- Contributed by Adam Blinkinsop <blinks@acm.org>.
292
-
293
- .. versionadded:: 0.8
294
- """
295
- name = 'Redcode'
296
- aliases = ['redcode']
297
- filenames = ['*.cw']
298
-
299
- opcodes = ['DAT','MOV','ADD','SUB','MUL','DIV','MOD',
300
- 'JMP','JMZ','JMN','DJN','CMP','SLT','SPL',
301
- 'ORG','EQU','END']
302
- modifiers = ['A','B','AB','BA','F','X','I']
303
-
304
- tokens = {
305
- 'root': [
306
- # Whitespace:
307
- (r'\s+', Text),
308
- (r';.*$', Comment.Single),
309
- # Lexemes:
310
- # Identifiers
311
- (r'\b(%s)\b' % '|'.join(opcodes), Name.Function),
312
- (r'\b(%s)\b' % '|'.join(modifiers), Name.Decorator),
313
- (r'[A-Za-z_][A-Za-z_0-9]+', Name),
314
- # Operators
315
- (r'[-+*/%]', Operator),
316
- (r'[#$@<>]', Operator), # mode
317
- (r'[.,]', Punctuation), # mode
318
- # Numbers
319
- (r'[-+]?\d+', Number.Integer),
320
- ],
321
- }
322
-
323
-
324
- class MOOCodeLexer(RegexLexer):
325
- """
326
- For `MOOCode <http://www.moo.mud.org/>`_ (the MOO scripting
327
- language).
328
-
329
- .. versionadded:: 0.9
330
- """
331
- name = 'MOOCode'
332
- filenames = ['*.moo']
333
- aliases = ['moocode', 'moo']
334
- mimetypes = ['text/x-moocode']
335
-
336
- tokens = {
337
- 'root' : [
338
- # Numbers
339
- (r'(0|[1-9][0-9_]*)', Number.Integer),
340
- # Strings
341
- (r'"(\\\\|\\"|[^"])*"', String),
342
- # exceptions
343
- (r'(E_PERM|E_DIV)', Name.Exception),
344
- # db-refs
345
- (r'((#[-0-9]+)|(\$[a-z_A-Z0-9]+))', Name.Entity),
346
- # Keywords
347
- (r'\b(if|else|elseif|endif|for|endfor|fork|endfork|while'
348
- r'|endwhile|break|continue|return|try'
349
- r'|except|endtry|finally|in)\b', Keyword),
350
- # builtins
351
- (r'(random|length)', Name.Builtin),
352
- # special variables
353
- (r'(player|caller|this|args)', Name.Variable.Instance),
354
- # skip whitespace
355
- (r'\s+', Text),
356
- (r'\n', Text),
357
- # other operators
358
- (r'([!;=,{}&\|:\.\[\]@\(\)\<\>\?]+)', Operator),
359
- # function call
360
- (r'([a-z_A-Z0-9]+)(\()', bygroups(Name.Function, Operator)),
361
- # variables
362
- (r'([a-zA-Z_0-9]+)', Text),
363
- ]
364
- }
365
-
366
-
367
- class SmalltalkLexer(RegexLexer):
368
- """
369
- For `Smalltalk <http://www.smalltalk.org/>`_ syntax.
370
- Contributed by Stefan Matthias Aust.
371
- Rewritten by Nils Winter.
372
-
373
- .. versionadded:: 0.10
374
- """
375
- name = 'Smalltalk'
376
- filenames = ['*.st']
377
- aliases = ['smalltalk', 'squeak', 'st']
378
- mimetypes = ['text/x-smalltalk']
379
-
380
- tokens = {
381
- 'root' : [
382
- (r'(<)(\w+:)(.*?)(>)', bygroups(Text, Keyword, Text, Text)),
383
- include('squeak fileout'),
384
- include('whitespaces'),
385
- include('method definition'),
386
- (r'(\|)([\w\s]*)(\|)', bygroups(Operator, Name.Variable, Operator)),
387
- include('objects'),
388
- (r'\^|\:=|\_', Operator),
389
- # temporaries
390
- (r'[\]({}.;!]', Text),
391
- ],
392
- 'method definition' : [
393
- # Not perfect can't allow whitespaces at the beginning and the
394
- # without breaking everything
395
- (r'([a-zA-Z]+\w*:)(\s*)(\w+)',
396
- bygroups(Name.Function, Text, Name.Variable)),
397
- (r'^(\b[a-zA-Z]+\w*\b)(\s*)$', bygroups(Name.Function, Text)),
398
- (r'^([-+*/\\~<>=|&!?,@%]+)(\s*)(\w+)(\s*)$',
399
- bygroups(Name.Function, Text, Name.Variable, Text)),
400
- ],
401
- 'blockvariables' : [
402
- include('whitespaces'),
403
- (r'(:)(\s*)(\w+)',
404
- bygroups(Operator, Text, Name.Variable)),
405
- (r'\|', Operator, '#pop'),
406
- default('#pop'), # else pop
407
- ],
408
- 'literals' : [
409
- (r"'(''|[^'])*'", String, 'afterobject'),
410
- (r'\$.', String.Char, 'afterobject'),
411
- (r'#\(', String.Symbol, 'parenth'),
412
- (r'\)', Text, 'afterobject'),
413
- (r'(\d+r)?-?\d+(\.\d+)?(e-?\d+)?', Number, 'afterobject'),
414
- ],
415
- '_parenth_helper' : [
416
- include('whitespaces'),
417
- (r'(\d+r)?-?\d+(\.\d+)?(e-?\d+)?', Number),
418
- (r'[-+*/\\~<>=|&#!?,@%\w:]+', String.Symbol),
419
- # literals
420
- (r"'(''|[^'])*'", String),
421
- (r'\$.', String.Char),
422
- (r'#*\(', String.Symbol, 'inner_parenth'),
423
- ],
424
- 'parenth' : [
425
- # This state is a bit tricky since
426
- # we can't just pop this state
427
- (r'\)', String.Symbol, ('root', 'afterobject')),
428
- include('_parenth_helper'),
429
- ],
430
- 'inner_parenth': [
431
- (r'\)', String.Symbol, '#pop'),
432
- include('_parenth_helper'),
433
- ],
434
- 'whitespaces' : [
435
- # skip whitespace and comments
436
- (r'\s+', Text),
437
- (r'"(""|[^"])*"', Comment),
438
- ],
439
- 'objects' : [
440
- (r'\[', Text, 'blockvariables'),
441
- (r'\]', Text, 'afterobject'),
442
- (r'\b(self|super|true|false|nil|thisContext)\b',
443
- Name.Builtin.Pseudo, 'afterobject'),
444
- (r'\b[A-Z]\w*(?!:)\b', Name.Class, 'afterobject'),
445
- (r'\b[a-z]\w*(?!:)\b', Name.Variable, 'afterobject'),
446
- (r'#("(""|[^"])*"|[-+*/\\~<>=|&!?,@%]+|[\w:]+)',
447
- String.Symbol, 'afterobject'),
448
- include('literals'),
449
- ],
450
- 'afterobject' : [
451
- (r'! !$', Keyword , '#pop'), # squeak chunk delimiter
452
- include('whitespaces'),
453
- (r'\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|timesRepeat:)',
454
- Name.Builtin, '#pop'),
455
- (r'\b(new\b(?!:))', Name.Builtin),
456
- (r'\:=|\_', Operator, '#pop'),
457
- (r'\b[a-zA-Z]+\w*:', Name.Function, '#pop'),
458
- (r'\b[a-zA-Z]+\w*', Name.Function),
459
- (r'\w+:?|[-+*/\\~<>=|&!?,@%]+', Name.Function, '#pop'),
460
- (r'\.', Punctuation, '#pop'),
461
- (r';', Punctuation),
462
- (r'[\])}]', Text),
463
- (r'[\[({]', Text, '#pop'),
464
- ],
465
- 'squeak fileout' : [
466
- # Squeak fileout format (optional)
467
- (r'^"(""|[^"])*"!', Keyword),
468
- (r"^'(''|[^'])*'!", Keyword),
469
- (r'^(!)(\w+)( commentStamp: )(.*?)( prior: .*?!\n)(.*?)(!)',
470
- bygroups(Keyword, Name.Class, Keyword, String, Keyword, Text, Keyword)),
471
- (r"^(!)(\w+(?: class)?)( methodsFor: )('(?:''|[^'])*')(.*?!)",
472
- bygroups(Keyword, Name.Class, Keyword, String, Keyword)),
473
- (r'^(\w+)( subclass: )(#\w+)'
474
- r'(\s+instanceVariableNames: )(.*?)'
475
- r'(\s+classVariableNames: )(.*?)'
476
- r'(\s+poolDictionaries: )(.*?)'
477
- r'(\s+category: )(.*?)(!)',
478
- bygroups(Name.Class, Keyword, String.Symbol, Keyword, String, Keyword,
479
- String, Keyword, String, Keyword, String, Keyword)),
480
- (r'^(\w+(?: class)?)(\s+instanceVariableNames: )(.*?)(!)',
481
- bygroups(Name.Class, Keyword, String, Keyword)),
482
- (r'(!\n)(\].*)(! !)$', bygroups(Keyword, Text, Keyword)),
483
- (r'! !$', Keyword),
484
- ],
485
- }
486
-
487
-
488
- class LogtalkLexer(RegexLexer):
489
- """
490
- For `Logtalk <http://logtalk.org/>`_ source code.
491
-
492
- .. versionadded:: 0.10
493
- """
494
-
495
- name = 'Logtalk'
496
- aliases = ['logtalk']
497
- filenames = ['*.lgt']
498
- mimetypes = ['text/x-logtalk']
499
-
500
- tokens = {
501
- 'root': [
502
- # Directives
503
- (r'^\s*:-\s',Punctuation,'directive'),
504
- # Comments
505
- (r'%.*?\n', Comment),
506
- (r'/\*(.|\n)*?\*/',Comment),
507
- # Whitespace
508
- (r'\n', Text),
509
- (r'\s+', Text),
510
- # Numbers
511
- (r"0'.", Number),
512
- (r'0b[01]+', Number.Bin),
513
- (r'0o[0-7]+', Number.Oct),
514
- (r'0x[0-9a-fA-F]+', Number.Hex),
515
- (r'\d+\.?\d*((e|E)(\+|-)?\d+)?', Number.Float),
516
- # Variables
517
- (r'([A-Z_]\w*)', Name.Variable),
518
- # Event handlers
519
- (r'(after|before)(?=[(])', Keyword),
520
- # Execution-context methods
521
- (r'(parameter|this|se(lf|nder))(?=[(])', Keyword),
522
- # Reflection
523
- (r'(current_predicate|predicate_property)(?=[(])', Keyword),
524
- # DCGs and term expansion
525
- (r'(expand_(goal|term)|(goal|term)_expansion|phrase)(?=[(])',
526
- Keyword),
527
- # Entity
528
- (r'(abolish|c(reate|urrent))_(object|protocol|category)(?=[(])',
529
- Keyword),
530
- (r'(object|protocol|category)_property(?=[(])', Keyword),
531
- # Entity relations
532
- (r'co(mplements_object|nforms_to_protocol)(?=[(])', Keyword),
533
- (r'extends_(object|protocol|category)(?=[(])', Keyword),
534
- (r'imp(lements_protocol|orts_category)(?=[(])', Keyword),
535
- (r'(instantiat|specializ)es_class(?=[(])', Keyword),
536
- # Events
537
- (r'(current_event|(abolish|define)_events)(?=[(])', Keyword),
538
- # Flags
539
- (r'(current|set)_logtalk_flag(?=[(])', Keyword),
540
- # Compiling, loading, and library paths
541
- (r'logtalk_(compile|l(ibrary_path|oad_context|oad))(?=[(])',
542
- Keyword),
543
- # Database
544
- (r'(clause|retract(all)?)(?=[(])', Keyword),
545
- (r'a(bolish|ssert(a|z))(?=[(])', Keyword),
546
- # Control constructs
547
- (r'(ca(ll|tch)|throw)(?=[(])', Keyword),
548
- (r'(fail|true)\b', Keyword),
549
- # All solutions
550
- (r'((bag|set)of|f(ind|or)all)(?=[(])', Keyword),
551
- # Multi-threading meta-predicates
552
- (r'threaded(_(call|once|ignore|exit|peek|wait|notify))?(?=[(])',
553
- Keyword),
554
- # Term unification
555
- (r'unify_with_occurs_check(?=[(])', Keyword),
556
- # Term creation and decomposition
557
- (r'(functor|arg|copy_term|numbervars)(?=[(])', Keyword),
558
- # Evaluable functors
559
- (r'(rem|mod|abs|sign)(?=[(])', Keyword),
560
- (r'float(_(integer|fractional)_part)?(?=[(])', Keyword),
561
- (r'(floor|truncate|round|ceiling)(?=[(])', Keyword),
562
- # Other arithmetic functors
563
- (r'(cos|atan|exp|log|s(in|qrt))(?=[(])', Keyword),
564
- # Term testing
565
- (r'(var|atom(ic)?|integer|float|c(allable|ompound)|n(onvar|umber)|'
566
- r'ground)(?=[(])', Keyword),
567
- # Term comparison
568
- (r'compare(?=[(])', Keyword),
569
- # Stream selection and control
570
- (r'(curren|se)t_(in|out)put(?=[(])', Keyword),
571
- (r'(open|close)(?=[(])', Keyword),
572
- (r'flush_output(?=[(])', Keyword),
573
- (r'(at_end_of_stream|flush_output)\b', Keyword),
574
- (r'(stream_property|at_end_of_stream|set_stream_position)(?=[(])',
575
- Keyword),
576
- # Character and byte input/output
577
- (r'(nl|(get|peek|put)_(byte|c(har|ode)))(?=[(])', Keyword),
578
- (r'\bnl\b', Keyword),
579
- # Term input/output
580
- (r'read(_term)?(?=[(])', Keyword),
581
- (r'write(q|_(canonical|term))?(?=[(])', Keyword),
582
- (r'(current_)?op(?=[(])', Keyword),
583
- (r'(current_)?char_conversion(?=[(])', Keyword),
584
- # Atomic term processing
585
- (r'atom_(length|c(hars|o(ncat|des)))(?=[(])', Keyword),
586
- (r'(char_code|sub_atom)(?=[(])', Keyword),
587
- (r'number_c(har|ode)s(?=[(])', Keyword),
588
- # Implementation defined hooks functions
589
- (r'(se|curren)t_prolog_flag(?=[(])', Keyword),
590
- (r'\bhalt\b', Keyword),
591
- (r'halt(?=[(])', Keyword),
592
- # Message sending operators
593
- (r'(::|:|\^\^)', Operator),
594
- # External call
595
- (r'[{}]', Keyword),
596
- # Logic and control
597
- (r'\b(ignore|once)(?=[(])', Keyword),
598
- (r'\brepeat\b', Keyword),
599
- # Sorting
600
- (r'(key)?sort(?=[(])', Keyword),
601
- # Bitwise functors
602
- (r'(>>|<<|/\\|\\\\|\\)', Operator),
603
- # Arithemtic evaluation
604
- (r'\bis\b', Keyword),
605
- # Arithemtic comparison
606
- (r'(=:=|=\\=|<|=<|>=|>)', Operator),
607
- # Term creation and decomposition
608
- (r'=\.\.', Operator),
609
- # Term unification
610
- (r'(=|\\=)', Operator),
611
- # Term comparison
612
- (r'(==|\\==|@=<|@<|@>=|@>)', Operator),
613
- # Evaluable functors
614
- (r'(//|[-+*/])', Operator),
615
- (r'\b(e|pi|mod|rem)\b', Operator),
616
- # Other arithemtic functors
617
- (r'\b\*\*\b', Operator),
618
- # DCG rules
619
- (r'-->', Operator),
620
- # Control constructs
621
- (r'([!;]|->)', Operator),
622
- # Logic and control
623
- (r'\\+', Operator),
624
- # Mode operators
625
- (r'[?@]', Operator),
626
- # Existential quantifier
627
- (r'\^', Operator),
628
- # Strings
629
- (r'"(\\\\|\\"|[^"])*"', String),
630
- # Ponctuation
631
- (r'[()\[\],.|]', Text),
632
- # Atoms
633
- (r"[a-z]\w*", Text),
634
- (r"'", String, 'quoted_atom'),
635
- ],
636
-
637
- 'quoted_atom': [
638
- (r"''", String),
639
- (r"'", String, '#pop'),
640
- (r'\\([\\abfnrtv"\']|(x[a-fA-F0-9]+|[0-7]+)\\)', String.Escape),
641
- (r"[^\\'\n]+", String),
642
- (r'\\', String),
643
- ],
644
-
645
- 'directive': [
646
- # Conditional compilation directives
647
- (r'(el)?if(?=[(])', Keyword, 'root'),
648
- (r'(e(lse|ndif))[.]', Keyword, 'root'),
649
- # Entity directives
650
- (r'(category|object|protocol)(?=[(])', Keyword, 'entityrelations'),
651
- (r'(end_(category|object|protocol))[.]',Keyword, 'root'),
652
- # Predicate scope directives
653
- (r'(public|protected|private)(?=[(])', Keyword, 'root'),
654
- # Other directives
655
- (r'e(n(coding|sure_loaded)|xport)(?=[(])', Keyword, 'root'),
656
- (r'in(fo|itialization)(?=[(])', Keyword, 'root'),
657
- (r'(dynamic|synchronized|threaded)[.]', Keyword, 'root'),
658
- (r'(alias|d(ynamic|iscontiguous)|m(eta_predicate|ode|ultifile)|'
659
- r's(et_(logtalk|prolog)_flag|ynchronized))(?=[(])',
660
- Keyword, 'root'),
661
- (r'op(?=[(])', Keyword, 'root'),
662
- (r'(c(alls|oinductive)|reexport|use(s|_module))(?=[(])',
663
- Keyword, 'root'),
664
- (r'[a-z]\w*(?=[(])', Text, 'root'),
665
- (r'[a-z]\w*[.]', Text, 'root'),
666
- ],
667
-
668
- 'entityrelations': [
669
- (r'(complements|extends|i(nstantiates|mp(lements|orts))|specializes)'
670
- r'(?=[(])', Keyword),
671
- # Numbers
672
- (r"0'.", Number),
673
- (r'0b[01]+', Number.Bin),
674
- (r'0o[0-7]+', Number.Oct),
675
- (r'0x[0-9a-fA-F]+', Number.Hex),
676
- (r'\d+\.?\d*((e|E)(\+|-)?\d+)?', Number.Float),
677
- # Variables
678
- (r'([A-Z_]\w*)', Name.Variable),
679
- # Atoms
680
- (r"[a-z]\w*", Text),
681
- (r"'", String, 'quoted_atom'),
682
- # Strings
683
- (r'"(\\\\|\\"|[^"])*"', String),
684
- # End of entity-opening directive
685
- (r'([)]\.)', Text, 'root'),
686
- # Scope operator
687
- (r'(::)', Operator),
688
- # Ponctuation
689
- (r'[()\[\],.|]', Text),
690
- # Comments
691
- (r'%.*?\n', Comment),
692
- (r'/\*(.|\n)*?\*/',Comment),
693
- # Whitespace
694
- (r'\n', Text),
695
- (r'\s+', Text),
696
- ]
697
- }
698
-
699
- def analyse_text(text):
700
- if ':- object(' in text:
701
- return True
702
- if ':- protocol(' in text:
703
- return True
704
- if ':- category(' in text:
705
- return True
706
- return False
707
-
708
-
709
- def _shortened(word):
710
- dpos = word.find('$')
711
- return '|'.join([word[:dpos] + word[dpos+1:i] + r'\b'
712
- for i in range(len(word), dpos, -1)])
713
- def _shortened_many(*words):
714
- return '|'.join(map(_shortened, words))
715
-
716
- class GnuplotLexer(RegexLexer):
717
- """
718
- For `Gnuplot <http://gnuplot.info/>`_ plotting scripts.
719
-
720
- .. versionadded:: 0.11
721
- """
722
-
723
- name = 'Gnuplot'
724
- aliases = ['gnuplot']
725
- filenames = ['*.plot', '*.plt']
726
- mimetypes = ['text/x-gnuplot']
727
-
728
- tokens = {
729
- 'root': [
730
- include('whitespace'),
731
- (_shortened('bi$nd'), Keyword, 'bind'),
732
- (_shortened_many('ex$it', 'q$uit'), Keyword, 'quit'),
733
- (_shortened('f$it'), Keyword, 'fit'),
734
- (r'(if)(\s*)(\()', bygroups(Keyword, Text, Punctuation), 'if'),
735
- (r'else\b', Keyword),
736
- (_shortened('pa$use'), Keyword, 'pause'),
737
- (_shortened_many('p$lot', 'rep$lot', 'sp$lot'), Keyword, 'plot'),
738
- (_shortened('sa$ve'), Keyword, 'save'),
739
- (_shortened('se$t'), Keyword, ('genericargs', 'optionarg')),
740
- (_shortened_many('sh$ow', 'uns$et'),
741
- Keyword, ('noargs', 'optionarg')),
742
- (_shortened_many('low$er', 'ra$ise', 'ca$ll', 'cd$', 'cl$ear',
743
- 'h$elp', '\\?$', 'hi$story', 'l$oad', 'pr$int',
744
- 'pwd$', 're$read', 'res$et', 'scr$eendump',
745
- 'she$ll', 'sy$stem', 'up$date'),
746
- Keyword, 'genericargs'),
747
- (_shortened_many('pwd$', 're$read', 'res$et', 'scr$eendump',
748
- 'she$ll', 'test$'),
749
- Keyword, 'noargs'),
750
- ('([a-zA-Z_]\w*)(\s*)(=)',
751
- bygroups(Name.Variable, Text, Operator), 'genericargs'),
752
- ('([a-zA-Z_]\w*)(\s*\(.*?\)\s*)(=)',
753
- bygroups(Name.Function, Text, Operator), 'genericargs'),
754
- (r'@[a-zA-Z_]\w*', Name.Constant), # macros
755
- (r';', Keyword),
756
- ],
757
- 'comment': [
758
- (r'[^\\\n]', Comment),
759
- (r'\\\n', Comment),
760
- (r'\\', Comment),
761
- # don't add the newline to the Comment token
762
- ('', Comment, '#pop'),
763
- ],
764
- 'whitespace': [
765
- ('#', Comment, 'comment'),
766
- (r'[ \t\v\f]+', Text),
767
- ],
768
- 'noargs': [
769
- include('whitespace'),
770
- # semicolon and newline end the argument list
771
- (r';', Punctuation, '#pop'),
772
- (r'\n', Text, '#pop'),
773
- ],
774
- 'dqstring': [
775
- (r'"', String, '#pop'),
776
- (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
777
- (r'[^\\"\n]+', String), # all other characters
778
- (r'\\\n', String), # line continuation
779
- (r'\\', String), # stray backslash
780
- (r'\n', String, '#pop'), # newline ends the string too
781
- ],
782
- 'sqstring': [
783
- (r"''", String), # escaped single quote
784
- (r"'", String, '#pop'),
785
- (r"[^\\'\n]+", String), # all other characters
786
- (r'\\\n', String), # line continuation
787
- (r'\\', String), # normal backslash
788
- (r'\n', String, '#pop'), # newline ends the string too
789
- ],
790
- 'genericargs': [
791
- include('noargs'),
792
- (r'"', String, 'dqstring'),
793
- (r"'", String, 'sqstring'),
794
- (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+', Number.Float),
795
- (r'(\d+\.\d*|\.\d+)', Number.Float),
796
- (r'-?\d+', Number.Integer),
797
- ('[,.~!%^&*+=|?:<>/-]', Operator),
798
- ('[{}()\[\]]', Punctuation),
799
- (r'(eq|ne)\b', Operator.Word),
800
- (r'([a-zA-Z_]\w*)(\s*)(\()',
801
- bygroups(Name.Function, Text, Punctuation)),
802
- (r'[a-zA-Z_]\w*', Name),
803
- (r'@[a-zA-Z_]\w*', Name.Constant), # macros
804
- (r'\\\n', Text),
805
- ],
806
- 'optionarg': [
807
- include('whitespace'),
808
- (_shortened_many(
809
- "a$ll","an$gles","ar$row","au$toscale","b$ars","bor$der",
810
- "box$width","cl$abel","c$lip","cn$trparam","co$ntour","da$ta",
811
- "data$file","dg$rid3d","du$mmy","enc$oding","dec$imalsign",
812
- "fit$","font$path","fo$rmat","fu$nction","fu$nctions","g$rid",
813
- "hid$den3d","his$torysize","is$osamples","k$ey","keyt$itle",
814
- "la$bel","li$nestyle","ls$","loa$dpath","loc$ale","log$scale",
815
- "mac$ros","map$ping","map$ping3d","mar$gin","lmar$gin",
816
- "rmar$gin","tmar$gin","bmar$gin","mo$use","multi$plot",
817
- "mxt$ics","nomxt$ics","mx2t$ics","nomx2t$ics","myt$ics",
818
- "nomyt$ics","my2t$ics","nomy2t$ics","mzt$ics","nomzt$ics",
819
- "mcbt$ics","nomcbt$ics","of$fsets","or$igin","o$utput",
820
- "pa$rametric","pm$3d","pal$ette","colorb$ox","p$lot",
821
- "poi$ntsize","pol$ar","pr$int","obj$ect","sa$mples","si$ze",
822
- "st$yle","su$rface","table$","t$erminal","termo$ptions","ti$cs",
823
- "ticsc$ale","ticsl$evel","timef$mt","tim$estamp","tit$le",
824
- "v$ariables","ve$rsion","vi$ew","xyp$lane","xda$ta","x2da$ta",
825
- "yda$ta","y2da$ta","zda$ta","cbda$ta","xl$abel","x2l$abel",
826
- "yl$abel","y2l$abel","zl$abel","cbl$abel","xti$cs","noxti$cs",
827
- "x2ti$cs","nox2ti$cs","yti$cs","noyti$cs","y2ti$cs","noy2ti$cs",
828
- "zti$cs","nozti$cs","cbti$cs","nocbti$cs","xdti$cs","noxdti$cs",
829
- "x2dti$cs","nox2dti$cs","ydti$cs","noydti$cs","y2dti$cs",
830
- "noy2dti$cs","zdti$cs","nozdti$cs","cbdti$cs","nocbdti$cs",
831
- "xmti$cs","noxmti$cs","x2mti$cs","nox2mti$cs","ymti$cs",
832
- "noymti$cs","y2mti$cs","noy2mti$cs","zmti$cs","nozmti$cs",
833
- "cbmti$cs","nocbmti$cs","xr$ange","x2r$ange","yr$ange",
834
- "y2r$ange","zr$ange","cbr$ange","rr$ange","tr$ange","ur$ange",
835
- "vr$ange","xzeroa$xis","x2zeroa$xis","yzeroa$xis","y2zeroa$xis",
836
- "zzeroa$xis","zeroa$xis","z$ero"), Name.Builtin, '#pop'),
837
- ],
838
- 'bind': [
839
- ('!', Keyword, '#pop'),
840
- (_shortened('all$windows'), Name.Builtin),
841
- include('genericargs'),
842
- ],
843
- 'quit': [
844
- (r'gnuplot\b', Keyword),
845
- include('noargs'),
846
- ],
847
- 'fit': [
848
- (r'via\b', Name.Builtin),
849
- include('plot'),
850
- ],
851
- 'if': [
852
- (r'\)', Punctuation, '#pop'),
853
- include('genericargs'),
854
- ],
855
- 'pause': [
856
- (r'(mouse|any|button1|button2|button3)\b', Name.Builtin),
857
- (_shortened('key$press'), Name.Builtin),
858
- include('genericargs'),
859
- ],
860
- 'plot': [
861
- (_shortened_many('ax$es', 'axi$s', 'bin$ary', 'ev$ery', 'i$ndex',
862
- 'mat$rix', 's$mooth', 'thru$', 't$itle',
863
- 'not$itle', 'u$sing', 'w$ith'),
864
- Name.Builtin),
865
- include('genericargs'),
866
- ],
867
- 'save': [
868
- (_shortened_many('f$unctions', 's$et', 't$erminal', 'v$ariables'),
869
- Name.Builtin),
870
- include('genericargs'),
871
- ],
872
- }
873
-
874
-
875
- class PovrayLexer(RegexLexer):
876
- """
877
- For `Persistence of Vision Raytracer <http://www.povray.org/>`_ files.
878
-
879
- .. versionadded:: 0.11
880
- """
881
- name = 'POVRay'
882
- aliases = ['pov']
883
- filenames = ['*.pov', '*.inc']
884
- mimetypes = ['text/x-povray']
885
-
886
- tokens = {
887
- 'root': [
888
- (r'/\*[\w\W]*?\*/', Comment.Multiline),
889
- (r'//.*\n', Comment.Single),
890
- (r'(?s)"(?:\\.|[^"\\])+"', String.Double),
891
- (r'#(debug|default|else|end|error|fclose|fopen|ifdef|ifndef|'
892
- r'include|range|read|render|statistics|switch|undef|version|'
893
- r'warning|while|write|define|macro|local|declare)\b',
894
- Comment.Preproc),
895
- (r'\b(aa_level|aa_threshold|abs|acos|acosh|adaptive|adc_bailout|'
896
- r'agate|agate_turb|all|alpha|ambient|ambient_light|angle|'
897
- r'aperture|arc_angle|area_light|asc|asin|asinh|assumed_gamma|'
898
- r'atan|atan2|atanh|atmosphere|atmospheric_attenuation|'
899
- r'attenuating|average|background|black_hole|blue|blur_samples|'
900
- r'bounded_by|box_mapping|bozo|break|brick|brick_size|'
901
- r'brightness|brilliance|bumps|bumpy1|bumpy2|bumpy3|bump_map|'
902
- r'bump_size|case|caustics|ceil|checker|chr|clipped_by|clock|'
903
- r'color|color_map|colour|colour_map|component|composite|concat|'
904
- r'confidence|conic_sweep|constant|control0|control1|cos|cosh|'
905
- r'count|crackle|crand|cube|cubic_spline|cylindrical_mapping|'
906
- r'debug|declare|default|degrees|dents|diffuse|direction|'
907
- r'distance|distance_maximum|div|dust|dust_type|eccentricity|'
908
- r'else|emitting|end|error|error_bound|exp|exponent|'
909
- r'fade_distance|fade_power|falloff|falloff_angle|false|'
910
- r'file_exists|filter|finish|fisheye|flatness|flip|floor|'
911
- r'focal_point|fog|fog_alt|fog_offset|fog_type|frequency|gif|'
912
- r'global_settings|glowing|gradient|granite|gray_threshold|'
913
- r'green|halo|hexagon|hf_gray_16|hierarchy|hollow|hypercomplex|'
914
- r'if|ifdef|iff|image_map|incidence|include|int|interpolate|'
915
- r'inverse|ior|irid|irid_wavelength|jitter|lambda|leopard|'
916
- r'linear|linear_spline|linear_sweep|location|log|looks_like|'
917
- r'look_at|low_error_factor|mandel|map_type|marble|material_map|'
918
- r'matrix|max|max_intersections|max_iteration|max_trace_level|'
919
- r'max_value|metallic|min|minimum_reuse|mod|mortar|'
920
- r'nearest_count|no|normal|normal_map|no_shadow|number_of_waves|'
921
- r'octaves|off|offset|omega|omnimax|on|once|onion|open|'
922
- r'orthographic|panoramic|pattern1|pattern2|pattern3|'
923
- r'perspective|pgm|phase|phong|phong_size|pi|pigment|'
924
- r'pigment_map|planar_mapping|png|point_at|pot|pow|ppm|'
925
- r'precision|pwr|quadratic_spline|quaternion|quick_color|'
926
- r'quick_colour|quilted|radial|radians|radiosity|radius|rainbow|'
927
- r'ramp_wave|rand|range|reciprocal|recursion_limit|red|'
928
- r'reflection|refraction|render|repeat|rgb|rgbf|rgbft|rgbt|'
929
- r'right|ripples|rotate|roughness|samples|scale|scallop_wave|'
930
- r'scattering|seed|shadowless|sin|sine_wave|sinh|sky|sky_sphere|'
931
- r'slice|slope_map|smooth|specular|spherical_mapping|spiral|'
932
- r'spiral1|spiral2|spotlight|spotted|sqr|sqrt|statistics|str|'
933
- r'strcmp|strength|strlen|strlwr|strupr|sturm|substr|switch|sys|'
934
- r't|tan|tanh|test_camera_1|test_camera_2|test_camera_3|'
935
- r'test_camera_4|texture|texture_map|tga|thickness|threshold|'
936
- r'tightness|tile2|tiles|track|transform|translate|transmit|'
937
- r'triangle_wave|true|ttf|turbulence|turb_depth|type|'
938
- r'ultra_wide_angle|up|use_color|use_colour|use_index|u_steps|'
939
- r'val|variance|vaxis_rotate|vcross|vdot|version|vlength|'
940
- r'vnormalize|volume_object|volume_rendered|vol_with_light|'
941
- r'vrotate|v_steps|warning|warp|water_level|waves|while|width|'
942
- r'wood|wrinkles|yes)\b', Keyword),
943
- (r'(bicubic_patch|blob|box|camera|cone|cubic|cylinder|difference|'
944
- r'disc|height_field|intersection|julia_fractal|lathe|'
945
- r'light_source|merge|mesh|object|plane|poly|polygon|prism|'
946
- r'quadric|quartic|smooth_triangle|sor|sphere|superellipsoid|'
947
- r'text|torus|triangle|union)\b', Name.Builtin),
948
- # TODO: <=, etc
949
- (r'[\[\](){}<>;,]', Punctuation),
950
- (r'[-+*/=]', Operator),
951
- (r'\b(x|y|z|u|v)\b', Name.Builtin.Pseudo),
952
- (r'[a-zA-Z_][a-zA-Z_0-9]*', Name),
953
- (r'[0-9]+\.[0-9]*', Number.Float),
954
- (r'\.[0-9]+', Number.Float),
955
- (r'[0-9]+', Number.Integer),
956
- (r'\s+', Text),
957
- ]
958
- }
959
-
960
-
961
- class AppleScriptLexer(RegexLexer):
962
- """
963
- For `AppleScript source code
964
- <http://developer.apple.com/documentation/AppleScript/
965
- Conceptual/AppleScriptLangGuide>`_,
966
- including `AppleScript Studio
967
- <http://developer.apple.com/documentation/AppleScript/
968
- Reference/StudioReference>`_.
969
- Contributed by Andreas Amann <aamann@mac.com>.
970
- """
971
-
972
- name = 'AppleScript'
973
- aliases = ['applescript']
974
- filenames = ['*.applescript']
975
-
976
- flags = re.MULTILINE | re.DOTALL
977
-
978
- Identifiers = r'[a-zA-Z]\w*'
979
- Literals = ['AppleScript', 'current application', 'false', 'linefeed',
980
- 'missing value', 'pi','quote', 'result', 'return', 'space',
981
- 'tab', 'text item delimiters', 'true', 'version']
982
- Classes = ['alias ', 'application ', 'boolean ', 'class ', 'constant ',
983
- 'date ', 'file ', 'integer ', 'list ', 'number ', 'POSIX file ',
984
- 'real ', 'record ', 'reference ', 'RGB color ', 'script ',
985
- 'text ', 'unit types', '(?:Unicode )?text', 'string']
986
- BuiltIn = ['attachment', 'attribute run', 'character', 'day', 'month',
987
- 'paragraph', 'word', 'year']
988
- HandlerParams = ['about', 'above', 'against', 'apart from', 'around',
989
- 'aside from', 'at', 'below', 'beneath', 'beside',
990
- 'between', 'for', 'given', 'instead of', 'on', 'onto',
991
- 'out of', 'over', 'since']
992
- Commands = ['ASCII (character|number)', 'activate', 'beep', 'choose URL',
993
- 'choose application', 'choose color', 'choose file( name)?',
994
- 'choose folder', 'choose from list',
995
- 'choose remote application', 'clipboard info',
996
- 'close( access)?', 'copy', 'count', 'current date', 'delay',
997
- 'delete', 'display (alert|dialog)', 'do shell script',
998
- 'duplicate', 'exists', 'get eof', 'get volume settings',
999
- 'info for', 'launch', 'list (disks|folder)', 'load script',
1000
- 'log', 'make', 'mount volume', 'new', 'offset',
1001
- 'open( (for access|location))?', 'path to', 'print', 'quit',
1002
- 'random number', 'read', 'round', 'run( script)?',
1003
- 'say', 'scripting components',
1004
- 'set (eof|the clipboard to|volume)', 'store script',
1005
- 'summarize', 'system attribute', 'system info',
1006
- 'the clipboard', 'time to GMT', 'write', 'quoted form']
1007
- References = ['(in )?back of', '(in )?front of', '[0-9]+(st|nd|rd|th)',
1008
- 'first', 'second', 'third', 'fourth', 'fifth', 'sixth',
1009
- 'seventh', 'eighth', 'ninth', 'tenth', 'after', 'back',
1010
- 'before', 'behind', 'every', 'front', 'index', 'last',
1011
- 'middle', 'some', 'that', 'through', 'thru', 'where', 'whose']
1012
- Operators = ["and", "or", "is equal", "equals", "(is )?equal to", "is not",
1013
- "isn't", "isn't equal( to)?", "is not equal( to)?",
1014
- "doesn't equal", "does not equal", "(is )?greater than",
1015
- "comes after", "is not less than or equal( to)?",
1016
- "isn't less than or equal( to)?", "(is )?less than",
1017
- "comes before", "is not greater than or equal( to)?",
1018
- "isn't greater than or equal( to)?",
1019
- "(is )?greater than or equal( to)?", "is not less than",
1020
- "isn't less than", "does not come before",
1021
- "doesn't come before", "(is )?less than or equal( to)?",
1022
- "is not greater than", "isn't greater than",
1023
- "does not come after", "doesn't come after", "starts? with",
1024
- "begins? with", "ends? with", "contains?", "does not contain",
1025
- "doesn't contain", "is in", "is contained by", "is not in",
1026
- "is not contained by", "isn't contained by", "div", "mod",
1027
- "not", "(a )?(ref( to)?|reference to)", "is", "does"]
1028
- Control = ['considering', 'else', 'error', 'exit', 'from', 'if',
1029
- 'ignoring', 'in', 'repeat', 'tell', 'then', 'times', 'to',
1030
- 'try', 'until', 'using terms from', 'while', 'whith',
1031
- 'with timeout( of)?', 'with transaction', 'by', 'continue',
1032
- 'end', 'its?', 'me', 'my', 'return', 'of' , 'as']
1033
- Declarations = ['global', 'local', 'prop(erty)?', 'set', 'get']
1034
- Reserved = ['but', 'put', 'returning', 'the']
1035
- StudioClasses = ['action cell', 'alert reply', 'application', 'box',
1036
- 'browser( cell)?', 'bundle', 'button( cell)?', 'cell',
1037
- 'clip view', 'color well', 'color-panel',
1038
- 'combo box( item)?', 'control',
1039
- 'data( (cell|column|item|row|source))?', 'default entry',
1040
- 'dialog reply', 'document', 'drag info', 'drawer',
1041
- 'event', 'font(-panel)?', 'formatter',
1042
- 'image( (cell|view))?', 'matrix', 'menu( item)?', 'item',
1043
- 'movie( view)?', 'open-panel', 'outline view', 'panel',
1044
- 'pasteboard', 'plugin', 'popup button',
1045
- 'progress indicator', 'responder', 'save-panel',
1046
- 'scroll view', 'secure text field( cell)?', 'slider',
1047
- 'sound', 'split view', 'stepper', 'tab view( item)?',
1048
- 'table( (column|header cell|header view|view))',
1049
- 'text( (field( cell)?|view))?', 'toolbar( item)?',
1050
- 'user-defaults', 'view', 'window']
1051
- StudioEvents = ['accept outline drop', 'accept table drop', 'action',
1052
- 'activated', 'alert ended', 'awake from nib', 'became key',
1053
- 'became main', 'begin editing', 'bounds changed',
1054
- 'cell value', 'cell value changed', 'change cell value',
1055
- 'change item value', 'changed', 'child of item',
1056
- 'choose menu item', 'clicked', 'clicked toolbar item',
1057
- 'closed', 'column clicked', 'column moved',
1058
- 'column resized', 'conclude drop', 'data representation',
1059
- 'deminiaturized', 'dialog ended', 'document nib name',
1060
- 'double clicked', 'drag( (entered|exited|updated))?',
1061
- 'drop', 'end editing', 'exposed', 'idle', 'item expandable',
1062
- 'item value', 'item value changed', 'items changed',
1063
- 'keyboard down', 'keyboard up', 'launched',
1064
- 'load data representation', 'miniaturized', 'mouse down',
1065
- 'mouse dragged', 'mouse entered', 'mouse exited',
1066
- 'mouse moved', 'mouse up', 'moved',
1067
- 'number of browser rows', 'number of items',
1068
- 'number of rows', 'open untitled', 'opened', 'panel ended',
1069
- 'parameters updated', 'plugin loaded', 'prepare drop',
1070
- 'prepare outline drag', 'prepare outline drop',
1071
- 'prepare table drag', 'prepare table drop',
1072
- 'read from file', 'resigned active', 'resigned key',
1073
- 'resigned main', 'resized( sub views)?',
1074
- 'right mouse down', 'right mouse dragged',
1075
- 'right mouse up', 'rows changed', 'scroll wheel',
1076
- 'selected tab view item', 'selection changed',
1077
- 'selection changing', 'should begin editing',
1078
- 'should close', 'should collapse item',
1079
- 'should end editing', 'should expand item',
1080
- 'should open( untitled)?',
1081
- 'should quit( after last window closed)?',
1082
- 'should select column', 'should select item',
1083
- 'should select row', 'should select tab view item',
1084
- 'should selection change', 'should zoom', 'shown',
1085
- 'update menu item', 'update parameters',
1086
- 'update toolbar item', 'was hidden', 'was miniaturized',
1087
- 'will become active', 'will close', 'will dismiss',
1088
- 'will display browser cell', 'will display cell',
1089
- 'will display item cell', 'will display outline cell',
1090
- 'will finish launching', 'will hide', 'will miniaturize',
1091
- 'will move', 'will open', 'will pop up', 'will quit',
1092
- 'will resign active', 'will resize( sub views)?',
1093
- 'will select tab view item', 'will show', 'will zoom',
1094
- 'write to file', 'zoomed']
1095
- StudioCommands = ['animate', 'append', 'call method', 'center',
1096
- 'close drawer', 'close panel', 'display',
1097
- 'display alert', 'display dialog', 'display panel', 'go',
1098
- 'hide', 'highlight', 'increment', 'item for',
1099
- 'load image', 'load movie', 'load nib', 'load panel',
1100
- 'load sound', 'localized string', 'lock focus', 'log',
1101
- 'open drawer', 'path for', 'pause', 'perform action',
1102
- 'play', 'register', 'resume', 'scroll', 'select( all)?',
1103
- 'show', 'size to fit', 'start', 'step back',
1104
- 'step forward', 'stop', 'synchronize', 'unlock focus',
1105
- 'update']
1106
- StudioProperties = ['accepts arrow key', 'action method', 'active',
1107
- 'alignment', 'allowed identifiers',
1108
- 'allows branch selection', 'allows column reordering',
1109
- 'allows column resizing', 'allows column selection',
1110
- 'allows customization',
1111
- 'allows editing text attributes',
1112
- 'allows empty selection', 'allows mixed state',
1113
- 'allows multiple selection', 'allows reordering',
1114
- 'allows undo', 'alpha( value)?', 'alternate image',
1115
- 'alternate increment value', 'alternate title',
1116
- 'animation delay', 'associated file name',
1117
- 'associated object', 'auto completes', 'auto display',
1118
- 'auto enables items', 'auto repeat',
1119
- 'auto resizes( outline column)?',
1120
- 'auto save expanded items', 'auto save name',
1121
- 'auto save table columns', 'auto saves configuration',
1122
- 'auto scroll', 'auto sizes all columns to fit',
1123
- 'auto sizes cells', 'background color', 'bezel state',
1124
- 'bezel style', 'bezeled', 'border rect', 'border type',
1125
- 'bordered', 'bounds( rotation)?', 'box type',
1126
- 'button returned', 'button type',
1127
- 'can choose directories', 'can choose files',
1128
- 'can draw', 'can hide',
1129
- 'cell( (background color|size|type))?', 'characters',
1130
- 'class', 'click count', 'clicked( data)? column',
1131
- 'clicked data item', 'clicked( data)? row',
1132
- 'closeable', 'collating', 'color( (mode|panel))',
1133
- 'command key down', 'configuration',
1134
- 'content(s| (size|view( margins)?))?', 'context',
1135
- 'continuous', 'control key down', 'control size',
1136
- 'control tint', 'control view',
1137
- 'controller visible', 'coordinate system',
1138
- 'copies( on scroll)?', 'corner view', 'current cell',
1139
- 'current column', 'current( field)? editor',
1140
- 'current( menu)? item', 'current row',
1141
- 'current tab view item', 'data source',
1142
- 'default identifiers', 'delta (x|y|z)',
1143
- 'destination window', 'directory', 'display mode',
1144
- 'displayed cell', 'document( (edited|rect|view))?',
1145
- 'double value', 'dragged column', 'dragged distance',
1146
- 'dragged items', 'draws( cell)? background',
1147
- 'draws grid', 'dynamically scrolls', 'echos bullets',
1148
- 'edge', 'editable', 'edited( data)? column',
1149
- 'edited data item', 'edited( data)? row', 'enabled',
1150
- 'enclosing scroll view', 'ending page',
1151
- 'error handling', 'event number', 'event type',
1152
- 'excluded from windows menu', 'executable path',
1153
- 'expanded', 'fax number', 'field editor', 'file kind',
1154
- 'file name', 'file type', 'first responder',
1155
- 'first visible column', 'flipped', 'floating',
1156
- 'font( panel)?', 'formatter', 'frameworks path',
1157
- 'frontmost', 'gave up', 'grid color', 'has data items',
1158
- 'has horizontal ruler', 'has horizontal scroller',
1159
- 'has parent data item', 'has resize indicator',
1160
- 'has shadow', 'has sub menu', 'has vertical ruler',
1161
- 'has vertical scroller', 'header cell', 'header view',
1162
- 'hidden', 'hides when deactivated', 'highlights by',
1163
- 'horizontal line scroll', 'horizontal page scroll',
1164
- 'horizontal ruler view', 'horizontally resizable',
1165
- 'icon image', 'id', 'identifier',
1166
- 'ignores multiple clicks',
1167
- 'image( (alignment|dims when disabled|frame style|'
1168
- 'scaling))?',
1169
- 'imports graphics', 'increment value',
1170
- 'indentation per level', 'indeterminate', 'index',
1171
- 'integer value', 'intercell spacing', 'item height',
1172
- 'key( (code|equivalent( modifier)?|window))?',
1173
- 'knob thickness', 'label', 'last( visible)? column',
1174
- 'leading offset', 'leaf', 'level', 'line scroll',
1175
- 'loaded', 'localized sort', 'location', 'loop mode',
1176
- 'main( (bunde|menu|window))?', 'marker follows cell',
1177
- 'matrix mode', 'maximum( content)? size',
1178
- 'maximum visible columns',
1179
- 'menu( form representation)?', 'miniaturizable',
1180
- 'miniaturized', 'minimized image', 'minimized title',
1181
- 'minimum column width', 'minimum( content)? size',
1182
- 'modal', 'modified', 'mouse down state',
1183
- 'movie( (controller|file|rect))?', 'muted', 'name',
1184
- 'needs display', 'next state', 'next text',
1185
- 'number of tick marks', 'only tick mark values',
1186
- 'opaque', 'open panel', 'option key down',
1187
- 'outline table column', 'page scroll', 'pages across',
1188
- 'pages down', 'palette label', 'pane splitter',
1189
- 'parent data item', 'parent window', 'pasteboard',
1190
- 'path( (names|separator))?', 'playing',
1191
- 'plays every frame', 'plays selection only', 'position',
1192
- 'preferred edge', 'preferred type', 'pressure',
1193
- 'previous text', 'prompt', 'properties',
1194
- 'prototype cell', 'pulls down', 'rate',
1195
- 'released when closed', 'repeated',
1196
- 'requested print time', 'required file type',
1197
- 'resizable', 'resized column', 'resource path',
1198
- 'returns records', 'reuses columns', 'rich text',
1199
- 'roll over', 'row height', 'rulers visible',
1200
- 'save panel', 'scripts path', 'scrollable',
1201
- 'selectable( identifiers)?', 'selected cell',
1202
- 'selected( data)? columns?', 'selected data items?',
1203
- 'selected( data)? rows?', 'selected item identifier',
1204
- 'selection by rect', 'send action on arrow key',
1205
- 'sends action when done editing', 'separates columns',
1206
- 'separator item', 'sequence number', 'services menu',
1207
- 'shared frameworks path', 'shared support path',
1208
- 'sheet', 'shift key down', 'shows alpha',
1209
- 'shows state by', 'size( mode)?',
1210
- 'smart insert delete enabled', 'sort case sensitivity',
1211
- 'sort column', 'sort order', 'sort type',
1212
- 'sorted( data rows)?', 'sound', 'source( mask)?',
1213
- 'spell checking enabled', 'starting page', 'state',
1214
- 'string value', 'sub menu', 'super menu', 'super view',
1215
- 'tab key traverses cells', 'tab state', 'tab type',
1216
- 'tab view', 'table view', 'tag', 'target( printer)?',
1217
- 'text color', 'text container insert',
1218
- 'text container origin', 'text returned',
1219
- 'tick mark position', 'time stamp',
1220
- 'title(d| (cell|font|height|position|rect))?',
1221
- 'tool tip', 'toolbar', 'trailing offset', 'transparent',
1222
- 'treat packages as directories', 'truncated labels',
1223
- 'types', 'unmodified characters', 'update views',
1224
- 'use sort indicator', 'user defaults',
1225
- 'uses data source', 'uses ruler',
1226
- 'uses threaded animation',
1227
- 'uses title from previous column', 'value wraps',
1228
- 'version',
1229
- 'vertical( (line scroll|page scroll|ruler view))?',
1230
- 'vertically resizable', 'view',
1231
- 'visible( document rect)?', 'volume', 'width', 'window',
1232
- 'windows menu', 'wraps', 'zoomable', 'zoomed']
1233
-
1234
- tokens = {
1235
- 'root': [
1236
- (r'\s+', Text),
1237
- (u'¬\\n', String.Escape),
1238
- (r"'s\s+", Text), # This is a possessive, consider moving
1239
- (r'(--|#).*?$', Comment),
1240
- (r'\(\*', Comment.Multiline, 'comment'),
1241
- (r'[\(\){}!,.:]', Punctuation),
1242
- (u'(«)([^»]+)(»)',
1243
- bygroups(Text, Name.Builtin, Text)),
1244
- (r'\b((?:considering|ignoring)\s*)'
1245
- r'(application responses|case|diacriticals|hyphens|'
1246
- r'numeric strings|punctuation|white space)',
1247
- bygroups(Keyword, Name.Builtin)),
1248
- (u'(-|\\*|\\+|&|≠|>=?|<=?|=|≥|≤|/|÷|\\^)', Operator),
1249
- (r"\b(%s)\b" % '|'.join(Operators), Operator.Word),
1250
- (r'^(\s*(?:on|end)\s+)'
1251
- r'(%s)' % '|'.join(StudioEvents[::-1]),
1252
- bygroups(Keyword, Name.Function)),
1253
- (r'^(\s*)(in|on|script|to)(\s+)', bygroups(Text, Keyword, Text)),
1254
- (r'\b(as )(%s)\b' % '|'.join(Classes),
1255
- bygroups(Keyword, Name.Class)),
1256
- (r'\b(%s)\b' % '|'.join(Literals), Name.Constant),
1257
- (r'\b(%s)\b' % '|'.join(Commands), Name.Builtin),
1258
- (r'\b(%s)\b' % '|'.join(Control), Keyword),
1259
- (r'\b(%s)\b' % '|'.join(Declarations), Keyword),
1260
- (r'\b(%s)\b' % '|'.join(Reserved), Name.Builtin),
1261
- (r'\b(%s)s?\b' % '|'.join(BuiltIn), Name.Builtin),
1262
- (r'\b(%s)\b' % '|'.join(HandlerParams), Name.Builtin),
1263
- (r'\b(%s)\b' % '|'.join(StudioProperties), Name.Attribute),
1264
- (r'\b(%s)s?\b' % '|'.join(StudioClasses), Name.Builtin),
1265
- (r'\b(%s)\b' % '|'.join(StudioCommands), Name.Builtin),
1266
- (r'\b(%s)\b' % '|'.join(References), Name.Builtin),
1267
- (r'"(\\\\|\\"|[^"])*"', String.Double),
1268
- (r'\b(%s)\b' % Identifiers, Name.Variable),
1269
- (r'[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?', Number.Float),
1270
- (r'[-+]?\d+', Number.Integer),
1271
- ],
1272
- 'comment': [
1273
- ('\(\*', Comment.Multiline, '#push'),
1274
- ('\*\)', Comment.Multiline, '#pop'),
1275
- ('[^*(]+', Comment.Multiline),
1276
- ('[*(]', Comment.Multiline),
1277
- ],
1278
- }
1279
-
1280
-
1281
- class ModelicaLexer(RegexLexer):
1282
- """
1283
- For `Modelica <http://www.modelica.org/>`_ source code.
1284
-
1285
- .. versionadded:: 1.1
1286
- """
1287
- name = 'Modelica'
1288
- aliases = ['modelica']
1289
- filenames = ['*.mo']
1290
- mimetypes = ['text/x-modelica']
1291
-
1292
- flags = re.IGNORECASE | re.DOTALL
1293
-
1294
- tokens = {
1295
- 'whitespace': [
1296
- (r'\n', Text),
1297
- (r'\s+', Text),
1298
- (r'\\\n', Text), # line continuation
1299
- (r'//(\n|(.|\n)*?[^\\]\n)', Comment),
1300
- (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment),
1301
- ],
1302
- 'statements': [
1303
- (r'"', String, 'string'),
1304
- (r'(\d+\.\d*|\.\d+|\d+|\d.)[eE][+-]?\d+[lL]?', Number.Float),
1305
- (r'(\d+\.\d*|\.\d+)', Number.Float),
1306
- (r'\d+[Ll]?', Number.Integer),
1307
- (r'[~!%^&*+=|?:<>/-]', Operator),
1308
- (r'(true|false|NULL|Real|Integer|Boolean)\b', Name.Builtin),
1309
- (r'([a-z_][\w]*|\'[^\']+\')'
1310
- r'([\[\d,:\]]*)'
1311
- r'(\.([a-z_][\w]*|\'[^\']+\'))+'
1312
- r'([\[\d,:\]]*)', Name.Class),
1313
- (r'(\'[\w\+\-\*\/\^]+\'|\w+)', Name),
1314
- (r'[()\[\]{},.;]', Punctuation),
1315
- (r'\'', Name, 'quoted_ident'),
1316
- ],
1317
- 'root': [
1318
- include('whitespace'),
1319
- include('classes'),
1320
- include('functions'),
1321
- include('keywords'),
1322
- include('operators'),
1323
- (r'("<html>|<html>)', Name.Tag, 'html-content'),
1324
- include('statements'),
1325
- ],
1326
- 'keywords': [
1327
- (r'(algorithm|annotation|break|connect|constant|constrainedby|'
1328
- r'discrete|each|end|else|elseif|elsewhen|encapsulated|enumeration|'
1329
- r'equation|exit|expandable|extends|'
1330
- r'external|false|final|flow|for|if|import|impure|in|initial\sequation|'
1331
- r'inner|input|loop|nondiscrete|outer|output|parameter|partial|'
1332
- r'protected|public|pure|redeclare|replaceable|stream|time|then|true|'
1333
- r'when|while|within)\b', Keyword),
1334
- ],
1335
- 'functions': [
1336
- (r'(abs|acos|acosh|asin|asinh|atan|atan2|atan3|ceil|cos|cosh|'
1337
- r'cross|diagonal|div|exp|fill|floor|getInstanceName|identity|'
1338
- r'linspace|log|log10|matrix|mod|max|min|ndims|ones|outerProduct|'
1339
- r'product|rem|scalar|semiLinear|skew|sign|sin|sinh|size|'
1340
- r'spatialDistribution|sum|sqrt|symmetric|tan|tanh|transpose|'
1341
- r'vector|zeros)\b', Name.Function),
1342
- ],
1343
- 'operators': [
1344
- (r'(actualStream|and|assert|backSample|cardinality|change|Clock|'
1345
- r'delay|der|edge|hold|homotopy|initial|inStream|noClock|noEvent|'
1346
- r'not|or|pre|previous|reinit|return|sample|smooth|'
1347
- r'spatialDistribution|shiftSample|subSample|superSample|terminal|'
1348
- r'terminate)\b', Name.Builtin),
1349
- ],
1350
- 'classes': [
1351
- (r'(operator)?(\s+)?(block|class|connector|end|function|model|'
1352
- r'operator|package|record|type)(\s+)'
1353
- r'((?!if|for|when|while)[a-z_]\w*|\'[^\']+\')([;]?)',
1354
- bygroups(Keyword, Text, Keyword, Text, Name.Class, Text))
1355
- ],
1356
- 'quoted_ident': [
1357
- (r'\'', Name, '#pop'),
1358
- (r'[^\']+', Name), # all other characters
1359
- ],
1360
- 'string': [
1361
- (r'"', String, '#pop'),
1362
- (r'\\([\\abfnrtv"\']|x[a-f0-9]{2,4}|[0-7]{1,3})',
1363
- String.Escape),
1364
- (r'[^\\"\n]+', String), # all other characters
1365
- (r'\\\n', String), # line continuation
1366
- (r'\\', String), # stray backslash
1367
- ],
1368
- 'html-content': [
1369
- (r'<\s*/\s*html\s*>"', Name.Tag, '#pop'),
1370
- (r'.+?(?=<\s*/\s*html\s*>)', using(HtmlLexer)),
1371
- ]
1372
- }
1373
-
1374
-
1375
- class RebolLexer(RegexLexer):
1376
- """
1377
- A `REBOL <http://www.rebol.com/>`_ lexer.
1378
-
1379
- .. versionadded:: 1.1
1380
- """
1381
- name = 'REBOL'
1382
- aliases = ['rebol']
1383
- filenames = ['*.r', '*.r3', '*.reb']
1384
- mimetypes = ['text/x-rebol']
1385
-
1386
- flags = re.IGNORECASE | re.MULTILINE
1387
-
1388
- re.IGNORECASE
1389
-
1390
- escape_re = r'(?:\^\([0-9a-f]{1,4}\)*)'
1391
-
1392
- def word_callback(lexer, match):
1393
- word = match.group()
1394
-
1395
- if re.match(".*:$", word):
1396
- yield match.start(), Generic.Subheading, word
1397
- elif re.match(
1398
- r'(native|alias|all|any|as-string|as-binary|bind|bound\?|case|'
1399
- r'catch|checksum|comment|debase|dehex|exclude|difference|disarm|'
1400
- r'either|else|enbase|foreach|remove-each|form|free|get|get-env|if|'
1401
- r'in|intersect|loop|minimum-of|maximum-of|mold|new-line|'
1402
- r'new-line\?|not|now|prin|print|reduce|compose|construct|repeat|'
1403
- r'reverse|save|script\?|set|shift|switch|throw|to-hex|trace|try|'
1404
- r'type\?|union|unique|unless|unprotect|unset|until|use|value\?|'
1405
- r'while|compress|decompress|secure|open|close|read|read-io|'
1406
- r'write-io|write|update|query|wait|input\?|exp|log-10|log-2|'
1407
- r'log-e|square-root|cosine|sine|tangent|arccosine|arcsine|'
1408
- r'arctangent|protect|lowercase|uppercase|entab|detab|connected\?|'
1409
- r'browse|launch|stats|get-modes|set-modes|to-local-file|'
1410
- r'to-rebol-file|encloak|decloak|create-link|do-browser|bind\?|'
1411
- r'hide|draw|show|size-text|textinfo|offset-to-caret|'
1412
- r'caret-to-offset|local-request-file|rgb-to-hsv|hsv-to-rgb|'
1413
- r'crypt-strength\?|dh-make-key|dh-generate-key|dh-compute-key|'
1414
- r'dsa-make-key|dsa-generate-key|dsa-make-signature|'
1415
- r'dsa-verify-signature|rsa-make-key|rsa-generate-key|'
1416
- r'rsa-encrypt)$', word):
1417
- yield match.start(), Name.Builtin, word
1418
- elif re.match(
1419
- r'(add|subtract|multiply|divide|remainder|power|and~|or~|xor~|'
1420
- r'minimum|maximum|negate|complement|absolute|random|head|tail|'
1421
- r'next|back|skip|at|pick|first|second|third|fourth|fifth|sixth|'
1422
- r'seventh|eighth|ninth|tenth|last|path|find|select|make|to|copy\*|'
1423
- r'insert|remove|change|poke|clear|trim|sort|min|max|abs|cp|'
1424
- r'copy)$', word):
1425
- yield match.start(), Name.Function, word
1426
- elif re.match(
1427
- r'(error|source|input|license|help|install|echo|Usage|with|func|'
1428
- r'throw-on-error|function|does|has|context|probe|\?\?|as-pair|'
1429
- r'mod|modulo|round|repend|about|set-net|append|join|rejoin|reform|'
1430
- r'remold|charset|array|replace|move|extract|forskip|forall|alter|'
1431
- r'first+|also|take|for|forever|dispatch|attempt|what-dir|'
1432
- r'change-dir|clean-path|list-dir|dirize|rename|split-path|delete|'
1433
- r'make-dir|delete-dir|in-dir|confirm|dump-obj|upgrade|what|'
1434
- r'build-tag|process-source|build-markup|decode-cgi|read-cgi|'
1435
- r'write-user|save-user|set-user-name|protect-system|parse-xml|'
1436
- r'cvs-date|cvs-version|do-boot|get-net-info|desktop|layout|'
1437
- r'scroll-para|get-face|alert|set-face|uninstall|unfocus|'
1438
- r'request-dir|center-face|do-events|net-error|decode-url|'
1439
- r'parse-header|parse-header-date|parse-email-addrs|import-email|'
1440
- r'send|build-attach-body|resend|show-popup|hide-popup|open-events|'
1441
- r'find-key-face|do-face|viewtop|confine|find-window|'
1442
- r'insert-event-func|remove-event-func|inform|dump-pane|dump-face|'
1443
- r'flag-face|deflag-face|clear-fields|read-net|vbug|path-thru|'
1444
- r'read-thru|load-thru|do-thru|launch-thru|load-image|'
1445
- r'request-download|do-face-alt|set-font|set-para|get-style|'
1446
- r'set-style|make-face|stylize|choose|hilight-text|hilight-all|'
1447
- r'unlight-text|focus|scroll-drag|clear-face|reset-face|scroll-face|'
1448
- r'resize-face|load-stock|load-stock-block|notify|request|flash|'
1449
- r'request-color|request-pass|request-text|request-list|'
1450
- r'request-date|request-file|dbug|editor|link-relative-path|'
1451
- r'emailer|parse-error)$', word):
1452
- yield match.start(), Keyword.Namespace, word
1453
- elif re.match(
1454
- r'(halt|quit|do|load|q|recycle|call|run|ask|parse|view|unview|'
1455
- r'return|exit|break)$', word):
1456
- yield match.start(), Name.Exception, word
1457
- elif re.match('REBOL$', word):
1458
- yield match.start(), Generic.Heading, word
1459
- elif re.match("to-.*", word):
1460
- yield match.start(), Keyword, word
1461
- elif re.match('(\+|-|\*|/|//|\*\*|and|or|xor|=\?|=|==|<>|<|>|<=|>=)$',
1462
- word):
1463
- yield match.start(), Operator, word
1464
- elif re.match(".*\?$", word):
1465
- yield match.start(), Keyword, word
1466
- elif re.match(".*\!$", word):
1467
- yield match.start(), Keyword.Type, word
1468
- elif re.match("'.*", word):
1469
- yield match.start(), Name.Variable.Instance, word # lit-word
1470
- elif re.match("#.*", word):
1471
- yield match.start(), Name.Label, word # issue
1472
- elif re.match("%.*", word):
1473
- yield match.start(), Name.Decorator, word # file
1474
- else:
1475
- yield match.start(), Name.Variable, word
1476
-
1477
- tokens = {
1478
- 'root': [
1479
- (r'[^R]+', Comment),
1480
- (r'REBOL\s+\[', Generic.Strong, 'script'),
1481
- (r'R', Comment)
1482
- ],
1483
- 'script': [
1484
- (r'\s+', Text),
1485
- (r'#"', String.Char, 'char'),
1486
- (r'#{[0-9a-f]*}', Number.Hex),
1487
- (r'2#{', Number.Hex, 'bin2'),
1488
- (r'64#{[0-9a-z+/=\s]*}', Number.Hex),
1489
- (r'"', String, 'string'),
1490
- (r'{', String, 'string2'),
1491
- (r';#+.*\n', Comment.Special),
1492
- (r';\*+.*\n', Comment.Preproc),
1493
- (r';.*\n', Comment),
1494
- (r'%"', Name.Decorator, 'stringFile'),
1495
- (r'%[^(\^{^")\s\[\]]+', Name.Decorator),
1496
- (r'[+-]?([a-z]{1,3})?\$\d+(\.\d+)?', Number.Float), # money
1497
- (r'[+-]?\d+\:\d+(\:\d+)?(\.\d+)?', String.Other), # time
1498
- (r'\d+[\-\/][0-9a-z]+[\-\/]\d+(\/\d+\:\d+((\:\d+)?'
1499
- r'([\.\d+]?([+-]?\d+:\d+)?)?)?)?', String.Other), # date
1500
- (r'\d+(\.\d+)+\.\d+', Keyword.Constant), # tuple
1501
- (r'\d+[xX]\d+', Keyword.Constant), # pair
1502
- (r'[+-]?\d+(\'\d+)?([\.,]\d*)?[eE][+-]?\d+', Number.Float),
1503
- (r'[+-]?\d+(\'\d+)?[\.,]\d*', Number.Float),
1504
- (r'[+-]?\d+(\'\d+)?', Number),
1505
- (r'[\[\]\(\)]', Generic.Strong),
1506
- (r'[a-z]+[^(\^{"\s:)]*://[^(\^{"\s)]*', Name.Decorator), # url
1507
- (r'mailto:[^(\^{"@\s)]+@[^(\^{"@\s)]+', Name.Decorator), # url
1508
- (r'[^(\^{"@\s)]+@[^(\^{"@\s)]+', Name.Decorator), # email
1509
- (r'comment\s"', Comment, 'commentString1'),
1510
- (r'comment\s{', Comment, 'commentString2'),
1511
- (r'comment\s\[', Comment, 'commentBlock'),
1512
- (r'comment\s[^(\s{\"\[]+', Comment),
1513
- (r'/[^(\^{^")\s/[\]]*', Name.Attribute),
1514
- (r'([^(\^{^")\s/[\]]+)(?=[:({"\s/\[\]])', word_callback),
1515
- (r'<[\w:.-]*>', Name.Tag),
1516
- (r'<[^(<>\s")]+', Name.Tag, 'tag'),
1517
- (r'([^(\^{^")\s]+)', Text),
1518
- ],
1519
- 'string': [
1520
- (r'[^(\^")]+', String),
1521
- (escape_re, String.Escape),
1522
- (r'[\(|\)]+', String),
1523
- (r'\^.', String.Escape),
1524
- (r'"', String, '#pop'),
1525
- ],
1526
- 'string2': [
1527
- (r'[^(\^{^})]+', String),
1528
- (escape_re, String.Escape),
1529
- (r'[\(|\)]+', String),
1530
- (r'\^.', String.Escape),
1531
- (r'{', String, '#push'),
1532
- (r'}', String, '#pop'),
1533
- ],
1534
- 'stringFile': [
1535
- (r'[^(\^")]+', Name.Decorator),
1536
- (escape_re, Name.Decorator),
1537
- (r'\^.', Name.Decorator),
1538
- (r'"', Name.Decorator, '#pop'),
1539
- ],
1540
- 'char': [
1541
- (escape_re + '"', String.Char, '#pop'),
1542
- (r'\^."', String.Char, '#pop'),
1543
- (r'."', String.Char, '#pop'),
1544
- ],
1545
- 'tag': [
1546
- (escape_re, Name.Tag),
1547
- (r'"', Name.Tag, 'tagString'),
1548
- (r'[^(<>\r\n")]+', Name.Tag),
1549
- (r'>', Name.Tag, '#pop'),
1550
- ],
1551
- 'tagString': [
1552
- (r'[^(\^")]+', Name.Tag),
1553
- (escape_re, Name.Tag),
1554
- (r'[\(|\)]+', Name.Tag),
1555
- (r'\^.', Name.Tag),
1556
- (r'"', Name.Tag, '#pop'),
1557
- ],
1558
- 'tuple': [
1559
- (r'(\d+\.)+', Keyword.Constant),
1560
- (r'\d+', Keyword.Constant, '#pop'),
1561
- ],
1562
- 'bin2': [
1563
- (r'\s+', Number.Hex),
1564
- (r'([0-1]\s*){8}', Number.Hex),
1565
- (r'}', Number.Hex, '#pop'),
1566
- ],
1567
- 'commentString1': [
1568
- (r'[^(\^")]+', Comment),
1569
- (escape_re, Comment),
1570
- (r'[\(|\)]+', Comment),
1571
- (r'\^.', Comment),
1572
- (r'"', Comment, '#pop'),
1573
- ],
1574
- 'commentString2': [
1575
- (r'[^(\^{^})]+', Comment),
1576
- (escape_re, Comment),
1577
- (r'[\(|\)]+', Comment),
1578
- (r'\^.', Comment),
1579
- (r'{', Comment, '#push'),
1580
- (r'}', Comment, '#pop'),
1581
- ],
1582
- 'commentBlock': [
1583
- (r'\[', Comment, '#push'),
1584
- (r'\]', Comment, '#pop'),
1585
- (r'"', Comment, "commentString1"),
1586
- (r'{', Comment, "commentString2"),
1587
- (r'[^(\[\]\"{)]+', Comment),
1588
- ],
1589
- }
1590
- def analyse_text(text):
1591
- """
1592
- Check if code contains REBOL header and so it probably not R code
1593
- """
1594
- if re.match(r'^\s*REBOL\s*\[', text, re.IGNORECASE):
1595
- # The code starts with REBOL header
1596
- return 1.0
1597
- elif re.search(r'\s*REBOL\s*[', text, re.IGNORECASE):
1598
- # The code contains REBOL header but also some text before it
1599
- return 0.5
1600
-
1601
-
1602
- class ABAPLexer(RegexLexer):
1603
- """
1604
- Lexer for ABAP, SAP's integrated language.
1605
-
1606
- .. versionadded:: 1.1
1607
- """
1608
- name = 'ABAP'
1609
- aliases = ['abap']
1610
- filenames = ['*.abap']
1611
- mimetypes = ['text/x-abap']
1612
-
1613
- flags = re.IGNORECASE | re.MULTILINE
1614
-
1615
- tokens = {
1616
- 'common': [
1617
- (r'\s+', Text),
1618
- (r'^\*.*$', Comment.Single),
1619
- (r'\".*?\n', Comment.Single),
1620
- ],
1621
- 'variable-names': [
1622
- (r'<\S+>', Name.Variable),
1623
- (r'\w[\w~]*(?:(\[\])|->\*)?', Name.Variable),
1624
- ],
1625
- 'root': [
1626
- include('common'),
1627
- #function calls
1628
- (r'(CALL\s+(?:BADI|CUSTOMER-FUNCTION|FUNCTION))(\s+)(\'?\S+\'?)',
1629
- bygroups(Keyword, Text, Name.Function)),
1630
- (r'(CALL\s+(?:DIALOG|SCREEN|SUBSCREEN|SELECTION-SCREEN|'
1631
- r'TRANSACTION|TRANSFORMATION))\b',
1632
- Keyword),
1633
- (r'(FORM|PERFORM)(\s+)(\w+)',
1634
- bygroups(Keyword, Text, Name.Function)),
1635
- (r'(PERFORM)(\s+)(\()(\w+)(\))',
1636
- bygroups(Keyword, Text, Punctuation, Name.Variable, Punctuation )),
1637
- (r'(MODULE)(\s+)(\S+)(\s+)(INPUT|OUTPUT)',
1638
- bygroups(Keyword, Text, Name.Function, Text, Keyword)),
1639
-
1640
- # method implementation
1641
- (r'(METHOD)(\s+)([\w~]+)',
1642
- bygroups(Keyword, Text, Name.Function)),
1643
- # method calls
1644
- (r'(\s+)([\w\-]+)([=\-]>)([\w\-~]+)',
1645
- bygroups(Text, Name.Variable, Operator, Name.Function)),
1646
- # call methodnames returning style
1647
- (r'(?<=(=|-)>)([\w\-~]+)(?=\()', Name.Function),
1648
-
1649
- # keywords with dashes in them.
1650
- # these need to be first, because for instance the -ID part
1651
- # of MESSAGE-ID wouldn't get highlighted if MESSAGE was
1652
- # first in the list of keywords.
1653
- (r'(ADD-CORRESPONDING|AUTHORITY-CHECK|'
1654
- r'CLASS-DATA|CLASS-EVENTS|CLASS-METHODS|CLASS-POOL|'
1655
- r'DELETE-ADJACENT|DIVIDE-CORRESPONDING|'
1656
- r'EDITOR-CALL|ENHANCEMENT-POINT|ENHANCEMENT-SECTION|EXIT-COMMAND|'
1657
- r'FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|'
1658
- r'INTERFACE-POOL|INVERTED-DATE|'
1659
- r'LOAD-OF-PROGRAM|LOG-POINT|'
1660
- r'MESSAGE-ID|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|'
1661
- r'NEW-LINE|NEW-PAGE|NEW-SECTION|NO-EXTENSION|'
1662
- r'OUTPUT-LENGTH|PRINT-CONTROL|'
1663
- r'SELECT-OPTIONS|START-OF-SELECTION|SUBTRACT-CORRESPONDING|'
1664
- r'SYNTAX-CHECK|SYSTEM-EXCEPTIONS|'
1665
- r'TYPE-POOL|TYPE-POOLS'
1666
- r')\b', Keyword),
1667
-
1668
- # keyword kombinations
1669
- (r'CREATE\s+(PUBLIC|PRIVATE|DATA|OBJECT)|'
1670
- r'((PUBLIC|PRIVATE|PROTECTED)\s+SECTION|'
1671
- r'(TYPE|LIKE)(\s+(LINE\s+OF|REF\s+TO|'
1672
- r'(SORTED|STANDARD|HASHED)\s+TABLE\s+OF))?|'
1673
- r'FROM\s+(DATABASE|MEMORY)|CALL\s+METHOD|'
1674
- r'(GROUP|ORDER) BY|HAVING|SEPARATED BY|'
1675
- r'GET\s+(BADI|BIT|CURSOR|DATASET|LOCALE|PARAMETER|'
1676
- r'PF-STATUS|(PROPERTY|REFERENCE)\s+OF|'
1677
- r'RUN\s+TIME|TIME\s+(STAMP)?)?|'
1678
- r'SET\s+(BIT|BLANK\s+LINES|COUNTRY|CURSOR|DATASET|EXTENDED\s+CHECK|'
1679
- r'HANDLER|HOLD\s+DATA|LANGUAGE|LEFT\s+SCROLL-BOUNDARY|'
1680
- r'LOCALE|MARGIN|PARAMETER|PF-STATUS|PROPERTY\s+OF|'
1681
- r'RUN\s+TIME\s+(ANALYZER|CLOCK\s+RESOLUTION)|SCREEN|'
1682
- r'TITLEBAR|UPADTE\s+TASK\s+LOCAL|USER-COMMAND)|'
1683
- r'CONVERT\s+((INVERTED-)?DATE|TIME|TIME\s+STAMP|TEXT)|'
1684
- r'(CLOSE|OPEN)\s+(DATASET|CURSOR)|'
1685
- r'(TO|FROM)\s+(DATA BUFFER|INTERNAL TABLE|MEMORY ID|'
1686
- r'DATABASE|SHARED\s+(MEMORY|BUFFER))|'
1687
- r'DESCRIBE\s+(DISTANCE\s+BETWEEN|FIELD|LIST|TABLE)|'
1688
- r'FREE\s(MEMORY|OBJECT)?|'
1689
- r'PROCESS\s+(BEFORE\s+OUTPUT|AFTER\s+INPUT|'
1690
- r'ON\s+(VALUE-REQUEST|HELP-REQUEST))|'
1691
- r'AT\s+(LINE-SELECTION|USER-COMMAND|END\s+OF|NEW)|'
1692
- r'AT\s+SELECTION-SCREEN(\s+(ON(\s+(BLOCK|(HELP|VALUE)-REQUEST\s+FOR|'
1693
- r'END\s+OF|RADIOBUTTON\s+GROUP))?|OUTPUT))?|'
1694
- r'SELECTION-SCREEN:?\s+((BEGIN|END)\s+OF\s+((TABBED\s+)?BLOCK|LINE|'
1695
- r'SCREEN)|COMMENT|FUNCTION\s+KEY|'
1696
- r'INCLUDE\s+BLOCKS|POSITION|PUSHBUTTON|'
1697
- r'SKIP|ULINE)|'
1698
- r'LEAVE\s+(LIST-PROCESSING|PROGRAM|SCREEN|'
1699
- r'TO LIST-PROCESSING|TO TRANSACTION)'
1700
- r'(ENDING|STARTING)\s+AT|'
1701
- r'FORMAT\s+(COLOR|INTENSIFIED|INVERSE|HOTSPOT|INPUT|FRAMES|RESET)|'
1702
- r'AS\s+(CHECKBOX|SUBSCREEN|WINDOW)|'
1703
- r'WITH\s+(((NON-)?UNIQUE)?\s+KEY|FRAME)|'
1704
- r'(BEGIN|END)\s+OF|'
1705
- r'DELETE(\s+ADJACENT\s+DUPLICATES\sFROM)?|'
1706
- r'COMPARING(\s+ALL\s+FIELDS)?|'
1707
- r'INSERT(\s+INITIAL\s+LINE\s+INTO|\s+LINES\s+OF)?|'
1708
- r'IN\s+((BYTE|CHARACTER)\s+MODE|PROGRAM)|'
1709
- r'END-OF-(DEFINITION|PAGE|SELECTION)|'
1710
- r'WITH\s+FRAME(\s+TITLE)|'
1711
-
1712
- # simple kombinations
1713
- r'AND\s+(MARK|RETURN)|CLIENT\s+SPECIFIED|CORRESPONDING\s+FIELDS\s+OF|'
1714
- r'IF\s+FOUND|FOR\s+EVENT|INHERITING\s+FROM|LEAVE\s+TO\s+SCREEN|'
1715
- r'LOOP\s+AT\s+(SCREEN)?|LOWER\s+CASE|MATCHCODE\s+OBJECT|MODIF\s+ID|'
1716
- r'MODIFY\s+SCREEN|NESTING\s+LEVEL|NO\s+INTERVALS|OF\s+STRUCTURE|'
1717
- r'RADIOBUTTON\s+GROUP|RANGE\s+OF|REF\s+TO|SUPPRESS DIALOG|'
1718
- r'TABLE\s+OF|UPPER\s+CASE|TRANSPORTING\s+NO\s+FIELDS|'
1719
- r'VALUE\s+CHECK|VISIBLE\s+LENGTH|HEADER\s+LINE)\b', Keyword),
1720
-
1721
- # single word keywords.
1722
- (r'(^|(?<=(\s|\.)))(ABBREVIATED|ADD|ALIASES|APPEND|ASSERT|'
1723
- r'ASSIGN(ING)?|AT(\s+FIRST)?|'
1724
- r'BACK|BLOCK|BREAK-POINT|'
1725
- r'CASE|CATCH|CHANGING|CHECK|CLASS|CLEAR|COLLECT|COLOR|COMMIT|'
1726
- r'CREATE|COMMUNICATION|COMPONENTS?|COMPUTE|CONCATENATE|CONDENSE|'
1727
- r'CONSTANTS|CONTEXTS|CONTINUE|CONTROLS|'
1728
- r'DATA|DECIMALS|DEFAULT|DEFINE|DEFINITION|DEFERRED|DEMAND|'
1729
- r'DETAIL|DIRECTORY|DIVIDE|DO|'
1730
- r'ELSE(IF)?|ENDAT|ENDCASE|ENDCLASS|ENDDO|ENDFORM|ENDFUNCTION|'
1731
- r'ENDIF|ENDLOOP|ENDMETHOD|ENDMODULE|ENDSELECT|ENDTRY|'
1732
- r'ENHANCEMENT|EVENTS|EXCEPTIONS|EXIT|EXPORT|EXPORTING|EXTRACT|'
1733
- r'FETCH|FIELDS?|FIND|FOR|FORM|FORMAT|FREE|FROM|'
1734
- r'HIDE|'
1735
- r'ID|IF|IMPORT|IMPLEMENTATION|IMPORTING|IN|INCLUDE|INCLUDING|'
1736
- r'INDEX|INFOTYPES|INITIALIZATION|INTERFACE|INTERFACES|INTO|'
1737
- r'LENGTH|LINES|LOAD|LOCAL|'
1738
- r'JOIN|'
1739
- r'KEY|'
1740
- r'MAXIMUM|MESSAGE|METHOD[S]?|MINIMUM|MODULE|MODIFY|MOVE|MULTIPLY|'
1741
- r'NODES|'
1742
- r'OBLIGATORY|OF|OFF|ON|OVERLAY|'
1743
- r'PACK|PARAMETERS|PERCENTAGE|POSITION|PROGRAM|PROVIDE|PUBLIC|PUT|'
1744
- r'RAISE|RAISING|RANGES|READ|RECEIVE|REFRESH|REJECT|REPORT|RESERVE|'
1745
- r'RESUME|RETRY|RETURN|RETURNING|RIGHT|ROLLBACK|'
1746
- r'SCROLL|SEARCH|SELECT|SHIFT|SINGLE|SKIP|SORT|SPLIT|STATICS|STOP|'
1747
- r'SUBMIT|SUBTRACT|SUM|SUMMARY|SUMMING|SUPPLY|'
1748
- r'TABLE|TABLES|TIMES|TITLE|TO|TOP-OF-PAGE|TRANSFER|TRANSLATE|TRY|TYPES|'
1749
- r'ULINE|UNDER|UNPACK|UPDATE|USING|'
1750
- r'VALUE|VALUES|VIA|'
1751
- r'WAIT|WHEN|WHERE|WHILE|WITH|WINDOW|WRITE)\b', Keyword),
1752
-
1753
- # builtins
1754
- (r'(abs|acos|asin|atan|'
1755
- r'boolc|boolx|bit_set|'
1756
- r'char_off|charlen|ceil|cmax|cmin|condense|contains|'
1757
- r'contains_any_of|contains_any_not_of|concat_lines_of|cos|cosh|'
1758
- r'count|count_any_of|count_any_not_of|'
1759
- r'dbmaxlen|distance|'
1760
- r'escape|exp|'
1761
- r'find|find_end|find_any_of|find_any_not_of|floor|frac|from_mixed|'
1762
- r'insert|'
1763
- r'lines|log|log10|'
1764
- r'match|matches|'
1765
- r'nmax|nmin|numofchar|'
1766
- r'repeat|replace|rescale|reverse|round|'
1767
- r'segment|shift_left|shift_right|sign|sin|sinh|sqrt|strlen|'
1768
- r'substring|substring_after|substring_from|substring_before|substring_to|'
1769
- r'tan|tanh|to_upper|to_lower|to_mixed|translate|trunc|'
1770
- r'xstrlen)(\()\b', bygroups(Name.Builtin, Punctuation)),
1771
-
1772
- (r'&[0-9]', Name),
1773
- (r'[0-9]+', Number.Integer),
1774
-
1775
- # operators which look like variable names before
1776
- # parsing variable names.
1777
- (r'(?<=(\s|.))(AND|EQ|NE|GT|LT|GE|LE|CO|CN|CA|NA|CS|NOT|NS|CP|NP|'
1778
- r'BYTE-CO|BYTE-CN|BYTE-CA|BYTE-NA|BYTE-CS|BYTE-NS|'
1779
- r'IS\s+(NOT\s+)?(INITIAL|ASSIGNED|REQUESTED|BOUND))\b', Operator),
1780
-
1781
- include('variable-names'),
1782
-
1783
- # standard oparators after variable names,
1784
- # because < and > are part of field symbols.
1785
- (r'[?*<>=\-+]', Operator),
1786
- (r"'(''|[^'])*'", String.Single),
1787
- (r"`([^`])*`", String.Single),
1788
- (r'[/;:()\[\],\.]', Punctuation)
1789
- ],
1790
- }
1791
-
1792
-
1793
- class NewspeakLexer(RegexLexer):
1794
- """
1795
- For `Newspeak <http://newspeaklanguage.org/>` syntax.
1796
- """
1797
- name = 'Newspeak'
1798
- filenames = ['*.ns2']
1799
- aliases = ['newspeak', ]
1800
- mimetypes = ['text/x-newspeak']
1801
-
1802
- tokens = {
1803
- 'root' : [
1804
- (r'\b(Newsqueak2)\b',Keyword.Declaration),
1805
- (r"'[^']*'",String),
1806
- (r'\b(class)(\s+)(\w+)(\s*)',
1807
- bygroups(Keyword.Declaration,Text,Name.Class,Text)),
1808
- (r'\b(mixin|self|super|private|public|protected|nil|true|false)\b',
1809
- Keyword),
1810
- (r'(\w+\:)(\s*)([a-zA-Z_]\w+)',
1811
- bygroups(Name.Function,Text,Name.Variable)),
1812
- (r'(\w+)(\s*)(=)',
1813
- bygroups(Name.Attribute,Text,Operator)),
1814
- (r'<\w+>', Comment.Special),
1815
- include('expressionstat'),
1816
- include('whitespace')
1817
- ],
1818
-
1819
- 'expressionstat': [
1820
- (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
1821
- (r'\d+', Number.Integer),
1822
- (r':\w+',Name.Variable),
1823
- (r'(\w+)(::)', bygroups(Name.Variable, Operator)),
1824
- (r'\w+:', Name.Function),
1825
- (r'\w+', Name.Variable),
1826
- (r'\(|\)', Punctuation),
1827
- (r'\[|\]', Punctuation),
1828
- (r'\{|\}', Punctuation),
1829
-
1830
- (r'(\^|\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-|:)', Operator),
1831
- (r'\.|;', Punctuation),
1832
- include('whitespace'),
1833
- include('literals'),
1834
- ],
1835
- 'literals': [
1836
- (r'\$.', String),
1837
- (r"'[^']*'", String),
1838
- (r"#'[^']*'", String.Symbol),
1839
- (r"#\w+:?", String.Symbol),
1840
- (r"#(\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-)+", String.Symbol)
1841
-
1842
- ],
1843
- 'whitespace' : [
1844
- (r'\s+', Text),
1845
- (r'"[^"]*"', Comment)
1846
- ]
1847
- }
1848
-
1849
-
1850
- class GherkinLexer(RegexLexer):
1851
- """
1852
- For `Gherkin <http://github.com/aslakhellesoy/gherkin/>` syntax.
1853
-
1854
- .. versionadded:: 1.2
1855
- """
1856
- name = 'Gherkin'
1857
- aliases = ['cucumber', 'gherkin']
1858
- filenames = ['*.feature']
1859
- mimetypes = ['text/x-gherkin']
1860
-
1861
- feature_keywords = u'^(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Фича|Особина|Могућност|Özellik|Właściwość|Tính năng|Trajto|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd)(:)(.*)$'
1862
- feature_element_keywords = u'^(\\s*)(시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|سيناريو مخطط|سيناريو|الخلفية|תרחיש|תבנית תרחיש|רקע|Тарих|Сценарій|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Пример|Предыстория|Предистория|Позадина|Передумова|Основа|Концепт|Контекст|Założenia|Wharrimean is|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenaro|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenarijaus šablonas|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Konturo de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Fono|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l\'escenari|Escenario|Escenari|Dis is what went down|Dasar|Contexto|Contexte|Contesto|Condiţii|Conditii|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y\'all|Achtergrond|Abstrakt Scenario|Abstract Scenario)(:)(.*)$'
1863
- examples_keywords = u'^(\\s*)(예|例子|例|サンプル|امثلة|דוגמאות|Сценарији|Примери|Приклади|Мисоллар|Значения|Örnekler|Voorbeelden|Variantai|Tapaukset|Scenarios|Scenariji|Scenarijai|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Piemēri|Pavyzdžiai|Paraugs|Juhtumid|Exemplos|Exemples|Exemplele|Exempel|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Contoh|Cobber|Beispiele)(:)(.*)$'
1864
- step_keywords = u'^(\\s*)(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y\'all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y\'all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu\'|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y\'all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y\'all |But |Buh |Biết |Bet |BUT |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y\'all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )'
1865
-
1866
- tokens = {
1867
- 'comments': [
1868
- (r'^\s*#.*$', Comment),
1869
- ],
1870
- 'feature_elements' : [
1871
- (step_keywords, Keyword, "step_content_stack"),
1872
- include('comments'),
1873
- (r"(\s|.)", Name.Function),
1874
- ],
1875
- 'feature_elements_on_stack' : [
1876
- (step_keywords, Keyword, "#pop:2"),
1877
- include('comments'),
1878
- (r"(\s|.)", Name.Function),
1879
- ],
1880
- 'examples_table': [
1881
- (r"\s+\|", Keyword, 'examples_table_header'),
1882
- include('comments'),
1883
- (r"(\s|.)", Name.Function),
1884
- ],
1885
- 'examples_table_header': [
1886
- (r"\s+\|\s*$", Keyword, "#pop:2"),
1887
- include('comments'),
1888
- (r"\\\|", Name.Variable),
1889
- (r"\s*\|", Keyword),
1890
- (r"[^\|]", Name.Variable),
1891
- ],
1892
- 'scenario_sections_on_stack': [
1893
- (feature_element_keywords,
1894
- bygroups(Name.Function, Keyword, Keyword, Name.Function),
1895
- "feature_elements_on_stack"),
1896
- ],
1897
- 'narrative': [
1898
- include('scenario_sections_on_stack'),
1899
- include('comments'),
1900
- (r"(\s|.)", Name.Function),
1901
- ],
1902
- 'table_vars': [
1903
- (r'(<[^>]+>)', Name.Variable),
1904
- ],
1905
- 'numbers': [
1906
- (r'(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', String),
1907
- ],
1908
- 'string': [
1909
- include('table_vars'),
1910
- (r'(\s|.)', String),
1911
- ],
1912
- 'py_string': [
1913
- (r'"""', Keyword, "#pop"),
1914
- include('string'),
1915
- ],
1916
- 'step_content_root':[
1917
- (r"$", Keyword, "#pop"),
1918
- include('step_content'),
1919
- ],
1920
- 'step_content_stack':[
1921
- (r"$", Keyword, "#pop:2"),
1922
- include('step_content'),
1923
- ],
1924
- 'step_content':[
1925
- (r'"', Name.Function, "double_string"),
1926
- include('table_vars'),
1927
- include('numbers'),
1928
- include('comments'),
1929
- (r'(\s|.)', Name.Function),
1930
- ],
1931
- 'table_content': [
1932
- (r"\s+\|\s*$", Keyword, "#pop"),
1933
- include('comments'),
1934
- (r"\\\|", String),
1935
- (r"\s*\|", Keyword),
1936
- include('string'),
1937
- ],
1938
- 'double_string': [
1939
- (r'"', Name.Function, "#pop"),
1940
- include('string'),
1941
- ],
1942
- 'root': [
1943
- (r'\n', Name.Function),
1944
- include('comments'),
1945
- (r'"""', Keyword, "py_string"),
1946
- (r'\s+\|', Keyword, 'table_content'),
1947
- (r'"', Name.Function, "double_string"),
1948
- include('table_vars'),
1949
- include('numbers'),
1950
- (r'(\s*)(@[^@\r\n\t ]+)', bygroups(Name.Function, Name.Tag)),
1951
- (step_keywords, bygroups(Name.Function, Keyword),
1952
- 'step_content_root'),
1953
- (feature_keywords, bygroups(Keyword, Keyword, Name.Function),
1954
- 'narrative'),
1955
- (feature_element_keywords,
1956
- bygroups(Name.Function, Keyword, Keyword, Name.Function),
1957
- 'feature_elements'),
1958
- (examples_keywords,
1959
- bygroups(Name.Function, Keyword, Keyword, Name.Function),
1960
- 'examples_table'),
1961
- (r'(\s|.)', Name.Function),
1962
- ]
1963
- }
1964
-
1965
- class AsymptoteLexer(RegexLexer):
1966
- """
1967
- For `Asymptote <http://asymptote.sf.net/>`_ source code.
1968
-
1969
- .. versionadded:: 1.2
1970
- """
1971
- name = 'Asymptote'
1972
- aliases = ['asy', 'asymptote']
1973
- filenames = ['*.asy']
1974
- mimetypes = ['text/x-asymptote']
1975
-
1976
- #: optional Comment or Whitespace
1977
- _ws = r'(?:\s|//.*?\n|/\*.*?\*/)+'
1978
-
1979
- tokens = {
1980
- 'whitespace': [
1981
- (r'\n', Text),
1982
- (r'\s+', Text),
1983
- (r'\\\n', Text), # line continuation
1984
- (r'//(\n|(.|\n)*?[^\\]\n)', Comment),
1985
- (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment),
1986
- ],
1987
- 'statements': [
1988
- # simple string (TeX friendly)
1989
- (r'"(\\\\|\\"|[^"])*"', String),
1990
- # C style string (with character escapes)
1991
- (r"'", String, 'string'),
1992
- (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float),
1993
- (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
1994
- (r'0x[0-9a-fA-F]+[Ll]?', Number.Hex),
1995
- (r'0[0-7]+[Ll]?', Number.Oct),
1996
- (r'\d+[Ll]?', Number.Integer),
1997
- (r'[~!%^&*+=|?:<>/-]', Operator),
1998
- (r'[()\[\],.]', Punctuation),
1999
- (r'\b(case)(.+?)(:)', bygroups(Keyword, using(this), Text)),
2000
- (r'(and|controls|tension|atleast|curl|if|else|while|for|do|'
2001
- r'return|break|continue|struct|typedef|new|access|import|'
2002
- r'unravel|from|include|quote|static|public|private|restricted|'
2003
- r'this|explicit|true|false|null|cycle|newframe|operator)\b', Keyword),
2004
- # Since an asy-type-name can be also an asy-function-name,
2005
- # in the following we test if the string " [a-zA-Z]" follows
2006
- # the Keyword.Type.
2007
- # Of course it is not perfect !
2008
- (r'(Braid|FitResult|Label|Legend|TreeNode|abscissa|arc|arrowhead|'
2009
- r'binarytree|binarytreeNode|block|bool|bool3|bounds|bqe|circle|'
2010
- r'conic|coord|coordsys|cputime|ellipse|file|filltype|frame|grid3|'
2011
- r'guide|horner|hsv|hyperbola|indexedTransform|int|inversion|key|'
2012
- r'light|line|linefit|marginT|marker|mass|object|pair|parabola|path|'
2013
- r'path3|pen|picture|point|position|projection|real|revolution|'
2014
- r'scaleT|scientific|segment|side|slice|splitface|string|surface|'
2015
- r'tensionSpecifier|ticklocate|ticksgridT|tickvalues|transform|'
2016
- r'transformation|tree|triangle|trilinear|triple|vector|'
2017
- r'vertex|void)(?=([ ]{1,}[a-zA-Z]))', Keyword.Type),
2018
- # Now the asy-type-name which are not asy-function-name
2019
- # except yours !
2020
- # Perhaps useless
2021
- (r'(Braid|FitResult|TreeNode|abscissa|arrowhead|block|bool|bool3|'
2022
- r'bounds|coord|frame|guide|horner|int|linefit|marginT|pair|pen|'
2023
- r'picture|position|real|revolution|slice|splitface|ticksgridT|'
2024
- r'tickvalues|tree|triple|vertex|void)\b', Keyword.Type),
2025
- ('[a-zA-Z_]\w*:(?!:)', Name.Label),
2026
- ('[a-zA-Z_]\w*', Name),
2027
- ],
2028
- 'root': [
2029
- include('whitespace'),
2030
- # functions
2031
- (r'((?:[\w*\s])+?(?:\s|\*))' # return arguments
2032
- r'([a-zA-Z_]\w*)' # method name
2033
- r'(\s*\([^;]*?\))' # signature
2034
- r'(' + _ws + r')({)',
2035
- bygroups(using(this), Name.Function, using(this), using(this),
2036
- Punctuation),
2037
- 'function'),
2038
- # function declarations
2039
- (r'((?:[\w*\s])+?(?:\s|\*))' # return arguments
2040
- r'([a-zA-Z_]\w*)' # method name
2041
- r'(\s*\([^;]*?\))' # signature
2042
- r'(' + _ws + r')(;)',
2043
- bygroups(using(this), Name.Function, using(this), using(this),
2044
- Punctuation)),
2045
- ('', Text, 'statement'),
2046
- ],
2047
- 'statement' : [
2048
- include('whitespace'),
2049
- include('statements'),
2050
- ('[{}]', Punctuation),
2051
- (';', Punctuation, '#pop'),
2052
- ],
2053
- 'function': [
2054
- include('whitespace'),
2055
- include('statements'),
2056
- (';', Punctuation),
2057
- ('{', Punctuation, '#push'),
2058
- ('}', Punctuation, '#pop'),
2059
- ],
2060
- 'string': [
2061
- (r"'", String, '#pop'),
2062
- (r'\\([\\abfnrtv"\'?]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
2063
- (r'\n', String),
2064
- (r"[^\\'\n]+", String), # all other characters
2065
- (r'\\\n', String),
2066
- (r'\\n', String), # line continuation
2067
- (r'\\', String), # stray backslash
2068
- ]
2069
- }
2070
-
2071
- def get_tokens_unprocessed(self, text):
2072
- from pygments.lexers._asybuiltins import ASYFUNCNAME, ASYVARNAME
2073
- for index, token, value in \
2074
- RegexLexer.get_tokens_unprocessed(self, text):
2075
- if token is Name and value in ASYFUNCNAME:
2076
- token = Name.Function
2077
- elif token is Name and value in ASYVARNAME:
2078
- token = Name.Variable
2079
- yield index, token, value
2080
-
2081
-
2082
- class PostScriptLexer(RegexLexer):
2083
- """
2084
- Lexer for PostScript files.
2085
-
2086
- The PostScript Language Reference published by Adobe at
2087
- <http://partners.adobe.com/public/developer/en/ps/PLRM.pdf>
2088
- is the authority for this.
2089
-
2090
- .. versionadded:: 1.4
2091
- """
2092
- name = 'PostScript'
2093
- aliases = ['postscript', 'postscr']
2094
- filenames = ['*.ps', '*.eps']
2095
- mimetypes = ['application/postscript']
2096
-
2097
- delimiter = r'\(\)\<\>\[\]\{\}\/\%\s'
2098
- delimiter_end = r'(?=[%s])' % delimiter
2099
-
2100
- valid_name_chars = r'[^%s]' % delimiter
2101
- valid_name = r"%s+%s" % (valid_name_chars, delimiter_end)
2102
-
2103
- tokens = {
2104
- 'root': [
2105
- # All comment types
2106
- (r'^%!.+\n', Comment.Preproc),
2107
- (r'%%.*\n', Comment.Special),
2108
- (r'(^%.*\n){2,}', Comment.Multiline),
2109
- (r'%.*\n', Comment.Single),
2110
-
2111
- # String literals are awkward; enter separate state.
2112
- (r'\(', String, 'stringliteral'),
2113
-
2114
- (r'[\{\}(\<\<)(\>\>)\[\]]', Punctuation),
2115
-
2116
- # Numbers
2117
- (r'<[0-9A-Fa-f]+>' + delimiter_end, Number.Hex),
2118
- # Slight abuse: use Oct to signify any explicit base system
2119
- (r'[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)'
2120
- r'((e|E)[0-9]+)?' + delimiter_end, Number.Oct),
2121
- (r'(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?'
2122
- + delimiter_end, Number.Float),
2123
- (r'(\-|\+)?[0-9]+' + delimiter_end, Number.Integer),
2124
-
2125
- # References
2126
- (r'\/%s' % valid_name, Name.Variable),
2127
-
2128
- # Names
2129
- (valid_name, Name.Function), # Anything else is executed
2130
-
2131
- # These keywords taken from
2132
- # <http://www.math.ubc.ca/~cass/graphics/manual/pdf/a1.pdf>
2133
- # Is there an authoritative list anywhere that doesn't involve
2134
- # trawling documentation?
2135
-
2136
- (r'(false|true)' + delimiter_end, Keyword.Constant),
2137
-
2138
- # Conditionals / flow control
2139
- (r'(eq|ne|ge|gt|le|lt|and|or|not|if|ifelse|for|forall)'
2140
- + delimiter_end, Keyword.Reserved),
2141
-
2142
- ('(abs|add|aload|arc|arcn|array|atan|begin|bind|ceiling|charpath|'
2143
- 'clip|closepath|concat|concatmatrix|copy|cos|currentlinewidth|'
2144
- 'currentmatrix|currentpoint|curveto|cvi|cvs|def|defaultmatrix|'
2145
- 'dict|dictstackoverflow|div|dtransform|dup|end|exch|exec|exit|exp|'
2146
- 'fill|findfont|floor|get|getinterval|grestore|gsave|gt|'
2147
- 'identmatrix|idiv|idtransform|index|invertmatrix|itransform|'
2148
- 'length|lineto|ln|load|log|loop|matrix|mod|moveto|mul|neg|newpath|'
2149
- 'pathforall|pathbbox|pop|print|pstack|put|quit|rand|rangecheck|'
2150
- 'rcurveto|repeat|restore|rlineto|rmoveto|roll|rotate|round|run|'
2151
- 'save|scale|scalefont|setdash|setfont|setgray|setlinecap|'
2152
- 'setlinejoin|setlinewidth|setmatrix|setrgbcolor|shfill|show|'
2153
- 'showpage|sin|sqrt|stack|stringwidth|stroke|strokepath|sub|'
2154
- 'syntaxerror|transform|translate|truncate|typecheck|undefined|'
2155
- 'undefinedfilename|undefinedresult)' + delimiter_end,
2156
- Name.Builtin),
2157
-
2158
- (r'\s+', Text),
2159
- ],
2160
-
2161
- 'stringliteral': [
2162
- (r'[^\(\)\\]+', String),
2163
- (r'\\', String.Escape, 'escape'),
2164
- (r'\(', String, '#push'),
2165
- (r'\)', String, '#pop'),
2166
- ],
2167
-
2168
- 'escape': [
2169
- (r'([0-8]{3}|n|r|t|b|f|\\|\(|\))?', String.Escape, '#pop'),
2170
- ],
2171
- }
2172
-
2173
-
2174
- class AutohotkeyLexer(RegexLexer):
2175
- """
2176
- For `autohotkey <http://www.autohotkey.com/>`_ source code.
2177
-
2178
- .. versionadded:: 1.4
2179
- """
2180
- name = 'autohotkey'
2181
- aliases = ['ahk', 'autohotkey']
2182
- filenames = ['*.ahk', '*.ahkl']
2183
- mimetypes = ['text/x-autohotkey']
2184
-
2185
- tokens = {
2186
- 'root': [
2187
- (r'^(\s*)(/\*)', bygroups(Text, Comment.Multiline),
2188
- 'incomment'),
2189
- (r'^(\s*)(\()', bygroups(Text, Generic), 'incontinuation'),
2190
- (r'\s+;.*?$', Comment.Singleline),
2191
- (r'^;.*?$', Comment.Singleline),
2192
- (r'[]{}(),;[]', Punctuation),
2193
- (r'(in|is|and|or|not)\b', Operator.Word),
2194
- (r'\%[a-zA-Z_#@$][\w#@$]*\%', Name.Variable),
2195
- (r'!=|==|:=|\.=|<<|>>|[-~+/*%=<>&^|?:!.]', Operator),
2196
- include('commands'),
2197
- include('labels'),
2198
- include('builtInFunctions'),
2199
- include('builtInVariables'),
2200
- (r'"', String, combined('stringescape', 'dqs')),
2201
- include('numbers'),
2202
- (r'[a-zA-Z_#@$][\w#@$]*', Name),
2203
- (r'\\|\'', Text),
2204
- (r'\`([\,\%\`abfnrtv\-\+;])', String.Escape),
2205
- include('garbage'),
2206
- ],
2207
- 'incomment': [
2208
- (r'^\s*\*/', Comment.Multiline, '#pop'),
2209
- (r'[^*/]', Comment.Multiline),
2210
- (r'[*/]', Comment.Multiline)
2211
- ],
2212
- 'incontinuation': [
2213
- (r'^\s*\)', Generic, '#pop'),
2214
- (r'[^)]', Generic),
2215
- (r'[)]', Generic),
2216
- ],
2217
- 'commands': [
2218
- (r'(?i)^(\s*)(global|local|static|'
2219
- r'#AllowSameLineComments|#ClipboardTimeout|#CommentFlag|'
2220
- r'#ErrorStdOut|#EscapeChar|#HotkeyInterval|#HotkeyModifierTimeout|'
2221
- r'#Hotstring|#IfWinActive|#IfWinExist|#IfWinNotActive|'
2222
- r'#IfWinNotExist|#IncludeAgain|#Include|#InstallKeybdHook|'
2223
- r'#InstallMouseHook|#KeyHistory|#LTrim|#MaxHotkeysPerInterval|'
2224
- r'#MaxMem|#MaxThreads|#MaxThreadsBuffer|#MaxThreadsPerHotkey|'
2225
- r'#NoEnv|#NoTrayIcon|#Persistent|#SingleInstance|#UseHook|'
2226
- r'#WinActivateForce|AutoTrim|BlockInput|Break|Click|ClipWait|'
2227
- r'Continue|Control|ControlClick|ControlFocus|ControlGetFocus|'
2228
- r'ControlGetPos|ControlGetText|ControlGet|ControlMove|ControlSend|'
2229
- r'ControlSendRaw|ControlSetText|CoordMode|Critical|'
2230
- r'DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|'
2231
- r'DriveSpaceFree|Edit|Else|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|'
2232
- r'EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|'
2233
- r'FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|'
2234
- r'FileDelete|FileGetAttrib|FileGetShortcut|FileGetSize|'
2235
- r'FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|'
2236
- r'FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|'
2237
- r'FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|'
2238
- r'FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|'
2239
- r'GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|'
2240
- r'GuiControlGet|Hotkey|IfEqual|IfExist|IfGreaterOrEqual|IfGreater|'
2241
- r'IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|'
2242
- r'IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|'
2243
- r'IfWinNotExist|If |ImageSearch|IniDelete|IniRead|IniWrite|'
2244
- r'InputBox|Input|KeyHistory|KeyWait|ListHotkeys|ListLines|'
2245
- r'ListVars|Loop|Menu|MouseClickDrag|MouseClick|MouseGetPos|'
2246
- r'MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|'
2247
- r'PixelSearch|PostMessage|Process|Progress|Random|RegDelete|'
2248
- r'RegRead|RegWrite|Reload|Repeat|Return|RunAs|RunWait|Run|'
2249
- r'SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|Send|'
2250
- r'SetBatchLines|SetCapslockState|SetControlDelay|'
2251
- r'SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|'
2252
- r'SetMouseDelay|SetNumlockState|SetScrollLockState|'
2253
- r'SetStoreCapslockMode|SetTimer|SetTitleMatchMode|'
2254
- r'SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|'
2255
- r'SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|'
2256
- r'SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|'
2257
- r'SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|'
2258
- r'StringGetPos|StringLeft|StringLen|StringLower|StringMid|'
2259
- r'StringReplace|StringRight|StringSplit|StringTrimLeft|'
2260
- r'StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|'
2261
- r'Transform|TrayTip|URLDownloadToFile|While|WinActivate|'
2262
- r'WinActivateBottom|WinClose|WinGetActiveStats|WinGetActiveTitle|'
2263
- r'WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinGet|WinHide|'
2264
- r'WinKill|WinMaximize|WinMenuSelectItem|WinMinimizeAllUndo|'
2265
- r'WinMinimizeAll|WinMinimize|WinMove|WinRestore|WinSetTitle|'
2266
- r'WinSet|WinShow|WinWaitActive|WinWaitClose|WinWaitNotActive|'
2267
- r'WinWait)\b', bygroups(Text, Name.Builtin)),
2268
- ],
2269
- 'builtInFunctions': [
2270
- (r'(?i)(Abs|ACos|Asc|ASin|ATan|Ceil|Chr|Cos|DllCall|Exp|FileExist|'
2271
- r'Floor|GetKeyState|IL_Add|IL_Create|IL_Destroy|InStr|IsFunc|'
2272
- r'IsLabel|Ln|Log|LV_Add|LV_Delete|LV_DeleteCol|LV_GetCount|'
2273
- r'LV_GetNext|LV_GetText|LV_Insert|LV_InsertCol|LV_Modify|'
2274
- r'LV_ModifyCol|LV_SetImageList|Mod|NumGet|NumPut|OnMessage|'
2275
- r'RegExMatch|RegExReplace|RegisterCallback|Round|SB_SetIcon|'
2276
- r'SB_SetParts|SB_SetText|Sin|Sqrt|StrLen|SubStr|Tan|TV_Add|'
2277
- r'TV_Delete|TV_GetChild|TV_GetCount|TV_GetNext|TV_Get|'
2278
- r'TV_GetParent|TV_GetPrev|TV_GetSelection|TV_GetText|TV_Modify|'
2279
- r'VarSetCapacity|WinActive|WinExist|Object|ComObjActive|'
2280
- r'ComObjArray|ComObjEnwrap|ComObjUnwrap|ComObjParameter|'
2281
- r'ComObjType|ComObjConnect|ComObjCreate|ComObjGet|ComObjError|'
2282
- r'ComObjValue|Insert|MinIndex|MaxIndex|Remove|SetCapacity|'
2283
- r'GetCapacity|GetAddress|_NewEnum|FileOpen|Read|Write|ReadLine|'
2284
- r'WriteLine|ReadNumType|WriteNumType|RawRead|RawWrite|Seek|Tell|'
2285
- r'Close|Next|IsObject|StrPut|StrGet|Trim|LTrim|RTrim)\b',
2286
- Name.Function),
2287
- ],
2288
- 'builtInVariables': [
2289
- (r'(?i)(A_AhkPath|A_AhkVersion|A_AppData|A_AppDataCommon|'
2290
- r'A_AutoTrim|A_BatchLines|A_CaretX|A_CaretY|A_ComputerName|'
2291
- r'A_ControlDelay|A_Cursor|A_DDDD|A_DDD|A_DD|A_DefaultMouseSpeed|'
2292
- r'A_Desktop|A_DesktopCommon|A_DetectHiddenText|'
2293
- r'A_DetectHiddenWindows|A_EndChar|A_EventInfo|A_ExitReason|'
2294
- r'A_FormatFloat|A_FormatInteger|A_Gui|A_GuiEvent|A_GuiControl|'
2295
- r'A_GuiControlEvent|A_GuiHeight|A_GuiWidth|A_GuiX|A_GuiY|A_Hour|'
2296
- r'A_IconFile|A_IconHidden|A_IconNumber|A_IconTip|A_Index|'
2297
- r'A_IPAddress1|A_IPAddress2|A_IPAddress3|A_IPAddress4|A_ISAdmin|'
2298
- r'A_IsCompiled|A_IsCritical|A_IsPaused|A_IsSuspended|A_KeyDelay|'
2299
- r'A_Language|A_LastError|A_LineFile|A_LineNumber|A_LoopField|'
2300
- r'A_LoopFileAttrib|A_LoopFileDir|A_LoopFileExt|A_LoopFileFullPath|'
2301
- r'A_LoopFileLongPath|A_LoopFileName|A_LoopFileShortName|'
2302
- r'A_LoopFileShortPath|A_LoopFileSize|A_LoopFileSizeKB|'
2303
- r'A_LoopFileSizeMB|A_LoopFileTimeAccessed|A_LoopFileTimeCreated|'
2304
- r'A_LoopFileTimeModified|A_LoopReadLine|A_LoopRegKey|'
2305
- r'A_LoopRegName|A_LoopRegSubkey|A_LoopRegTimeModified|'
2306
- r'A_LoopRegType|A_MDAY|A_Min|A_MM|A_MMM|A_MMMM|A_Mon|A_MouseDelay|'
2307
- r'A_MSec|A_MyDocuments|A_Now|A_NowUTC|A_NumBatchLines|A_OSType|'
2308
- r'A_OSVersion|A_PriorHotkey|A_ProgramFiles|A_Programs|'
2309
- r'A_ProgramsCommon|A_ScreenHeight|A_ScreenWidth|A_ScriptDir|'
2310
- r'A_ScriptFullPath|A_ScriptName|A_Sec|A_Space|A_StartMenu|'
2311
- r'A_StartMenuCommon|A_Startup|A_StartupCommon|A_StringCaseSense|'
2312
- r'A_Tab|A_Temp|A_ThisFunc|A_ThisHotkey|A_ThisLabel|A_ThisMenu|'
2313
- r'A_ThisMenuItem|A_ThisMenuItemPos|A_TickCount|A_TimeIdle|'
2314
- r'A_TimeIdlePhysical|A_TimeSincePriorHotkey|A_TimeSinceThisHotkey|'
2315
- r'A_TitleMatchMode|A_TitleMatchModeSpeed|A_UserName|A_WDay|'
2316
- r'A_WinDelay|A_WinDir|A_WorkingDir|A_YDay|A_YEAR|A_YWeek|A_YYYY|'
2317
- r'Clipboard|ClipboardAll|ComSpec|ErrorLevel|ProgramFiles|True|'
2318
- r'False|A_IsUnicode|A_FileEncoding|A_OSVersion|A_PtrSize)\b',
2319
- Name.Variable),
2320
- ],
2321
- 'labels': [
2322
- # hotkeys and labels
2323
- # technically, hotkey names are limited to named keys and buttons
2324
- (r'(^\s*)([^:\s\(\"]+?:{1,2})', bygroups(Text, Name.Label)),
2325
- (r'(^\s*)(::[^:\s]+?::)', bygroups(Text, Name.Label)),
2326
- ],
2327
- 'numbers': [
2328
- (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
2329
- (r'\d+[eE][+-]?[0-9]+', Number.Float),
2330
- (r'0\d+', Number.Oct),
2331
- (r'0[xX][a-fA-F0-9]+', Number.Hex),
2332
- (r'\d+L', Number.Integer.Long),
2333
- (r'\d+', Number.Integer)
2334
- ],
2335
- 'stringescape': [
2336
- (r'\"\"|\`([\,\%\`abfnrtv])', String.Escape),
2337
- ],
2338
- 'strings': [
2339
- (r'[^"\n]+', String),
2340
- ],
2341
- 'dqs': [
2342
- (r'"', String, '#pop'),
2343
- include('strings')
2344
- ],
2345
- 'garbage': [
2346
- (r'[^\S\n]', Text),
2347
- # (r'.', Text), # no cheating
2348
- ],
2349
- }
2350
-
2351
-
2352
- class MaqlLexer(RegexLexer):
2353
- """
2354
- Lexer for `GoodData MAQL
2355
- <https://secure.gooddata.com/docs/html/advanced.metric.tutorial.html>`_
2356
- scripts.
2357
-
2358
- .. versionadded:: 1.4
2359
- """
2360
-
2361
- name = 'MAQL'
2362
- aliases = ['maql']
2363
- filenames = ['*.maql']
2364
- mimetypes = ['text/x-gooddata-maql','application/x-gooddata-maql']
2365
-
2366
- flags = re.IGNORECASE
2367
- tokens = {
2368
- 'root': [
2369
- # IDENTITY
2370
- (r'IDENTIFIER\b', Name.Builtin),
2371
- # IDENTIFIER
2372
- (r'\{[^}]+\}', Name.Variable),
2373
- # NUMBER
2374
- (r'[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]{1,3})?', Literal.Number),
2375
- # STRING
2376
- (r'"', Literal.String, 'string-literal'),
2377
- # RELATION
2378
- (r'\<\>|\!\=', Operator),
2379
- (r'\=|\>\=|\>|\<\=|\<', Operator),
2380
- # :=
2381
- (r'\:\=', Operator),
2382
- # OBJECT
2383
- (r'\[[^]]+\]', Name.Variable.Class),
2384
- # keywords
2385
- (r'(DIMENSIONS?|BOTTOM|METRIC|COUNT|OTHER|FACT|WITH|TOP|OR|'
2386
- r'ATTRIBUTE|CREATE|PARENT|FALSE|ROWS?|FROM|ALL|AS|PF|'
2387
- r'COLUMNS?|DEFINE|REPORT|LIMIT|TABLE|LIKE|AND|BY|'
2388
- r'BETWEEN|EXCEPT|SELECT|MATCH|WHERE|TRUE|FOR|IN|'
2389
- r'WITHOUT|FILTER|ALIAS|ORDER|FACT|WHEN|NOT|ON|'
2390
- r'KEYS|KEY|FULLSET|PRIMARY|LABELS|LABEL|VISUAL|'
2391
- r'TITLE|DESCRIPTION|FOLDER|ALTER|DROP|ADD|DATASET|'
2392
- r'DATATYPE|INT|BIGINT|DOUBLE|DATE|VARCHAR|DECIMAL|'
2393
- r'SYNCHRONIZE|TYPE|DEFAULT|ORDER|ASC|DESC|HYPERLINK|'
2394
- r'INCLUDE|TEMPLATE|MODIFY)\b', Keyword),
2395
- # FUNCNAME
2396
- (r'[a-z]\w*\b', Name.Function),
2397
- # Comments
2398
- (r'#.*', Comment.Single),
2399
- # Punctuation
2400
- (r'[,;\(\)]', Token.Punctuation),
2401
- # Space is not significant
2402
- (r'\s+', Text)
2403
- ],
2404
- 'string-literal': [
2405
- (r'\\[tnrfbae"\\]', String.Escape),
2406
- (r'"', Literal.String, '#pop'),
2407
- (r'[^\\"]+', Literal.String)
2408
- ],
2409
- }
2410
-
2411
-
2412
- class GoodDataCLLexer(RegexLexer):
2413
- """
2414
- Lexer for `GoodData-CL <http://github.com/gooddata/GoodData-CL/raw/master/cli/src/main/resources/com/gooddata/processor/COMMANDS.txt>`_
2415
- script files.
2416
-
2417
- .. versionadded:: 1.4
2418
- """
2419
-
2420
- name = 'GoodData-CL'
2421
- aliases = ['gooddata-cl']
2422
- filenames = ['*.gdc']
2423
- mimetypes = ['text/x-gooddata-cl']
2424
-
2425
- flags = re.IGNORECASE
2426
- tokens = {
2427
- 'root': [
2428
- # Comments
2429
- (r'#.*', Comment.Single),
2430
- # Function call
2431
- (r'[a-z]\w*', Name.Function),
2432
- # Argument list
2433
- (r'\(', Token.Punctuation, 'args-list'),
2434
- # Punctuation
2435
- (r';', Token.Punctuation),
2436
- # Space is not significant
2437
- (r'\s+', Text)
2438
- ],
2439
- 'args-list': [
2440
- (r'\)', Token.Punctuation, '#pop'),
2441
- (r',', Token.Punctuation),
2442
- (r'[a-z]\w*', Name.Variable),
2443
- (r'=', Operator),
2444
- (r'"', Literal.String, 'string-literal'),
2445
- (r'[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]{1,3})?', Literal.Number),
2446
- # Space is not significant
2447
- (r'\s', Text)
2448
- ],
2449
- 'string-literal': [
2450
- (r'\\[tnrfbae"\\]', String.Escape),
2451
- (r'"', Literal.String, '#pop'),
2452
- (r'[^\\"]+', Literal.String)
2453
- ]
2454
- }
2455
-
2456
-
2457
- class ProtoBufLexer(RegexLexer):
2458
- """
2459
- Lexer for `Protocol Buffer <http://code.google.com/p/protobuf/>`_
2460
- definition files.
2461
-
2462
- .. versionadded:: 1.4
2463
- """
2464
-
2465
- name = 'Protocol Buffer'
2466
- aliases = ['protobuf', 'proto']
2467
- filenames = ['*.proto']
2468
-
2469
- tokens = {
2470
- 'root': [
2471
- (r'[ \t]+', Text),
2472
- (r'[,;{}\[\]\(\)]', Punctuation),
2473
- (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single),
2474
- (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment.Multiline),
2475
- (r'\b(import|option|optional|required|repeated|default|packed|'
2476
- r'ctype|extensions|to|max|rpc|returns)\b', Keyword),
2477
- (r'(int32|int64|uint32|uint64|sint32|sint64|'
2478
- r'fixed32|fixed64|sfixed32|sfixed64|'
2479
- r'float|double|bool|string|bytes)\b', Keyword.Type),
2480
- (r'(true|false)\b', Keyword.Constant),
2481
- (r'(package)(\s+)', bygroups(Keyword.Namespace, Text), 'package'),
2482
- (r'(message|extend)(\s+)',
2483
- bygroups(Keyword.Declaration, Text), 'message'),
2484
- (r'(enum|group|service)(\s+)',
2485
- bygroups(Keyword.Declaration, Text), 'type'),
2486
- (r'\".*\"', String),
2487
- (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float),
2488
- (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
2489
- (r'(\-?(inf|nan))', Number.Float),
2490
- (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex),
2491
- (r'0[0-7]+[LlUu]*', Number.Oct),
2492
- (r'\d+[LlUu]*', Number.Integer),
2493
- (r'[+-=]', Operator),
2494
- (r'([a-zA-Z_][\w\.]*)([ \t]*)(=)',
2495
- bygroups(Name.Attribute, Text, Operator)),
2496
- ('[a-zA-Z_][\w\.]*', Name),
2497
- ],
2498
- 'package': [
2499
- (r'[a-zA-Z_]\w*', Name.Namespace, '#pop')
2500
- ],
2501
- 'message': [
2502
- (r'[a-zA-Z_]\w*', Name.Class, '#pop')
2503
- ],
2504
- 'type': [
2505
- (r'[a-zA-Z_]\w*', Name, '#pop')
2506
- ],
2507
- }
2508
-
2509
-
2510
- class HybrisLexer(RegexLexer):
2511
- """
2512
- For `Hybris <http://www.hybris-lang.org>`_ source code.
2513
-
2514
- .. versionadded:: 1.4
2515
- """
2516
-
2517
- name = 'Hybris'
2518
- aliases = ['hybris', 'hy']
2519
- filenames = ['*.hy', '*.hyb']
2520
- mimetypes = ['text/x-hybris', 'application/x-hybris']
2521
-
2522
- flags = re.MULTILINE | re.DOTALL
2523
-
2524
- tokens = {
2525
- 'root': [
2526
- # method names
2527
- (r'^(\s*(?:function|method|operator\s+)+?)'
2528
- r'([a-zA-Z_]\w*)'
2529
- r'(\s*)(\()', bygroups(Keyword, Name.Function, Text, Operator)),
2530
- (r'[^\S\n]+', Text),
2531
- (r'//.*?\n', Comment.Single),
2532
- (r'/\*.*?\*/', Comment.Multiline),
2533
- (r'@[a-zA-Z_][\w\.]*', Name.Decorator),
2534
- (r'(break|case|catch|next|default|do|else|finally|for|foreach|of|'
2535
- r'unless|if|new|return|switch|me|throw|try|while)\b', Keyword),
2536
- (r'(extends|private|protected|public|static|throws|function|method|'
2537
- r'operator)\b', Keyword.Declaration),
2538
- (r'(true|false|null|__FILE__|__LINE__|__VERSION__|__LIB_PATH__|'
2539
- r'__INC_PATH__)\b', Keyword.Constant),
2540
- (r'(class|struct)(\s+)',
2541
- bygroups(Keyword.Declaration, Text), 'class'),
2542
- (r'(import|include)(\s+)',
2543
- bygroups(Keyword.Namespace, Text), 'import'),
2544
- (r'(gc_collect|gc_mm_items|gc_mm_usage|gc_collect_threshold|'
2545
- r'urlencode|urldecode|base64encode|base64decode|sha1|crc32|sha2|'
2546
- r'md5|md5_file|acos|asin|atan|atan2|ceil|cos|cosh|exp|fabs|floor|'
2547
- r'fmod|log|log10|pow|sin|sinh|sqrt|tan|tanh|isint|isfloat|ischar|'
2548
- r'isstring|isarray|ismap|isalias|typeof|sizeof|toint|tostring|'
2549
- r'fromxml|toxml|binary|pack|load|eval|var_names|var_values|'
2550
- r'user_functions|dyn_functions|methods|call|call_method|mknod|'
2551
- r'mkfifo|mount|umount2|umount|ticks|usleep|sleep|time|strtime|'
2552
- r'strdate|dllopen|dlllink|dllcall|dllcall_argv|dllclose|env|exec|'
2553
- r'fork|getpid|wait|popen|pclose|exit|kill|pthread_create|'
2554
- r'pthread_create_argv|pthread_exit|pthread_join|pthread_kill|'
2555
- r'smtp_send|http_get|http_post|http_download|socket|bind|listen|'
2556
- r'accept|getsockname|getpeername|settimeout|connect|server|recv|'
2557
- r'send|close|print|println|printf|input|readline|serial_open|'
2558
- r'serial_fcntl|serial_get_attr|serial_get_ispeed|serial_get_ospeed|'
2559
- r'serial_set_attr|serial_set_ispeed|serial_set_ospeed|serial_write|'
2560
- r'serial_read|serial_close|xml_load|xml_parse|fopen|fseek|ftell|'
2561
- r'fsize|fread|fwrite|fgets|fclose|file|readdir|pcre_replace|size|'
2562
- r'pop|unmap|has|keys|values|length|find|substr|replace|split|trim|'
2563
- r'remove|contains|join)\b', Name.Builtin),
2564
- (r'(MethodReference|Runner|Dll|Thread|Pipe|Process|Runnable|'
2565
- r'CGI|ClientSocket|Socket|ServerSocket|File|Console|Directory|'
2566
- r'Exception)\b', Keyword.Type),
2567
- (r'"(\\\\|\\"|[^"])*"', String),
2568
- (r"'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'", String.Char),
2569
- (r'(\.)([a-zA-Z_]\w*)',
2570
- bygroups(Operator, Name.Attribute)),
2571
- (r'[a-zA-Z_]\w*:', Name.Label),
2572
- (r'[a-zA-Z_\$]\w*', Name),
2573
- (r'[~\^\*!%&\[\]\(\)\{\}<>\|+=:;,./?\-@]+', Operator),
2574
- (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
2575
- (r'0x[0-9a-f]+', Number.Hex),
2576
- (r'[0-9]+L?', Number.Integer),
2577
- (r'\n', Text),
2578
- ],
2579
- 'class': [
2580
- (r'[a-zA-Z_]\w*', Name.Class, '#pop')
2581
- ],
2582
- 'import': [
2583
- (r'[\w.]+\*?', Name.Namespace, '#pop')
2584
- ],
2585
- }
2586
-
2587
-
2588
- class AwkLexer(RegexLexer):
2589
- """
2590
- For Awk scripts.
2591
-
2592
- .. versionadded:: 1.5
2593
- """
2594
-
2595
- name = 'Awk'
2596
- aliases = ['awk', 'gawk', 'mawk', 'nawk']
2597
- filenames = ['*.awk']
2598
- mimetypes = ['application/x-awk']
2599
-
2600
- tokens = {
2601
- 'commentsandwhitespace': [
2602
- (r'\s+', Text),
2603
- (r'#.*$', Comment.Single)
2604
- ],
2605
- 'slashstartsregex': [
2606
- include('commentsandwhitespace'),
2607
- (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
2608
- r'\B', String.Regex, '#pop'),
2609
- (r'(?=/)', Text, ('#pop', 'badregex')),
2610
- default('#pop')
2611
- ],
2612
- 'badregex': [
2613
- (r'\n', Text, '#pop')
2614
- ],
2615
- 'root': [
2616
- (r'^(?=\s|/)', Text, 'slashstartsregex'),
2617
- include('commentsandwhitespace'),
2618
- (r'\+\+|--|\|\||&&|in\b|\$|!?~|'
2619
- r'(\*\*|[-<>+*%\^/!=])=?', Operator, 'slashstartsregex'),
2620
- (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
2621
- (r'[})\].]', Punctuation),
2622
- (r'(break|continue|do|while|exit|for|if|else|'
2623
- r'return)\b', Keyword, 'slashstartsregex'),
2624
- (r'function\b', Keyword.Declaration, 'slashstartsregex'),
2625
- (r'(atan2|cos|exp|int|log|rand|sin|sqrt|srand|gensub|gsub|index|'
2626
- r'length|match|split|sprintf|sub|substr|tolower|toupper|close|'
2627
- r'fflush|getline|next|nextfile|print|printf|strftime|systime|'
2628
- r'delete|system)\b', Keyword.Reserved),
2629
- (r'(ARGC|ARGIND|ARGV|CONVFMT|ENVIRON|ERRNO|FIELDWIDTHS|FILENAME|FNR|FS|'
2630
- r'IGNORECASE|NF|NR|OFMT|OFS|ORFS|RLENGTH|RS|RSTART|RT|'
2631
- r'SUBSEP)\b', Name.Builtin),
2632
- (r'[$a-zA-Z_]\w*', Name.Other),
2633
- (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
2634
- (r'0x[0-9a-fA-F]+', Number.Hex),
2635
- (r'[0-9]+', Number.Integer),
2636
- (r'"(\\\\|\\"|[^"])*"', String.Double),
2637
- (r"'(\\\\|\\'|[^'])*'", String.Single),
2638
- ]
2639
- }
2640
-
2641
-
2642
- class Cfengine3Lexer(RegexLexer):
2643
- """
2644
- Lexer for `CFEngine3 <http://cfengine.org>`_ policy files.
2645
-
2646
- .. versionadded:: 1.5
2647
- """
2648
-
2649
- name = 'CFEngine3'
2650
- aliases = ['cfengine3', 'cf3']
2651
- filenames = ['*.cf']
2652
- mimetypes = []
2653
-
2654
- tokens = {
2655
- 'root': [
2656
- (r'#.*?\n', Comment),
2657
- (r'(body)(\s+)(\S+)(\s+)(control)',
2658
- bygroups(Keyword, Text, Keyword, Text, Keyword)),
2659
- (r'(body|bundle)(\s+)(\S+)(\s+)(\w+)(\()',
2660
- bygroups(Keyword, Text, Keyword, Text, Name.Function, Punctuation),
2661
- 'arglist'),
2662
- (r'(body|bundle)(\s+)(\S+)(\s+)(\w+)',
2663
- bygroups(Keyword, Text, Keyword, Text, Name.Function)),
2664
- (r'(")([^"]+)(")(\s+)(string|slist|int|real)(\s*)(=>)(\s*)',
2665
- bygroups(Punctuation,Name.Variable,Punctuation,
2666
- Text,Keyword.Type,Text,Operator,Text)),
2667
- (r'(\S+)(\s*)(=>)(\s*)',
2668
- bygroups(Keyword.Reserved,Text,Operator,Text)),
2669
- (r'"', String, 'string'),
2670
- (r'(\w+)(\()', bygroups(Name.Function, Punctuation)),
2671
- (r'([\w.!&|\(\)]+)(::)', bygroups(Name.Class, Punctuation)),
2672
- (r'(\w+)(:)', bygroups(Keyword.Declaration,Punctuation)),
2673
- (r'@[\{\(][^\)\}]+[\}\)]', Name.Variable),
2674
- (r'[(){},;]', Punctuation),
2675
- (r'=>', Operator),
2676
- (r'->', Operator),
2677
- (r'\d+\.\d+', Number.Float),
2678
- (r'\d+', Number.Integer),
2679
- (r'\w+', Name.Function),
2680
- (r'\s+', Text),
2681
- ],
2682
- 'string': [
2683
- (r'\$[\{\(]', String.Interpol, 'interpol'),
2684
- (r'\\.', String.Escape),
2685
- (r'"', String, '#pop'),
2686
- (r'\n', String),
2687
- (r'.', String),
2688
- ],
2689
- 'interpol': [
2690
- (r'\$[\{\(]', String.Interpol, '#push'),
2691
- (r'[\}\)]', String.Interpol, '#pop'),
2692
- (r'[^\$\{\(\)\}]+', String.Interpol),
2693
- ],
2694
- 'arglist': [
2695
- (r'\)', Punctuation, '#pop'),
2696
- (r',', Punctuation),
2697
- (r'\w+', Name.Variable),
2698
- (r'\s+', Text),
2699
- ],
2700
- }
2701
-
2702
-
2703
- class SnobolLexer(RegexLexer):
2704
- """
2705
- Lexer for the SNOBOL4 programming language.
2706
-
2707
- Recognizes the common ASCII equivalents of the original SNOBOL4 operators.
2708
- Does not require spaces around binary operators.
2709
-
2710
- .. versionadded:: 1.5
2711
- """
2712
-
2713
- name = "Snobol"
2714
- aliases = ["snobol"]
2715
- filenames = ['*.snobol']
2716
- mimetypes = ['text/x-snobol']
2717
-
2718
- tokens = {
2719
- # root state, start of line
2720
- # comments, continuation lines, and directives start in column 1
2721
- # as do labels
2722
- 'root': [
2723
- (r'\*.*\n', Comment),
2724
- (r'[\+\.] ', Punctuation, 'statement'),
2725
- (r'-.*\n', Comment),
2726
- (r'END\s*\n', Name.Label, 'heredoc'),
2727
- (r'[A-Za-z\$][\w$]*', Name.Label, 'statement'),
2728
- (r'\s+', Text, 'statement'),
2729
- ],
2730
- # statement state, line after continuation or label
2731
- 'statement': [
2732
- (r'\s*\n', Text, '#pop'),
2733
- (r'\s+', Text),
2734
- (r'(?<=[^\w.])(LT|LE|EQ|NE|GE|GT|INTEGER|IDENT|DIFFER|LGT|SIZE|'
2735
- r'REPLACE|TRIM|DUPL|REMDR|DATE|TIME|EVAL|APPLY|OPSYN|LOAD|UNLOAD|'
2736
- r'LEN|SPAN|BREAK|ANY|NOTANY|TAB|RTAB|REM|POS|RPOS|FAIL|FENCE|'
2737
- r'ABORT|ARB|ARBNO|BAL|SUCCEED|INPUT|OUTPUT|TERMINAL)(?=[^\w.])',
2738
- Name.Builtin),
2739
- (r'[A-Za-z][\w\.]*', Name),
2740
- # ASCII equivalents of original operators
2741
- # | for the EBCDIC equivalent, ! likewise
2742
- # \ for EBCDIC negation
2743
- (r'\*\*|[\?\$\.!%\*/#+\-@\|&\\=]', Operator),
2744
- (r'"[^"]*"', String),
2745
- (r"'[^']*'", String),
2746
- # Accept SPITBOL syntax for real numbers
2747
- # as well as Macro SNOBOL4
2748
- (r'[0-9]+(?=[^\.EeDd])', Number.Integer),
2749
- (r'[0-9]+(\.[0-9]*)?([EDed][-+]?[0-9]+)?', Number.Float),
2750
- # Goto
2751
- (r':', Punctuation, 'goto'),
2752
- (r'[\(\)<>,;]', Punctuation),
2753
- ],
2754
- # Goto block
2755
- 'goto': [
2756
- (r'\s*\n', Text, "#pop:2"),
2757
- (r'\s+', Text),
2758
- (r'F|S', Keyword),
2759
- (r'(\()([A-Za-z][\w.]*)(\))',
2760
- bygroups(Punctuation, Name.Label, Punctuation))
2761
- ],
2762
- # everything after the END statement is basically one
2763
- # big heredoc.
2764
- 'heredoc': [
2765
- (r'.*\n', String.Heredoc)
2766
- ]
2767
- }
2768
-
2769
-
2770
- class UrbiscriptLexer(ExtendedRegexLexer):
2771
- """
2772
- For UrbiScript source code.
2773
-
2774
- .. versionadded:: 1.5
2775
- """
2776
-
2777
- name = 'UrbiScript'
2778
- aliases = ['urbiscript']
2779
- filenames = ['*.u']
2780
- mimetypes = ['application/x-urbiscript']
2781
-
2782
- flags = re.DOTALL
2783
-
2784
- ## TODO
2785
- # - handle Experimental and deprecated tags with specific tokens
2786
- # - handle Angles and Durations with specific tokens
2787
-
2788
- def blob_callback(lexer, match, ctx):
2789
- text_before_blob = match.group(1)
2790
- blob_start = match.group(2)
2791
- blob_size_str = match.group(3)
2792
- blob_size = int(blob_size_str)
2793
- yield match.start(), String, text_before_blob
2794
- ctx.pos += len(text_before_blob)
2795
-
2796
- # if blob size doesn't match blob format (example : "\B(2)(aaa)")
2797
- # yield blob as a string
2798
- if ctx.text[match.end() + blob_size] != ")":
2799
- result = "\\B(" + blob_size_str + ")("
2800
- yield match.start(), String, result
2801
- ctx.pos += len(result)
2802
- return
2803
-
2804
- # if blob is well formated, yield as Escape
2805
- blob_text = blob_start + ctx.text[match.end():match.end()+blob_size] + ")"
2806
- yield match.start(), String.Escape, blob_text
2807
- ctx.pos = match.end() + blob_size + 1 # +1 is the ending ")"
2808
-
2809
- tokens = {
2810
- 'root': [
2811
- (r'\s+', Text),
2812
- # comments
2813
- (r'//.*?\n', Comment),
2814
- (r'/\*', Comment.Multiline, 'comment'),
2815
- (r'(?:every|for|loop|while)(?:;|&|\||,)',Keyword),
2816
- (r'(?:assert|at|break|case|catch|closure|compl|continue|'
2817
- r'default|else|enum|every|external|finally|for|freezeif|if|new|'
2818
- r'onleave|return|stopif|switch|this|throw|timeout|try|'
2819
- r'waituntil|whenever|while)\b', Keyword),
2820
- (r'(?:asm|auto|bool|char|const_cast|delete|double|dynamic_cast|'
2821
- r'explicit|export|extern|float|friend|goto|inline|int|'
2822
- r'long|mutable|namespace|register|reinterpret_cast|short|'
2823
- r'signed|sizeof|static_cast|struct|template|typedef|typeid|'
2824
- r'typename|union|unsigned|using|virtual|volatile|'
2825
- r'wchar_t)\b', Keyword.Reserved),
2826
- # deprecated keywords, use a meaningfull token when available
2827
- (r'(?:emit|foreach|internal|loopn|static)\b', Keyword),
2828
- # ignored keywords, use a meaningfull token when available
2829
- (r'(?:private|protected|public)\b', Keyword),
2830
- (r'(?:var|do|const|function|class)\b', Keyword.Declaration),
2831
- (r'(?:true|false|nil|void)\b', Keyword.Constant),
2832
- (r'(?:Barrier|Binary|Boolean|CallMessage|Channel|Code|'
2833
- r'Comparable|Container|Control|Date|Dictionary|Directory|'
2834
- r'Duration|Enumeration|Event|Exception|Executable|File|Finalizable|'
2835
- r'Float|FormatInfo|Formatter|Global|Group|Hash|InputStream|'
2836
- r'IoService|Job|Kernel|Lazy|List|Loadable|Lobby|Location|Logger|Math|'
2837
- r'Mutex|nil|Object|Orderable|OutputStream|Pair|Path|Pattern|Position|'
2838
- r'Primitive|Process|Profile|PseudoLazy|PubSub|RangeIterable|Regexp|'
2839
- r'Semaphore|Server|Singleton|Socket|StackFrame|Stream|String|System|'
2840
- r'Tag|Timeout|Traceable|TrajectoryGenerator|Triplet|Tuple'
2841
- r'|UObject|UValue|UVar)\b', Name.Builtin),
2842
- (r'(?:this)\b', Name.Builtin.Pseudo),
2843
- # don't match single | and &
2844
- (r'(?:[-=+*%/<>~^:]+|\.&?|\|\||&&)', Operator),
2845
- (r'(?:and_eq|and|bitand|bitor|in|not|not_eq|or_eq|or|xor_eq|xor)\b',
2846
- Operator.Word),
2847
- (r'[{}\[\]()]+', Punctuation),
2848
- (r'(?:;|\||,|&|\?|!)+', Punctuation),
2849
- (r'[$a-zA-Z_]\w*', Name.Other),
2850
- (r'0x[0-9a-fA-F]+', Number.Hex),
2851
- # Float, Integer, Angle and Duration
2852
- (r'(?:[0-9]+(?:(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?)?'
2853
- r'((?:rad|deg|grad)|(?:ms|s|min|h|d))?)\b', Number.Float),
2854
- # handle binary blob in strings
2855
- (r'"', String.Double, "string.double"),
2856
- (r"'", String.Single, "string.single"),
2857
- ],
2858
- 'string.double': [
2859
- (r'((?:\\\\|\\"|[^"])*?)(\\B\((\d+)\)\()', blob_callback),
2860
- (r'(\\\\|\\"|[^"])*?"', String.Double, '#pop'),
2861
- ],
2862
- 'string.single': [
2863
- (r"((?:\\\\|\\'|[^'])*?)(\\B\((\d+)\)\()", blob_callback),
2864
- (r"(\\\\|\\'|[^'])*?'", String.Single, '#pop'),
2865
- ],
2866
- # from http://pygments.org/docs/lexerdevelopment/#changing-states
2867
- 'comment': [
2868
- (r'[^*/]', Comment.Multiline),
2869
- (r'/\*', Comment.Multiline, '#push'),
2870
- (r'\*/', Comment.Multiline, '#pop'),
2871
- (r'[*/]', Comment.Multiline),
2872
- ]
2873
- }
2874
-
2875
-
2876
- class OpenEdgeLexer(RegexLexer):
2877
- """
2878
- Lexer for `OpenEdge ABL (formerly Progress)
2879
- <http://web.progress.com/en/openedge/abl.html>`_ source code.
2880
-
2881
- .. versionadded:: 1.5
2882
- """
2883
- name = 'OpenEdge ABL'
2884
- aliases = ['openedge', 'abl', 'progress']
2885
- filenames = ['*.p', '*.cls']
2886
- mimetypes = ['text/x-openedge', 'application/x-openedge']
2887
-
2888
- types = (r'(?i)(^|(?<=[^0-9a-z_\-]))(CHARACTER|CHAR|CHARA|CHARAC|CHARACT|CHARACTE|'
2889
- r'COM-HANDLE|DATE|DATETIME|DATETIME-TZ|'
2890
- r'DECIMAL|DEC|DECI|DECIM|DECIMA|HANDLE|'
2891
- r'INT64|INTEGER|INT|INTE|INTEG|INTEGE|'
2892
- r'LOGICAL|LONGCHAR|MEMPTR|RAW|RECID|ROWID)\s*($|(?=[^0-9a-z_\-]))')
2893
-
2894
- keywords = (r'(?i)(^|(?<=[^0-9a-z_\-]))(' +
2895
- r'|'.join(OPENEDGEKEYWORDS) +
2896
- r')\s*($|(?=[^0-9a-z_\-]))')
2897
- tokens = {
2898
- 'root': [
2899
- (r'/\*', Comment.Multiline, 'comment'),
2900
- (r'\{', Comment.Preproc, 'preprocessor'),
2901
- (r'\s*&.*', Comment.Preproc),
2902
- (r'0[xX][0-9a-fA-F]+[LlUu]*', Number.Hex),
2903
- (r'(?i)(DEFINE|DEF|DEFI|DEFIN)\b', Keyword.Declaration),
2904
- (types, Keyword.Type),
2905
- (keywords, Name.Builtin),
2906
- (r'"(\\\\|\\"|[^"])*"', String.Double),
2907
- (r"'(\\\\|\\'|[^'])*'", String.Single),
2908
- (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
2909
- (r'[0-9]+', Number.Integer),
2910
- (r'\s+', Text),
2911
- (r'[+*/=-]', Operator),
2912
- (r'[.:()]', Punctuation),
2913
- (r'.', Name.Variable), # Lazy catch-all
2914
- ],
2915
- 'comment': [
2916
- (r'[^*/]', Comment.Multiline),
2917
- (r'/\*', Comment.Multiline, '#push'),
2918
- (r'\*/', Comment.Multiline, '#pop'),
2919
- (r'[*/]', Comment.Multiline)
2920
- ],
2921
- 'preprocessor': [
2922
- (r'[^{}]', Comment.Preproc),
2923
- (r'{', Comment.Preproc, '#push'),
2924
- (r'}', Comment.Preproc, '#pop'),
2925
- ],
2926
- }
2927
-
2928
-
2929
- class BroLexer(RegexLexer):
2930
- """
2931
- For `Bro <http://bro-ids.org/>`_ scripts.
2932
-
2933
- .. versionadded:: 1.5
2934
- """
2935
- name = 'Bro'
2936
- aliases = ['bro']
2937
- filenames = ['*.bro']
2938
-
2939
- _hex = r'[0-9a-fA-F_]+'
2940
- _float = r'((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?'
2941
- _h = r'[A-Za-z0-9][-A-Za-z0-9]*'
2942
-
2943
- tokens = {
2944
- 'root': [
2945
- # Whitespace
2946
- (r'^@.*?\n', Comment.Preproc),
2947
- (r'#.*?\n', Comment.Single),
2948
- (r'\n', Text),
2949
- (r'\s+', Text),
2950
- (r'\\\n', Text),
2951
- # Keywords
2952
- (r'(add|alarm|break|case|const|continue|delete|do|else|enum|event'
2953
- r'|export|for|function|if|global|hook|local|module|next'
2954
- r'|of|print|redef|return|schedule|switch|type|when|while)\b', Keyword),
2955
- (r'(addr|any|bool|count|counter|double|file|int|interval|net'
2956
- r'|pattern|port|record|set|string|subnet|table|time|timer'
2957
- r'|vector)\b', Keyword.Type),
2958
- (r'(T|F)\b', Keyword.Constant),
2959
- (r'(&)((?:add|delete|expire)_func|attr|(?:create|read|write)_expire'
2960
- r'|default|disable_print_hook|raw_output|encrypt|group|log'
2961
- r'|mergeable|optional|persistent|priority|redef'
2962
- r'|rotate_(?:interval|size)|synchronized)\b', bygroups(Punctuation,
2963
- Keyword)),
2964
- (r'\s+module\b', Keyword.Namespace),
2965
- # Addresses, ports and networks
2966
- (r'\d+/(tcp|udp|icmp|unknown)\b', Number),
2967
- (r'(\d+\.){3}\d+', Number),
2968
- (r'(' + _hex + r'){7}' + _hex, Number),
2969
- (r'0x' + _hex + r'(' + _hex + r'|:)*::(' + _hex + r'|:)*', Number),
2970
- (r'((\d+|:)(' + _hex + r'|:)*)?::(' + _hex + r'|:)*', Number),
2971
- (r'(\d+\.\d+\.|(\d+\.){2}\d+)', Number),
2972
- # Hostnames
2973
- (_h + r'(\.' + _h + r')+', String),
2974
- # Numeric
2975
- (_float + r'\s+(day|hr|min|sec|msec|usec)s?\b', Literal.Date),
2976
- (r'0[xX]' + _hex, Number.Hex),
2977
- (_float, Number.Float),
2978
- (r'\d+', Number.Integer),
2979
- (r'/', String.Regex, 'regex'),
2980
- (r'"', String, 'string'),
2981
- # Operators
2982
- (r'[!%*/+:<=>?~|-]', Operator),
2983
- (r'([-+=&|]{2}|[+=!><-]=)', Operator),
2984
- (r'(in|match)\b', Operator.Word),
2985
- (r'[{}()\[\]$.,;]', Punctuation),
2986
- # Identfier
2987
- (r'([_a-zA-Z]\w*)(::)', bygroups(Name, Name.Namespace)),
2988
- (r'[a-zA-Z_][a-zA-Z_0-9]*', Name)
2989
- ],
2990
- 'string': [
2991
- (r'"', String, '#pop'),
2992
- (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
2993
- (r'[^\\"\n]+', String),
2994
- (r'\\\n', String),
2995
- (r'\\', String)
2996
- ],
2997
- 'regex': [
2998
- (r'/', String.Regex, '#pop'),
2999
- (r'\\[\\nt/]', String.Regex), # String.Escape is too intense here.
3000
- (r'[^\\/\n]+', String.Regex),
3001
- (r'\\\n', String.Regex),
3002
- (r'\\', String.Regex)
3003
- ]
3004
- }
3005
-
3006
-
3007
- class CbmBasicV2Lexer(RegexLexer):
3008
- """
3009
- For CBM BASIC V2 sources.
3010
-
3011
- .. versionadded:: 1.6
3012
- """
3013
- name = 'CBM BASIC V2'
3014
- aliases = ['cbmbas']
3015
- filenames = ['*.bas']
3016
-
3017
- flags = re.IGNORECASE
3018
-
3019
- tokens = {
3020
- 'root': [
3021
- (r'rem.*\n', Comment.Single),
3022
- (r'\s+', Text),
3023
- (r'new|run|end|for|to|next|step|go(to|sub)?|on|return|stop|cont'
3024
- r'|if|then|input#?|read|wait|load|save|verify|poke|sys|print#?'
3025
- r'|list|clr|cmd|open|close|get#?', Keyword.Reserved),
3026
- (r'data|restore|dim|let|def|fn', Keyword.Declaration),
3027
- (r'tab|spc|sgn|int|abs|usr|fre|pos|sqr|rnd|log|exp|cos|sin|tan|atn'
3028
- r'|peek|len|val|asc|(str|chr|left|right|mid)\$', Name.Builtin),
3029
- (r'[-+*/^<>=]', Operator),
3030
- (r'not|and|or', Operator.Word),
3031
- (r'"[^"\n]*.', String),
3032
- (r'\d+|[-+]?\d*\.\d*(e[-+]?\d+)?', Number.Float),
3033
- (r'[\(\),:;]', Punctuation),
3034
- (r'\w+[$%]?', Name),
3035
- ]
3036
- }
3037
-
3038
- def analyse_text(self, text):
3039
- # if it starts with a line number, it shouldn't be a "modern" Basic
3040
- # like VB.net
3041
- if re.match(r'\d+', text):
3042
- return True
3043
-
3044
-
3045
- class MscgenLexer(RegexLexer):
3046
- """
3047
- For `Mscgen <http://www.mcternan.me.uk/mscgen/>`_ files.
3048
-
3049
- .. versionadded:: 1.6
3050
- """
3051
- name = 'Mscgen'
3052
- aliases = ['mscgen', 'msc']
3053
- filenames = ['*.msc']
3054
-
3055
- _var = r'(\w+|"(?:\\"|[^"])*")'
3056
-
3057
- tokens = {
3058
- 'root': [
3059
- (r'msc\b', Keyword.Type),
3060
- # Options
3061
- (r'(hscale|HSCALE|width|WIDTH|wordwraparcs|WORDWRAPARCS'
3062
- r'|arcgradient|ARCGRADIENT)\b', Name.Property),
3063
- # Operators
3064
- (r'(abox|ABOX|rbox|RBOX|box|BOX|note|NOTE)\b', Operator.Word),
3065
- (r'(\.|-|\|){3}', Keyword),
3066
- (r'(?:-|=|\.|:){2}'
3067
- r'|<<=>>|<->|<=>|<<>>|<:>'
3068
- r'|->|=>>|>>|=>|:>|-x|-X'
3069
- r'|<-|<<=|<<|<=|<:|x-|X-|=', Operator),
3070
- # Names
3071
- (r'\*', Name.Builtin),
3072
- (_var, Name.Variable),
3073
- # Other
3074
- (r'\[', Punctuation, 'attrs'),
3075
- (r'\{|\}|,|;', Punctuation),
3076
- include('comments')
3077
- ],
3078
- 'attrs': [
3079
- (r'\]', Punctuation, '#pop'),
3080
- (_var + r'(\s*)(=)(\s*)' + _var,
3081
- bygroups(Name.Attribute, Text.Whitespace, Operator, Text.Whitespace,
3082
- String)),
3083
- (r',', Punctuation),
3084
- include('comments')
3085
- ],
3086
- 'comments': [
3087
- (r'(?://|#).*?\n', Comment.Single),
3088
- (r'/\*(?:.|\n)*?\*/', Comment.Multiline),
3089
- (r'[ \t\r\n]+', Text.Whitespace)
3090
- ]
3091
- }
3092
-
3093
-
3094
- def _rx_indent(level):
3095
- # Kconfig *always* interprets a tab as 8 spaces, so this is the default.
3096
- # Edit this if you are in an environment where KconfigLexer gets expanded
3097
- # input (tabs expanded to spaces) and the expansion tab width is != 8,
3098
- # e.g. in connection with Trac (trac.ini, [mimeviewer], tab_width).
3099
- # Value range here is 2 <= {tab_width} <= 8.
3100
- tab_width = 8
3101
- # Regex matching a given indentation {level}, assuming that indentation is
3102
- # a multiple of {tab_width}. In other cases there might be problems.
3103
- return r'(?:\t| {1,%s}\t| {%s}){%s}.*\n' % (tab_width-1, tab_width, level)
3104
-
3105
-
3106
- class KconfigLexer(RegexLexer):
3107
- """
3108
- For Linux-style Kconfig files.
3109
-
3110
- .. versionadded:: 1.6
3111
- """
3112
-
3113
- name = 'Kconfig'
3114
- aliases = ['kconfig', 'menuconfig', 'linux-config', 'kernel-config']
3115
- # Adjust this if new kconfig file names appear in your environment
3116
- filenames = ['Kconfig', '*Config.in*', 'external.in*',
3117
- 'standard-modules.in']
3118
- mimetypes = ['text/x-kconfig']
3119
- # No re.MULTILINE, indentation-aware help text needs line-by-line handling
3120
- flags = 0
3121
-
3122
- def call_indent(level):
3123
- # If indentation >= {level} is detected, enter state 'indent{level}'
3124
- return (_rx_indent(level), String.Doc, 'indent%s' % level)
3125
-
3126
- def do_indent(level):
3127
- # Print paragraphs of indentation level >= {level} as String.Doc,
3128
- # ignoring blank lines. Then return to 'root' state.
3129
- return [
3130
- (_rx_indent(level), String.Doc),
3131
- (r'\s*\n', Text),
3132
- default('#pop:2')
3133
- ]
3134
-
3135
- tokens = {
3136
- 'root': [
3137
- (r'\s+', Text),
3138
- (r'#.*?\n', Comment.Single),
3139
- (r'(mainmenu|config|menuconfig|choice|endchoice|comment|menu|'
3140
- r'endmenu|visible if|if|endif|source|prompt|select|depends on|'
3141
- r'default|range|option)\b', Keyword),
3142
- (r'(---help---|help)[\t ]*\n', Keyword, 'help'),
3143
- (r'(bool|tristate|string|hex|int|defconfig_list|modules|env)\b',
3144
- Name.Builtin),
3145
- (r'[!=&|]', Operator),
3146
- (r'[()]', Punctuation),
3147
- (r'[0-9]+', Number.Integer),
3148
- (r"'(''|[^'])*'", String.Single),
3149
- (r'"(""|[^"])*"', String.Double),
3150
- (r'\S+', Text),
3151
- ],
3152
- # Help text is indented, multi-line and ends when a lower indentation
3153
- # level is detected.
3154
- 'help': [
3155
- # Skip blank lines after help token, if any
3156
- (r'\s*\n', Text),
3157
- # Determine the first help line's indentation level heuristically(!).
3158
- # Attention: this is not perfect, but works for 99% of "normal"
3159
- # indentation schemes up to a max. indentation level of 7.
3160
- call_indent(7),
3161
- call_indent(6),
3162
- call_indent(5),
3163
- call_indent(4),
3164
- call_indent(3),
3165
- call_indent(2),
3166
- call_indent(1),
3167
- ('', Text, '#pop'), # for incomplete help sections without text
3168
- ],
3169
- # Handle text for indentation levels 7 to 1
3170
- 'indent7': do_indent(7),
3171
- 'indent6': do_indent(6),
3172
- 'indent5': do_indent(5),
3173
- 'indent4': do_indent(4),
3174
- 'indent3': do_indent(3),
3175
- 'indent2': do_indent(2),
3176
- 'indent1': do_indent(1),
3177
- }
3178
-
3179
-
3180
- class VGLLexer(RegexLexer):
3181
- """
3182
- For `SampleManager VGL <http://www.thermoscientific.com/samplemanager>`_
3183
- source code.
3184
-
3185
- .. versionadded:: 1.6
3186
- """
3187
- name = 'VGL'
3188
- aliases = ['vgl']
3189
- filenames = ['*.rpf']
3190
-
3191
- flags = re.MULTILINE | re.DOTALL | re.IGNORECASE
3192
-
3193
- tokens = {
3194
- 'root': [
3195
- (r'\{[^\}]*\}', Comment.Multiline),
3196
- (r'declare', Keyword.Constant),
3197
- (r'(if|then|else|endif|while|do|endwhile|and|or|prompt|object'
3198
- r'|create|on|line|with|global|routine|value|endroutine|constant'
3199
- r'|global|set|join|library|compile_option|file|exists|create|copy'
3200
- r'|delete|enable|windows|name|notprotected)(?! *[=<>.,()])',
3201
- Keyword),
3202
- (r'(true|false|null|empty|error|locked)', Keyword.Constant),
3203
- (r'[~\^\*\#!%&\[\]\(\)<>\|+=:;,./?-]', Operator),
3204
- (r'"[^"]*"', String),
3205
- (r'(\.)([a-z_\$][\w\$]*)', bygroups(Operator, Name.Attribute)),
3206
- (r'[0-9][0-9]*(\.[0-9]+(e[+\-]?[0-9]+)?)?', Number),
3207
- (r'[a-z_\$][\w\$]*', Name),
3208
- (r'[\r\n]+', Text),
3209
- (r'\s+', Text)
3210
- ]
3211
- }
3212
-
3213
-
3214
- class SourcePawnLexer(RegexLexer):
3215
- """
3216
- For SourcePawn source code with preprocessor directives.
3217
-
3218
- .. versionadded:: 1.6
3219
- """
3220
- name = 'SourcePawn'
3221
- aliases = ['sp']
3222
- filenames = ['*.sp']
3223
- mimetypes = ['text/x-sourcepawn']
3224
-
3225
- #: optional Comment or Whitespace
3226
- _ws = r'(?:\s|//.*?\n|/\*.*?\*/)+'
3227
-
3228
- tokens = {
3229
- 'root': [
3230
- # preprocessor directives: without whitespace
3231
- ('^#if\s+0', Comment.Preproc, 'if0'),
3232
- ('^#', Comment.Preproc, 'macro'),
3233
- # or with whitespace
3234
- ('^' + _ws + r'#if\s+0', Comment.Preproc, 'if0'),
3235
- ('^' + _ws + '#', Comment.Preproc, 'macro'),
3236
- (r'\n', Text),
3237
- (r'\s+', Text),
3238
- (r'\\\n', Text), # line continuation
3239
- (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single),
3240
- (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment.Multiline),
3241
- (r'[{}]', Punctuation),
3242
- (r'L?"', String, 'string'),
3243
- (r"L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char),
3244
- (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float),
3245
- (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
3246
- (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex),
3247
- (r'0[0-7]+[LlUu]*', Number.Oct),
3248
- (r'\d+[LlUu]*', Number.Integer),
3249
- (r'\*/', Error),
3250
- (r'[~!%^&*+=|?:<>/-]', Operator),
3251
- (r'[()\[\],.;]', Punctuation),
3252
- (r'(case|const|continue|native|'
3253
- r'default|else|enum|for|if|new|operator|'
3254
- r'public|return|sizeof|static|decl|struct|switch)\b', Keyword),
3255
- (r'(bool|Float)\b', Keyword.Type),
3256
- (r'(true|false)\b', Keyword.Constant),
3257
- ('[a-zA-Z_]\w*', Name),
3258
- ],
3259
- 'string': [
3260
- (r'"', String, '#pop'),
3261
- (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
3262
- (r'[^\\"\n]+', String), # all other characters
3263
- (r'\\\n', String), # line continuation
3264
- (r'\\', String), # stray backslash
3265
- ],
3266
- 'macro': [
3267
- (r'[^/\n]+', Comment.Preproc),
3268
- (r'/\*(.|\n)*?\*/', Comment.Multiline),
3269
- (r'//.*?\n', Comment.Single, '#pop'),
3270
- (r'/', Comment.Preproc),
3271
- (r'(?<=\\)\n', Comment.Preproc),
3272
- (r'\n', Comment.Preproc, '#pop'),
3273
- ],
3274
- 'if0': [
3275
- (r'^\s*#if.*?(?<!\\)\n', Comment.Preproc, '#push'),
3276
- (r'^\s*#endif.*?(?<!\\)\n', Comment.Preproc, '#pop'),
3277
- (r'.*?\n', Comment),
3278
- ]
3279
- }
3280
-
3281
- SM_TYPES = set(['Action', 'bool', 'Float', 'Plugin', 'String', 'any',
3282
- 'AdminFlag', 'OverrideType', 'OverrideRule', 'ImmunityType',
3283
- 'GroupId', 'AdminId', 'AdmAccessMode', 'AdminCachePart',
3284
- 'CookieAccess', 'CookieMenu', 'CookieMenuAction', 'NetFlow',
3285
- 'ConVarBounds', 'QueryCookie', 'ReplySource',
3286
- 'ConVarQueryResult', 'ConVarQueryFinished', 'Function',
3287
- 'Action', 'Identity', 'PluginStatus', 'PluginInfo', 'DBResult',
3288
- 'DBBindType', 'DBPriority', 'PropType', 'PropFieldType',
3289
- 'MoveType', 'RenderMode', 'RenderFx', 'EventHookMode',
3290
- 'EventHook', 'FileType', 'FileTimeMode', 'PathType',
3291
- 'ParamType', 'ExecType', 'DialogType', 'Handle', 'KvDataTypes',
3292
- 'NominateResult', 'MapChange', 'MenuStyle', 'MenuAction',
3293
- 'MenuSource', 'RegexError', 'SDKCallType', 'SDKLibrary',
3294
- 'SDKFuncConfSource', 'SDKType', 'SDKPassMethod', 'RayType',
3295
- 'TraceEntityFilter', 'ListenOverride', 'SortOrder', 'SortType',
3296
- 'SortFunc2D', 'APLRes', 'FeatureType', 'FeatureStatus',
3297
- 'SMCResult', 'SMCError', 'TFClassType', 'TFTeam', 'TFCond',
3298
- 'TFResourceType', 'Timer', 'TopMenuAction', 'TopMenuObjectType',
3299
- 'TopMenuPosition', 'TopMenuObject', 'UserMsg'])
3300
-
3301
- def __init__(self, **options):
3302
- self.smhighlighting = get_bool_opt(options,
3303
- 'sourcemod', True)
3304
-
3305
- self._functions = set()
3306
- if self.smhighlighting:
3307
- from pygments.lexers._sourcemodbuiltins import FUNCTIONS
3308
- self._functions.update(FUNCTIONS)
3309
- RegexLexer.__init__(self, **options)
3310
-
3311
- def get_tokens_unprocessed(self, text):
3312
- for index, token, value in \
3313
- RegexLexer.get_tokens_unprocessed(self, text):
3314
- if token is Name:
3315
- if self.smhighlighting:
3316
- if value in self.SM_TYPES:
3317
- token = Keyword.Type
3318
- elif value in self._functions:
3319
- token = Name.Builtin
3320
- yield index, token, value
3321
-
3322
-
3323
- class PuppetLexer(RegexLexer):
3324
- """
3325
- For `Puppet <http://puppetlabs.com/>`__ configuration DSL.
3326
-
3327
- .. versionadded:: 1.6
3328
- """
3329
- name = 'Puppet'
3330
- aliases = ['puppet']
3331
- filenames = ['*.pp']
3332
-
3333
- tokens = {
3334
- 'root': [
3335
- include('comments'),
3336
- include('keywords'),
3337
- include('names'),
3338
- include('numbers'),
3339
- include('operators'),
3340
- include('strings'),
3341
-
3342
- (r'[]{}:(),;[]', Punctuation),
3343
- (r'[^\S\n]+', Text),
3344
- ],
3345
-
3346
- 'comments': [
3347
- (r'\s*#.*$', Comment),
3348
- (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
3349
- ],
3350
-
3351
- 'operators': [
3352
- (r'(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)', Operator),
3353
- (r'(in|and|or|not)\b', Operator.Word),
3354
- ],
3355
-
3356
- 'names': [
3357
- ('[a-zA-Z_]\w*', Name.Attribute),
3358
- (r'(\$\S+)(\[)(\S+)(\])', bygroups(Name.Variable, Punctuation,
3359
- String, Punctuation)),
3360
- (r'\$\S+', Name.Variable),
3361
- ],
3362
-
3363
- 'numbers': [
3364
- # Copypasta from the Python lexer
3365
- (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float),
3366
- (r'\d+[eE][+-]?[0-9]+j?', Number.Float),
3367
- (r'0[0-7]+j?', Number.Oct),
3368
- (r'0[xX][a-fA-F0-9]+', Number.Hex),
3369
- (r'\d+L', Number.Integer.Long),
3370
- (r'\d+j?', Number.Integer)
3371
- ],
3372
-
3373
- 'keywords': [
3374
- # Left out 'group' and 'require'
3375
- # Since they're often used as attributes
3376
- (r'(?i)(absent|alert|alias|audit|augeas|before|case|check|class|'
3377
- r'computer|configured|contained|create_resources|crit|cron|debug|'
3378
- r'default|define|defined|directory|else|elsif|emerg|err|exec|'
3379
- r'extlookup|fail|false|file|filebucket|fqdn_rand|generate|host|if|'
3380
- r'import|include|info|inherits|inline_template|installed|'
3381
- r'interface|k5login|latest|link|loglevel|macauthorization|'
3382
- r'mailalias|maillist|mcx|md5|mount|mounted|nagios_command|'
3383
- r'nagios_contact|nagios_contactgroup|nagios_host|'
3384
- r'nagios_hostdependency|nagios_hostescalation|nagios_hostextinfo|'
3385
- r'nagios_hostgroup|nagios_service|nagios_servicedependency|'
3386
- r'nagios_serviceescalation|nagios_serviceextinfo|'
3387
- r'nagios_servicegroup|nagios_timeperiod|node|noop|notice|notify|'
3388
- r'package|present|purged|realize|regsubst|resources|role|router|'
3389
- r'running|schedule|scheduled_task|search|selboolean|selmodule|'
3390
- r'service|sha1|shellquote|split|sprintf|ssh_authorized_key|sshkey|'
3391
- r'stage|stopped|subscribe|tag|tagged|template|tidy|true|undef|'
3392
- r'unmounted|user|versioncmp|vlan|warning|yumrepo|zfs|zone|'
3393
- r'zpool)\b', Keyword),
3394
- ],
3395
-
3396
- 'strings': [
3397
- (r'"([^"])*"', String),
3398
- (r"'(\\'|[^'])*'", String),
3399
- ],
3400
-
3401
- }
3402
-
3403
-
3404
- class NSISLexer(RegexLexer):
3405
- """
3406
- For `NSIS <http://nsis.sourceforge.net/>`_ scripts.
3407
-
3408
- .. versionadded:: 1.6
3409
- """
3410
- name = 'NSIS'
3411
- aliases = ['nsis', 'nsi', 'nsh']
3412
- filenames = ['*.nsi', '*.nsh']
3413
- mimetypes = ['text/x-nsis']
3414
-
3415
- flags = re.IGNORECASE
3416
-
3417
- tokens = {
3418
- 'root': [
3419
- (r'[;\#].*\n', Comment),
3420
- (r"'.*?'", String.Single),
3421
- (r'"', String.Double, 'str_double'),
3422
- (r'`', String.Backtick, 'str_backtick'),
3423
- include('macro'),
3424
- include('interpol'),
3425
- include('basic'),
3426
- (r'\$\{[a-z_|][\w|]*\}', Keyword.Pseudo),
3427
- (r'/[a-z_]\w*', Name.Attribute),
3428
- ('.', Text),
3429
- ],
3430
- 'basic': [
3431
- (r'(\n)(Function)(\s+)([._a-z][.\w]*)\b',
3432
- bygroups(Text, Keyword, Text, Name.Function)),
3433
- (r'\b([_a-z]\w*)(::)([a-z][a-z0-9]*)\b',
3434
- bygroups(Keyword.Namespace, Punctuation, Name.Function)),
3435
- (r'\b([_a-z]\w*)(:)', bygroups(Name.Label, Punctuation)),
3436
- (r'(\b[ULS]|\B)([\!\<\>=]?=|\<\>?|\>)\B', Operator),
3437
- (r'[|+-]', Operator),
3438
- (r'\\', Punctuation),
3439
- (r'\b(Abort|Add(?:BrandingImage|Size)|'
3440
- r'Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|'
3441
- r'BG(?:Font|Gradient)|BrandingText|BringToFront|Call(?:InstDLL)?|'
3442
- r'(?:Sub)?Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|'
3443
- r'ComponentText|CopyFiles|CRCCheck|'
3444
- r'Create(?:Directory|Font|Shortcut)|Delete(?:INI(?:Sec|Str)|'
3445
- r'Reg(?:Key|Value))?|DetailPrint|DetailsButtonText|'
3446
- r'Dir(?:Show|Text|Var|Verify)|(?:Disabled|Enabled)Bitmap|'
3447
- r'EnableWindow|EnumReg(?:Key|Value)|Exch|Exec(?:Shell|Wait)?|'
3448
- r'ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|'
3449
- r'Read(?:Byte)?|Seek|Write(?:Byte)?)?|'
3450
- r'Find(?:Close|First|Next|Window)|FlushINI|Function(?:End)?|'
3451
- r'Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|'
3452
- r'ErrorLevel|FileTime(?:Local)?|FullPathName|FunctionAddress|'
3453
- r'InstDirError|LabelAddress|TempFileName)|'
3454
- r'Goto|HideWindow|Icon|'
3455
- r'If(?:Abort|Errors|FileExists|RebootFlag|Silent)|'
3456
- r'InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|'
3457
- r'Inst(?:ProgressFlags|Type(?:[GS]etText)?)|Int(?:CmpU?|Fmt|Op)|'
3458
- r'IsWindow|LangString(?:UP)?|'
3459
- r'License(?:BkColor|Data|ForceSelection|LangString|Text)|'
3460
- r'LoadLanguageFile|LockWindow|Log(?:Set|Text)|MessageBox|'
3461
- r'MiscButtonText|Name|Nop|OutFile|(?:Uninst)?Page(?:Ex(?:End)?)?|'
3462
- r'PluginDir|Pop|Push|Quit|Read(?:(?:Env|INI|Reg)Str|RegDWORD)|'
3463
- r'Reboot|(?:Un)?RegDLL|Rename|RequestExecutionLevel|ReserveFile|'
3464
- r'Return|RMDir|SearchPath|Section(?:Divider|End|'
3465
- r'(?:(?:Get|Set)(?:Flags|InstTypes|Size|Text))|Group(?:End)?|In)?|'
3466
- r'SendMessage|Set(?:AutoClose|BrandingImage|Compress(?:ionLevel|'
3467
- r'or(?:DictSize)?)?|CtlColors|CurInstType|DatablockOptimize|'
3468
- r'DateSave|Details(?:Print|View)|Error(?:s|Level)|FileAttributes|'
3469
- r'Font|OutPath|Overwrite|PluginUnload|RebootFlag|ShellVarContext|'
3470
- r'Silent|StaticBkColor)|'
3471
- r'Show(?:(?:I|Uni)nstDetails|Window)|Silent(?:Un)?Install|Sleep|'
3472
- r'SpaceTexts|Str(?:CmpS?|Cpy|Len)|SubSection(?:End)?|'
3473
- r'Uninstall(?:ButtonText|(?:Sub)?Caption|EXEName|Icon|Text)|'
3474
- r'UninstPage|Var|VI(?:AddVersionKey|ProductVersion)|WindowIcon|'
3475
- r'Write(?:INIStr|Reg(:?Bin|DWORD|(?:Expand)?Str)|Uninstaller)|'
3476
- r'XPStyle)\b', Keyword),
3477
- (r'\b(CUR|END|(?:FILE_ATTRIBUTE_)?'
3478
- r'(?:ARCHIVE|HIDDEN|NORMAL|OFFLINE|READONLY|SYSTEM|TEMPORARY)|'
3479
- r'HK(CC|CR|CU|DD|LM|PD|U)|'
3480
- r'HKEY_(?:CLASSES_ROOT|CURRENT_(?:CONFIG|USER)|DYN_DATA|'
3481
- r'LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|'
3482
- r'ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|'
3483
- r'MB_(?:ABORTRETRYIGNORE|DEFBUTTON[1-4]|'
3484
- r'ICON(?:EXCLAMATION|INFORMATION|QUESTION|STOP)|'
3485
- r'OK(?:CANCEL)?|RETRYCANCEL|RIGHT|SETFOREGROUND|TOPMOST|USERICON|'
3486
- r'YESNO(?:CANCEL)?)|SET|SHCTX|'
3487
- r'SW_(?:HIDE|SHOW(?:MAXIMIZED|MINIMIZED|NORMAL))|'
3488
- r'admin|all|auto|both|bottom|bzip2|checkbox|colored|current|false|'
3489
- r'force|hide|highest|if(?:diff|newer)|lastused|leave|left|'
3490
- r'listonly|lzma|nevershow|none|normal|off|on|pop|push|'
3491
- r'radiobuttons|right|show|silent|silentlog|smooth|textonly|top|'
3492
- r'true|try|user|zlib)\b', Name.Constant),
3493
- ],
3494
- 'macro': [
3495
- (r'\!(addincludedir(?:dir)?|addplugindir|appendfile|cd|define|'
3496
- r'delfilefile|echo(?:message)?|else|endif|error|execute|'
3497
- r'if(?:macro)?n?(?:def)?|include|insertmacro|macro(?:end)?|packhdr|'
3498
- r'search(?:parse|replace)|system|tempfilesymbol|undef|verbose|'
3499
- r'warning)\b', Comment.Preproc),
3500
- ],
3501
- 'interpol': [
3502
- (r'\$(R?[0-9])', Name.Builtin.Pseudo), # registers
3503
- (r'\$(ADMINTOOLS|APPDATA|CDBURN_AREA|COOKIES|COMMONFILES(?:32|64)|'
3504
- r'DESKTOP|DOCUMENTS|EXE(?:DIR|FILE|PATH)|FAVORITES|FONTS|HISTORY|'
3505
- r'HWNDPARENT|INTERNET_CACHE|LOCALAPPDATA|MUSIC|NETHOOD|PICTURES|'
3506
- r'PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES(?:32|64)|QUICKLAUNCH|'
3507
- r'RECENT|RESOURCES(?:_LOCALIZED)?|SENDTO|SM(?:PROGRAMS|STARTUP)|'
3508
- r'STARTMENU|SYSDIR|TEMP(?:LATES)?|VIDEOS|WINDIR|\{NSISDIR\})',
3509
- Name.Builtin),
3510
- (r'\$(CMDLINE|INSTDIR|OUTDIR|LANGUAGE)', Name.Variable.Global),
3511
- (r'\$[a-z_]\w*', Name.Variable),
3512
- ],
3513
- 'str_double': [
3514
- (r'"', String, '#pop'),
3515
- (r'\$(\\[nrt"]|\$)', String.Escape),
3516
- include('interpol'),
3517
- (r'.', String.Double),
3518
- ],
3519
- 'str_backtick': [
3520
- (r'`', String, '#pop'),
3521
- (r'\$(\\[nrt"]|\$)', String.Escape),
3522
- include('interpol'),
3523
- (r'.', String.Double),
3524
- ],
3525
- }
3526
-
3527
-
3528
- class RPMSpecLexer(RegexLexer):
3529
- """
3530
- For RPM ``.spec`` files.
3531
-
3532
- .. versionadded:: 1.6
3533
- """
3534
-
3535
- name = 'RPMSpec'
3536
- aliases = ['spec']
3537
- filenames = ['*.spec']
3538
- mimetypes = ['text/x-rpm-spec']
3539
-
3540
- _directives = ('(?:package|prep|build|install|clean|check|pre[a-z]*|'
3541
- 'post[a-z]*|trigger[a-z]*|files)')
3542
-
3543
- tokens = {
3544
- 'root': [
3545
- (r'#.*\n', Comment),
3546
- include('basic'),
3547
- ],
3548
- 'description': [
3549
- (r'^(%' + _directives + ')(.*)$',
3550
- bygroups(Name.Decorator, Text), '#pop'),
3551
- (r'\n', Text),
3552
- (r'.', Text),
3553
- ],
3554
- 'changelog': [
3555
- (r'\*.*\n', Generic.Subheading),
3556
- (r'^(%' + _directives + ')(.*)$',
3557
- bygroups(Name.Decorator, Text), '#pop'),
3558
- (r'\n', Text),
3559
- (r'.', Text),
3560
- ],
3561
- 'string': [
3562
- (r'"', String.Double, '#pop'),
3563
- (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
3564
- include('interpol'),
3565
- (r'.', String.Double),
3566
- ],
3567
- 'basic': [
3568
- include('macro'),
3569
- (r'(?i)^(Name|Version|Release|Epoch|Summary|Group|License|Packager|'
3570
- r'Vendor|Icon|URL|Distribution|Prefix|Patch[0-9]*|Source[0-9]*|'
3571
- r'Requires\(?[a-z]*\)?|[a-z]+Req|Obsoletes|Suggests|Provides|Conflicts|'
3572
- r'Build[a-z]+|[a-z]+Arch|Auto[a-z]+)(:)(.*)$',
3573
- bygroups(Generic.Heading, Punctuation, using(this))),
3574
- (r'^%description', Name.Decorator, 'description'),
3575
- (r'^%changelog', Name.Decorator, 'changelog'),
3576
- (r'^(%' + _directives + ')(.*)$', bygroups(Name.Decorator, Text)),
3577
- (r'%(attr|defattr|dir|doc(?:dir)?|setup|config(?:ure)?|'
3578
- r'make(?:install)|ghost|patch[0-9]+|find_lang|exclude|verify)',
3579
- Keyword),
3580
- include('interpol'),
3581
- (r"'.*?'", String.Single),
3582
- (r'"', String.Double, 'string'),
3583
- (r'.', Text),
3584
- ],
3585
- 'macro': [
3586
- (r'%define.*\n', Comment.Preproc),
3587
- (r'%\{\!\?.*%define.*\}', Comment.Preproc),
3588
- (r'(%(?:if(?:n?arch)?|else(?:if)?|endif))(.*)$',
3589
- bygroups(Comment.Preproc, Text)),
3590
- ],
3591
- 'interpol': [
3592
- (r'%\{?__[a-z_]+\}?', Name.Function),
3593
- (r'%\{?_([a-z_]+dir|[a-z_]+path|prefix)\}?', Keyword.Pseudo),
3594
- (r'%\{\?\w+\}', Name.Variable),
3595
- (r'\$\{?RPM_[A-Z0-9_]+\}?', Name.Variable.Global),
3596
- (r'%\{[a-zA-Z]\w+\}', Keyword.Constant),
3597
- ]
3598
- }
3599
-
3600
-
3601
- class AutoItLexer(RegexLexer):
3602
- """
3603
- For `AutoIt <http://www.autoitscript.com/site/autoit/>`_ files.
3604
-
3605
- AutoIt is a freeware BASIC-like scripting language
3606
- designed for automating the Windows GUI and general scripting
3607
-
3608
- .. versionadded:: 1.6
3609
- """
3610
- name = 'AutoIt'
3611
- aliases = ['autoit']
3612
- filenames = ['*.au3']
3613
- mimetypes = ['text/x-autoit']
3614
-
3615
- # Keywords, functions, macros from au3.keywords.properties
3616
- # which can be found in AutoIt installed directory, e.g.
3617
- # c:\Program Files (x86)\AutoIt3\SciTE\au3.keywords.properties
3618
-
3619
- keywords = """\
3620
- #include-once #include #endregion #forcedef #forceref #region
3621
- and byref case continueloop dim do else elseif endfunc endif
3622
- endselect exit exitloop for func global
3623
- if local next not or return select step
3624
- then to until wend while exit""".split()
3625
-
3626
- functions = """\
3627
- abs acos adlibregister adlibunregister asc ascw asin assign atan
3628
- autoitsetoption autoitwingettitle autoitwinsettitle beep binary binarylen
3629
- binarymid binarytostring bitand bitnot bitor bitrotate bitshift bitxor
3630
- blockinput break call cdtray ceiling chr chrw clipget clipput consoleread
3631
- consolewrite consolewriteerror controlclick controlcommand controldisable
3632
- controlenable controlfocus controlgetfocus controlgethandle controlgetpos
3633
- controlgettext controlhide controllistview controlmove controlsend
3634
- controlsettext controlshow controltreeview cos dec dircopy dircreate
3635
- dirgetsize dirmove dirremove dllcall dllcalladdress dllcallbackfree
3636
- dllcallbackgetptr dllcallbackregister dllclose dllopen dllstructcreate
3637
- dllstructgetdata dllstructgetptr dllstructgetsize dllstructsetdata
3638
- drivegetdrive drivegetfilesystem drivegetlabel drivegetserial drivegettype
3639
- drivemapadd drivemapdel drivemapget drivesetlabel drivespacefree
3640
- drivespacetotal drivestatus envget envset envupdate eval execute exp
3641
- filechangedir fileclose filecopy filecreatentfslink filecreateshortcut
3642
- filedelete fileexists filefindfirstfile filefindnextfile fileflush
3643
- filegetattrib filegetencoding filegetlongname filegetpos filegetshortcut
3644
- filegetshortname filegetsize filegettime filegetversion fileinstall filemove
3645
- fileopen fileopendialog fileread filereadline filerecycle filerecycleempty
3646
- filesavedialog fileselectfolder filesetattrib filesetpos filesettime
3647
- filewrite filewriteline floor ftpsetproxy guicreate guictrlcreateavi
3648
- guictrlcreatebutton guictrlcreatecheckbox guictrlcreatecombo
3649
- guictrlcreatecontextmenu guictrlcreatedate guictrlcreatedummy
3650
- guictrlcreateedit guictrlcreategraphic guictrlcreategroup guictrlcreateicon
3651
- guictrlcreateinput guictrlcreatelabel guictrlcreatelist
3652
- guictrlcreatelistview guictrlcreatelistviewitem guictrlcreatemenu
3653
- guictrlcreatemenuitem guictrlcreatemonthcal guictrlcreateobj
3654
- guictrlcreatepic guictrlcreateprogress guictrlcreateradio
3655
- guictrlcreateslider guictrlcreatetab guictrlcreatetabitem
3656
- guictrlcreatetreeview guictrlcreatetreeviewitem guictrlcreateupdown
3657
- guictrldelete guictrlgethandle guictrlgetstate guictrlread guictrlrecvmsg
3658
- guictrlregisterlistviewsort guictrlsendmsg guictrlsendtodummy
3659
- guictrlsetbkcolor guictrlsetcolor guictrlsetcursor guictrlsetdata
3660
- guictrlsetdefbkcolor guictrlsetdefcolor guictrlsetfont guictrlsetgraphic
3661
- guictrlsetimage guictrlsetlimit guictrlsetonevent guictrlsetpos
3662
- guictrlsetresizing guictrlsetstate guictrlsetstyle guictrlsettip guidelete
3663
- guigetcursorinfo guigetmsg guigetstyle guiregistermsg guisetaccelerators
3664
- guisetbkcolor guisetcoord guisetcursor guisetfont guisethelp guiseticon
3665
- guisetonevent guisetstate guisetstyle guistartgroup guiswitch hex hotkeyset
3666
- httpsetproxy httpsetuseragent hwnd inetclose inetget inetgetinfo inetgetsize
3667
- inetread inidelete iniread inireadsection inireadsectionnames
3668
- inirenamesection iniwrite iniwritesection inputbox int isadmin isarray
3669
- isbinary isbool isdeclared isdllstruct isfloat ishwnd isint iskeyword
3670
- isnumber isobj isptr isstring log memgetstats mod mouseclick mouseclickdrag
3671
- mousedown mousegetcursor mousegetpos mousemove mouseup mousewheel msgbox
3672
- number objcreate objcreateinterface objevent objevent objget objname
3673
- onautoitexitregister onautoitexitunregister opt ping pixelchecksum
3674
- pixelgetcolor pixelsearch pluginclose pluginopen processclose processexists
3675
- processgetstats processlist processsetpriority processwait processwaitclose
3676
- progressoff progresson progressset ptr random regdelete regenumkey
3677
- regenumval regread regwrite round run runas runaswait runwait send
3678
- sendkeepactive seterror setextended shellexecute shellexecutewait shutdown
3679
- sin sleep soundplay soundsetwavevolume splashimageon splashoff splashtexton
3680
- sqrt srandom statusbargettext stderrread stdinwrite stdioclose stdoutread
3681
- string stringaddcr stringcompare stringformat stringfromasciiarray
3682
- stringinstr stringisalnum stringisalpha stringisascii stringisdigit
3683
- stringisfloat stringisint stringislower stringisspace stringisupper
3684
- stringisxdigit stringleft stringlen stringlower stringmid stringregexp
3685
- stringregexpreplace stringreplace stringright stringsplit stringstripcr
3686
- stringstripws stringtoasciiarray stringtobinary stringtrimleft
3687
- stringtrimright stringupper tan tcpaccept tcpclosesocket tcpconnect
3688
- tcplisten tcpnametoip tcprecv tcpsend tcpshutdown tcpstartup timerdiff
3689
- timerinit tooltip traycreateitem traycreatemenu traygetmsg trayitemdelete
3690
- trayitemgethandle trayitemgetstate trayitemgettext trayitemsetonevent
3691
- trayitemsetstate trayitemsettext traysetclick trayseticon traysetonevent
3692
- traysetpauseicon traysetstate traysettooltip traytip ubound udpbind
3693
- udpclosesocket udpopen udprecv udpsend udpshutdown udpstartup vargettype
3694
- winactivate winactive winclose winexists winflash wingetcaretpos
3695
- wingetclasslist wingetclientsize wingethandle wingetpos wingetprocess
3696
- wingetstate wingettext wingettitle winkill winlist winmenuselectitem
3697
- winminimizeall winminimizeallundo winmove winsetontop winsetstate
3698
- winsettitle winsettrans winwait winwaitactive winwaitclose
3699
- winwaitnotactive""".split()
3700
-
3701
- macros = """\
3702
- @appdatacommondir @appdatadir @autoitexe @autoitpid @autoitversion
3703
- @autoitx64 @com_eventobj @commonfilesdir @compiled @computername @comspec
3704
- @cpuarch @cr @crlf @desktopcommondir @desktopdepth @desktopdir
3705
- @desktopheight @desktoprefresh @desktopwidth @documentscommondir @error
3706
- @exitcode @exitmethod @extended @favoritescommondir @favoritesdir
3707
- @gui_ctrlhandle @gui_ctrlid @gui_dragfile @gui_dragid @gui_dropid
3708
- @gui_winhandle @homedrive @homepath @homeshare @hotkeypressed @hour
3709
- @ipaddress1 @ipaddress2 @ipaddress3 @ipaddress4 @kblayout @lf
3710
- @logondnsdomain @logondomain @logonserver @mday @min @mon @msec @muilang
3711
- @mydocumentsdir @numparams @osarch @osbuild @oslang @osservicepack @ostype
3712
- @osversion @programfilesdir @programscommondir @programsdir @scriptdir
3713
- @scriptfullpath @scriptlinenumber @scriptname @sec @startmenucommondir
3714
- @startmenudir @startupcommondir @startupdir @sw_disable @sw_enable @sw_hide
3715
- @sw_lock @sw_maximize @sw_minimize @sw_restore @sw_show @sw_showdefault
3716
- @sw_showmaximized @sw_showminimized @sw_showminnoactive @sw_showna
3717
- @sw_shownoactivate @sw_shownormal @sw_unlock @systemdir @tab @tempdir
3718
- @tray_id @trayiconflashing @trayiconvisible @username @userprofiledir @wday
3719
- @windowsdir @workingdir @yday @year""".split()
3720
-
3721
- tokens = {
3722
- 'root': [
3723
- (r';.*\n', Comment.Single),
3724
- (r'(#comments-start|#cs).*?(#comments-end|#ce)', Comment.Multiline),
3725
- (r'[\[\]{}(),;]', Punctuation),
3726
- (r'(and|or|not)\b', Operator.Word),
3727
- (r'[\$|@][a-zA-Z_]\w*', Name.Variable),
3728
- (r'!=|==|:=|\.=|<<|>>|[-~+/*%=<>&^|?:!.]', Operator),
3729
- include('commands'),
3730
- include('labels'),
3731
- include('builtInFunctions'),
3732
- include('builtInMarcros'),
3733
- (r'"', String, combined('stringescape', 'dqs')),
3734
- include('numbers'),
3735
- (r'[a-zA-Z_#@$][\w#@$]*', Name),
3736
- (r'\\|\'', Text),
3737
- (r'\`([\,\%\`abfnrtv\-\+;])', String.Escape),
3738
- (r'_\n', Text), # Line continuation
3739
- include('garbage'),
3740
- ],
3741
- 'commands': [
3742
- (r'(?i)(\s*)(%s)\b' % '|'.join(keywords),
3743
- bygroups(Text, Name.Builtin)),
3744
- ],
3745
- 'builtInFunctions': [
3746
- (r'(?i)(%s)\b' % '|'.join(functions),
3747
- Name.Function),
3748
- ],
3749
- 'builtInMarcros': [
3750
- (r'(?i)(%s)\b' % '|'.join(macros),
3751
- Name.Variable.Global),
3752
- ],
3753
- 'labels': [
3754
- # sendkeys
3755
- (r'(^\s*)({\S+?})', bygroups(Text, Name.Label)),
3756
- ],
3757
- 'numbers': [
3758
- (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
3759
- (r'\d+[eE][+-]?[0-9]+', Number.Float),
3760
- (r'0\d+', Number.Oct),
3761
- (r'0[xX][a-fA-F0-9]+', Number.Hex),
3762
- (r'\d+L', Number.Integer.Long),
3763
- (r'\d+', Number.Integer)
3764
- ],
3765
- 'stringescape': [
3766
- (r'\"\"|\`([\,\%\`abfnrtv])', String.Escape),
3767
- ],
3768
- 'strings': [
3769
- (r'[^"\n]+', String),
3770
- ],
3771
- 'dqs': [
3772
- (r'"', String, '#pop'),
3773
- include('strings')
3774
- ],
3775
- 'garbage': [
3776
- (r'[^\S\n]', Text),
3777
- ],
3778
- }
3779
-
3780
-
3781
- class RexxLexer(RegexLexer):
3782
- """
3783
- `Rexx <http://www.rexxinfo.org/>`_ is a scripting language available for
3784
- a wide range of different platforms with its roots found on mainframe
3785
- systems. It is popular for I/O- and data based tasks and can act as glue
3786
- language to bind different applications together.
3787
-
3788
- .. versionadded:: 2.0
3789
- """
3790
- name = 'Rexx'
3791
- aliases = ['rexx', 'arexx']
3792
- filenames = ['*.rexx', '*.rex', '*.rx', '*.arexx']
3793
- mimetypes = ['text/x-rexx']
3794
- flags = re.IGNORECASE
3795
-
3796
- tokens = {
3797
- 'root': [
3798
- (r'\s', Whitespace),
3799
- (r'/\*', Comment.Multiline, 'comment'),
3800
- (r'"', String, 'string_double'),
3801
- (r"'", String, 'string_single'),
3802
- (r'[0-9]+(\.[0-9]+)?(e[+-]?[0-9])?', Number),
3803
- (r'([a-z_]\w*)(\s*)(:)(\s*)(procedure)\b',
3804
- bygroups(Name.Function, Whitespace, Operator, Whitespace,
3805
- Keyword.Declaration)),
3806
- (r'([a-z_]\w*)(\s*)(:)',
3807
- bygroups(Name.Label, Whitespace, Operator)),
3808
- include('function'),
3809
- include('keyword'),
3810
- include('operator'),
3811
- (r'[a-z_]\w*', Text),
3812
- ],
3813
- 'function': [
3814
- (r'(abbrev|abs|address|arg|b2x|bitand|bitor|bitxor|c2d|c2x|'
3815
- r'center|charin|charout|chars|compare|condition|copies|d2c|'
3816
- r'd2x|datatype|date|delstr|delword|digits|errortext|form|'
3817
- r'format|fuzz|insert|lastpos|left|length|linein|lineout|lines|'
3818
- r'max|min|overlay|pos|queued|random|reverse|right|sign|'
3819
- r'sourceline|space|stream|strip|substr|subword|symbol|time|'
3820
- r'trace|translate|trunc|value|verify|word|wordindex|'
3821
- r'wordlength|wordpos|words|x2b|x2c|x2d|xrange)(\s*)(\()',
3822
- bygroups(Name.Builtin, Whitespace, Operator)),
3823
- ],
3824
- 'keyword': [
3825
- (r'(address|arg|by|call|do|drop|else|end|exit|for|forever|if|'
3826
- r'interpret|iterate|leave|nop|numeric|off|on|options|parse|'
3827
- r'pull|push|queue|return|say|select|signal|to|then|trace|until|'
3828
- r'while)\b', Keyword.Reserved),
3829
- ],
3830
- 'operator': [
3831
- (r'(-|//|/|\(|\)|\*\*|\*|\\<<|\\<|\\==|\\=|\\>>|\\>|\\|\|\||\||'
3832
- r'&&|&|%|\+|<<=|<<|<=|<>|<|==|=|><|>=|>>=|>>|>|¬<<|¬<|¬==|¬=|'
3833
- r'¬>>|¬>|¬|\.|,)', Operator),
3834
- ],
3835
- 'string_double': [
3836
- (r'[^"\n]+', String),
3837
- (r'""', String),
3838
- (r'"', String, '#pop'),
3839
- (r'\n', Text, '#pop'), # Stray linefeed also terminates strings.
3840
- ],
3841
- 'string_single': [
3842
- (r'[^\'\n]', String),
3843
- (r'\'\'', String),
3844
- (r'\'', String, '#pop'),
3845
- (r'\n', Text, '#pop'), # Stray linefeed also terminates strings.
3846
- ],
3847
- 'comment': [
3848
- (r'[^*]+', Comment.Multiline),
3849
- (r'\*/', Comment.Multiline, '#pop'),
3850
- (r'\*', Comment.Multiline),
3851
- ]
3852
- }
3853
-
3854
- _c = lambda s: re.compile(s, re.MULTILINE)
3855
- _ADDRESS_COMMAND_PATTERN = _c(r'^\s*address\s+command\b')
3856
- _ADDRESS_PATTERN = _c(r'^\s*address\s+')
3857
- _DO_WHILE_PATTERN = _c(r'^\s*do\s+while\b')
3858
- _IF_THEN_DO_PATTERN = _c(r'^\s*if\b.+\bthen\s+do\s*$')
3859
- _PROCEDURE_PATTERN = _c(r'^\s*([a-z_]\w*)(\s*)(:)(\s*)(procedure)\b')
3860
- _ELSE_DO_PATTERN = _c(r'\belse\s+do\s*$')
3861
- _PARSE_ARG_PATTERN = _c(r'^\s*parse\s+(upper\s+)?(arg|value)\b')
3862
- PATTERNS_AND_WEIGHTS = (
3863
- (_ADDRESS_COMMAND_PATTERN, 0.2),
3864
- (_ADDRESS_PATTERN, 0.05),
3865
- (_DO_WHILE_PATTERN, 0.1),
3866
- (_ELSE_DO_PATTERN, 0.1),
3867
- (_IF_THEN_DO_PATTERN, 0.1),
3868
- (_PROCEDURE_PATTERN, 0.5),
3869
- (_PARSE_ARG_PATTERN, 0.2),
3870
- )
3871
-
3872
- def analyse_text(text):
3873
- """
3874
- Check for inital comment and patterns that distinguish Rexx from other
3875
- C-like languages.
3876
- """
3877
- if re.search(r'/\*\**\s*rexx', text, re.IGNORECASE):
3878
- # Header matches MVS Rexx requirements, this is certainly a Rexx
3879
- # script.
3880
- return 1.0
3881
- elif text.startswith('/*'):
3882
- # Header matches general Rexx requirements; the source code might
3883
- # still be any language using C comments such as C++, C# or Java.
3884
- lowerText = text.lower()
3885
- result = sum(weight
3886
- for (pattern, weight) in RexxLexer.PATTERNS_AND_WEIGHTS
3887
- if pattern.search(lowerText)) + 0.01
3888
- return min(result, 1.0)
3889
-
3890
-
3891
- class APLLexer(RegexLexer):
3892
- """
3893
- A simple APL lexer.
3894
-
3895
- .. versionadded:: 2.0
3896
- """
3897
- name = 'APL'
3898
- aliases = ['apl']
3899
- filenames = ['*.apl']
3900
-
3901
- tokens = {
3902
- 'root': [
3903
- # Whitespace
3904
- # ==========
3905
- (r'\s+', Text),
3906
- #
3907
- # Comment
3908
- # =======
3909
- # '⍝' is traditional; '#' is supported by GNU APL and NGN (but not Dyalog)
3910
- (u'[⍝#].*$', Comment.Single),
3911
- #
3912
- # Strings
3913
- # =======
3914
- (r'\'((\'\')|[^\'])*\'', String.Single),
3915
- (r'"(("")|[^"])*"', String.Double), # supported by NGN APL
3916
- #
3917
- # Punctuation
3918
- # ===========
3919
- # This token type is used for diamond and parenthesis
3920
- # but not for bracket and ; (see below)
3921
- (u'[⋄◇()]', Punctuation),
3922
- #
3923
- # Array indexing
3924
- # ==============
3925
- # Since this token type is very important in APL, it is not included in
3926
- # the punctuation token type but rather in the following one
3927
- (r'[\[\];]', String.Regex),
3928
- #
3929
- # Distinguished names
3930
- # ===================
3931
- # following IBM APL2 standard
3932
- (u'⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*', Name.Function),
3933
- #
3934
- # Labels
3935
- # ======
3936
- # following IBM APL2 standard
3937
- # (u'[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*:', Name.Label),
3938
- #
3939
- # Variables
3940
- # =========
3941
- # following IBM APL2 standard
3942
- (u'[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*', Name.Variable),
3943
- #
3944
- # Numbers
3945
- # =======
3946
- (u'¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞)'
3947
- u'([Jj]¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞))?',
3948
- Number),
3949
- #
3950
- # Operators
3951
- # ==========
3952
- (u'[\.\\\/⌿⍀¨⍣⍨⍠⍤∘]', Name.Attribute), # closest token type
3953
- (u'[+\-×÷⌈⌊∣|⍳?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⌸⍯↗]',
3954
- Operator),
3955
- #
3956
- # Constant
3957
- # ========
3958
- (u'⍬', Name.Constant),
3959
- #
3960
- # Quad symbol
3961
- # ===========
3962
- (u'[⎕⍞]', Name.Variable.Global),
3963
- #
3964
- # Arrows left/right
3965
- # =================
3966
- (u'[←→]', Keyword.Declaration),
3967
- #
3968
- # D-Fn
3969
- # ====
3970
- (u'[⍺⍵⍶⍹∇:]', Name.Builtin.Pseudo),
3971
- (r'[{}]', Keyword.Type),
3972
- ],
3973
- }
3974
-
3975
- class AmbientTalkLexer(RegexLexer):
3976
- """
3977
- Lexer for `AmbientTalk <https://code.google.com/p/ambienttalk>`_ source code.
3978
-
3979
- .. versionadded:: 2.0
3980
- """
3981
- name = 'AmbientTalk'
3982
- filenames = ['*.at']
3983
- aliases = ['at', 'ambienttalk', 'ambienttalk/2']
3984
- mimetypes = ['text/x-ambienttalk']
3985
-
3986
- flags = re.MULTILINE | re.DOTALL
3987
-
3988
- builtin = ['if:', 'then:', 'else:', 'when:', 'whenever:', 'discovered:',
3989
- 'disconnected:', 'reconnected:', 'takenOffline:', 'becomes:',
3990
- 'export:', 'as:', 'object:', 'actor:', 'mirror:', 'taggedAs:',
3991
- 'mirroredBy:', 'is:']
3992
- tokens = {
3993
- 'root' : [
3994
- (r'\s+', Text),
3995
- (r'//.*?\n', Comment.Single),
3996
- (r'/\*.*?\*/', Comment.Multiline),
3997
- (r'(def|deftype|import|alias|exclude)\b', Keyword),
3998
- (r"(%s)" % "|".join(builtin), Name.Builtin),
3999
- (r'(true|false|nil)\b', Keyword.Constant),
4000
- (r'(~|lobby|jlobby|/)\.', Keyword.Constant, 'namespace'),
4001
- (r'"(\\\\|\\"|[^"])*"', String),
4002
- (r'\|', Punctuation, 'arglist'),
4003
- (r'<:|[\^\*!%&<>+=,./?-]|:=', Operator),
4004
- (r"`[a-zA-Z_]\w*", String.Symbol),
4005
- (r"[a-zA-Z_]\w*:", Name.Function),
4006
- (r"[\{\}()\[\];`]", Punctuation),
4007
- (r'(self|super)\b', Name.Variable.Instance),
4008
- (r"[a-zA-Z_]\w*", Name.Variable),
4009
- (r"@[a-zA-Z_]\w*", Name.Class),
4010
- (r"@\[", Name.Class, 'annotations'),
4011
- include('numbers'),
4012
- ],
4013
- 'numbers' : [
4014
- (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
4015
- (r'\d+', Number.Integer)
4016
- ],
4017
- 'namespace': [
4018
- (r'[a-zA-Z_]\w*\.', Name.Namespace),
4019
- (r'[a-zA-Z_]\w*:', Name.Function , '#pop'),
4020
- (r'[a-zA-Z_]\w*(?!\.)', Name.Function , '#pop')
4021
- ],
4022
- 'annotations' : [
4023
- (r"(.*?)\]", Name.Class, '#pop')
4024
- ],
4025
- 'arglist' : [
4026
- (r'\|', Punctuation, '#pop'),
4027
- (r'\s*(,)\s*', Punctuation),
4028
- (r'[a-zA-Z_]\w*', Name.Variable),
4029
- ],
4030
- }
4031
-
4032
-
4033
- class PawnLexer(RegexLexer):
4034
- """
4035
- For Pawn source code
4036
- """
4037
-
4038
- name = 'Pawn'
4039
- aliases = ['pawn']
4040
- filenames = ['*.p', '*.pwn', '*.inc']
4041
- mimetypes = ['text/x-pawn']
4042
-
4043
- #: optional Comment or Whitespace
4044
- _ws = r'(?:\s|//.*?\n|/[*][\w\W]*?[*]/)+'
4045
-
4046
- tokens = {
4047
- 'root': [
4048
- # preprocessor directives: without whitespace
4049
- ('^#if\s+0', Comment.Preproc, 'if0'),
4050
- ('^#', Comment.Preproc, 'macro'),
4051
- # or with whitespace
4052
- ('^' + _ws + r'#if\s+0', Comment.Preproc, 'if0'),
4053
- ('^' + _ws + '#', Comment.Preproc, 'macro'),
4054
- (r'\n', Text),
4055
- (r'\s+', Text),
4056
- (r'\\\n', Text), # line continuation
4057
- (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single),
4058
- (r'/(\\\n)?\*[\w\W]*?\*(\\\n)?/', Comment.Multiline),
4059
- (r'[{}]', Punctuation),
4060
- (r'L?"', String, 'string'),
4061
- (r"L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char),
4062
- (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float),
4063
- (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
4064
- (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex),
4065
- (r'0[0-7]+[LlUu]*', Number.Oct),
4066
- (r'\d+[LlUu]*', Number.Integer),
4067
- (r'\*/', Error),
4068
- (r'[~!%^&*+=|?:<>/-]', Operator),
4069
- (r'[()\[\],.;]', Punctuation),
4070
- (r'(switch|case|default|const|new|static|char|continue|break|'
4071
- r'if|else|for|while|do|operator|enum|'
4072
- r'public|return|sizeof|tagof|state|goto)\b', Keyword),
4073
- (r'(bool|Float)\b', Keyword.Type),
4074
- (r'(true|false)\b', Keyword.Constant),
4075
- ('[a-zA-Z_]\w*', Name),
4076
- ],
4077
- 'string': [
4078
- (r'"', String, '#pop'),
4079
- (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
4080
- (r'[^\\"\n]+', String), # all other characters
4081
- (r'\\\n', String), # line continuation
4082
- (r'\\', String), # stray backslash
4083
- ],
4084
- 'macro': [
4085
- (r'[^/\n]+', Comment.Preproc),
4086
- (r'/\*(.|\n)*?\*/', Comment.Multiline),
4087
- (r'//.*?\n', Comment.Single, '#pop'),
4088
- (r'/', Comment.Preproc),
4089
- (r'(?<=\\)\n', Comment.Preproc),
4090
- (r'\n', Comment.Preproc, '#pop'),
4091
- ],
4092
- 'if0': [
4093
- (r'^\s*#if.*?(?<!\\)\n', Comment.Preproc, '#push'),
4094
- (r'^\s*#endif.*?(?<!\\)\n', Comment.Preproc, '#pop'),
4095
- (r'.*?\n', Comment),
4096
- ]
4097
- }
4098
-
4099
-
4100
- class VCTreeStatusLexer(RegexLexer):
4101
- """
4102
- For colorizing output of version control status commans, like "hg
4103
- status" or "svn status".
4104
-
4105
- .. versionadded:: 2.0
4106
- """
4107
- name = 'VCTreeStatus'
4108
- aliases = ['vctreestatus']
4109
- filenames = []
4110
- mimetypes = []
4111
-
4112
- tokens = {
4113
- 'root' : [
4114
- (r'^A \+ C\s+', Generic.Error),
4115
- (r'^A\s+\+?\s+', String),
4116
- (r'^M\s+', Generic.Inserted),
4117
- (r'^C\s+', Generic.Error),
4118
- (r'^D\s+', Generic.Deleted),
4119
- (r'^[\?!]\s+', Comment.Preproc),
4120
- (r' >\s+.*\n', Comment.Preproc),
4121
- (r'.*\n', Text)
4122
- ]
4123
- }
4124
-
4125
-
4126
- class RslLexer(RegexLexer):
4127
- """
4128
- `RSL <http://en.wikipedia.org/wiki/RAISE>`_ is the formal specification
4129
- language used in RAISE (Rigorous Approach to Industrial Software Engineering)
4130
- method.
4131
-
4132
- .. versionadded:: 2.0
4133
- """
4134
- name = 'RSL'
4135
- aliases = ['rsl']
4136
- filenames = ['*.rsl']
4137
- mimetypes = ['text/rsl']
4138
-
4139
- flags = re.MULTILINE | re.DOTALL
4140
-
4141
- tokens = {
4142
- 'root':[
4143
- (r'\b(Bool|Char|Int|Nat|Real|Text|Unit|abs|all|always|any|as|'
4144
- r'axiom|card|case|channel|chaos|class|devt_relation|dom|elems|'
4145
- r'else|elif|end|exists|extend|false|for|hd|hide|if|in|is|inds|'
4146
- r'initialise|int|inter|isin|len|let|local|ltl_assertion|object|'
4147
- r'of|out|post|pre|read|real|rng|scheme|skip|stop|swap|then|'
4148
- r'thoery|test_case|tl|transition_system|true|type|union|until|'
4149
- r'use|value|variable|while|with|write|~isin|-inflist|-infset|'
4150
- r'-list|-set)\b', Keyword),
4151
- (r'(variable|value)\b', Keyword.Declaration),
4152
- (r'--.*?\n', Comment),
4153
- (r'<:.*?:>', Comment),
4154
- (r'\{!.*?!\}', Comment),
4155
- (r'/\*.*?\*/', Comment),
4156
- (r'^[ \t]*([\w]+)[ \t]*:[^:]', Name.Function),
4157
- (r'(^[ \t]*)([\w]+)([ \t]*\([\w\s,]*\)[ \t]*)(is|as)',
4158
- bygroups(Text, Name.Function, Text, Keyword)),
4159
- (r'\b[A-Z]\w*\b',Keyword.Type),
4160
- (r'(true|false)\b', Keyword.Constant),
4161
- (r'".*"',String),
4162
- (r'\'.\'',String.Char),
4163
- (r'(><|->|-m->|/\\|<=|<<=|<\.|\|\||\|\^\||-~->|-~m->|\\/|>=|>>|'
4164
- r'\.>|\+\+|-\\|<->|=>|:-|~=|\*\*|<<|>>=|\+>|!!|\|=\||#)',
4165
- Operator),
4166
- (r'[0-9]+\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
4167
- (r'0x[0-9a-f]+', Number.Hex),
4168
- (r'[0-9]+', Number.Integer),
4169
- (r'.', Text),
4170
- ],
4171
- }
4172
-
4173
- def analyse_text(text):
4174
- """
4175
- Check for the most common text in the beginning of a RSL file.
4176
- """
4177
- if re.search(r'scheme\s*.*?=\s*class\s*type', text, re.I) is not None:
4178
- return 1.0
4179
- else:
4180
- return 0.01
4181
-
4182
-
4183
- class PanLexer(RegexLexer):
4184
- """
4185
- Lexer for `pan <http://github.com/quattor/pan/>`_ source files.
4186
-
4187
- Based on tcsh lexer.
4188
-
4189
- .. versionadded:: 2.0
4190
- """
4191
-
4192
- name = 'Pan'
4193
- aliases = ['pan']
4194
- filenames = ['*.pan']
4195
-
4196
- tokens = {
4197
- 'root': [
4198
- include('basic'),
4199
- (r'\(', Keyword, 'paren'),
4200
- (r'{', Keyword, 'curly'),
4201
- include('data'),
4202
- ],
4203
- 'basic': [
4204
- (r'\b(if|for|with|else|type|bind|while|valid|final|prefix|unique|'
4205
- r'object|foreach|include|template|function|variable|structure|'
4206
- r'extensible|declaration)\s*\b',
4207
- Keyword),
4208
- (r'\b(file_contents|format|index|length|match|matches|replace|'
4209
- r'splice|split|substr|to_lowercase|to_uppercase|debug|error|'
4210
- r'traceback|deprecated|base64_decode|base64_encode|digest|escape|'
4211
- r'unescape|append|create|first|nlist|key|length|list|merge|next|'
4212
- r'prepend|splice|is_boolean|is_defined|is_double|is_list|is_long|'
4213
- r'is_nlist|is_null|is_number|is_property|is_resource|is_string|'
4214
- r'to_boolean|to_double|to_long|to_string|clone|delete|exists|'
4215
- r'path_exists|if_exists|return|value)\s*\b',
4216
- Name.Builtin),
4217
- (r'#.*', Comment),
4218
- (r'\\[\w\W]', String.Escape),
4219
- (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)),
4220
- (r'[\[\]{}()=]+', Operator),
4221
- (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String),
4222
- (r';', Punctuation),
4223
- ],
4224
- 'data': [
4225
- (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double),
4226
- (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
4227
- (r'\s+', Text),
4228
- (r'[^=\s\[\]{}()$"\'`\\;#]+', Text),
4229
- (r'\d+(?= |\Z)', Number),
4230
- ],
4231
- 'curly': [
4232
- (r'}', Keyword, '#pop'),
4233
- (r':-', Keyword),
4234
- (r'\w+', Name.Variable),
4235
- (r'[^}:"\'`$]+', Punctuation),
4236
- (r':', Punctuation),
4237
- include('root'),
4238
- ],
4239
- 'paren': [
4240
- (r'\)', Keyword, '#pop'),
4241
- include('root'),
4242
- ],
4243
- }
4244
-
4245
- class RedLexer(RegexLexer):
4246
- """
4247
- A `Red-language <http://www.red-lang.org/>`_ lexer.
4248
-
4249
- .. versionadded:: 2.0
4250
- """
4251
- name = 'Red'
4252
- aliases = ['red', 'red/system']
4253
- filenames = ['*.red', '*.reds']
4254
- mimetypes = ['text/x-red', 'text/x-red-system']
4255
-
4256
- flags = re.IGNORECASE | re.MULTILINE
4257
-
4258
- escape_re = r'(?:\^\([0-9a-f]{1,4}\)*)'
4259
-
4260
- def word_callback(lexer, match):
4261
- word = match.group()
4262
-
4263
- if re.match(".*:$", word):
4264
- yield match.start(), Generic.Subheading, word
4265
- elif re.match(
4266
- r'(if|unless|either|any|all|while|until|loop|repeat|'
4267
- r'foreach|forall|func|function|does|has|switch|'
4268
- r'case|reduce|compose|get|set|print|prin|equal\?|'
4269
- r'not-equal\?|strict-equal\?|lesser\?|greater\?|lesser-or-equal\?|'
4270
- r'greater-or-equal\?|same\?|not|type\?|stats|'
4271
- r'bind|union|replace|charset|routine)$', word):
4272
- yield match.start(), Name.Builtin, word
4273
- elif re.match(
4274
- r'(make|random|reflect|to|form|mold|absolute|add|divide|multiply|negate|'
4275
- r'power|remainder|round|subtract|even\?|odd\?|and~|complement|or~|xor~|'
4276
- r'append|at|back|change|clear|copy|find|head|head\?|index\?|insert|'
4277
- r'length\?|next|pick|poke|remove|reverse|select|sort|skip|swap|tail|tail\?|'
4278
- r'take|trim|create|close|delete|modify|open|open\?|query|read|rename|'
4279
- r'update|write)$', word):
4280
- yield match.start(), Name.Function, word
4281
- elif re.match(
4282
- r'(yes|on|no|off|true|false|tab|cr|lf|newline|escape|slash|sp|space|null|'
4283
- r'none|crlf|dot|null-byte)$', word):
4284
- yield match.start(), Name.Builtin.Pseudo, word
4285
- elif re.match(
4286
- r'(#system-global|#include|#enum|#define|#either|#if|#import|#export|'
4287
- r'#switch|#default|#get-definition)$', word):
4288
- yield match.start(), Keyword.Namespace, word
4289
- elif re.match(
4290
- r'(system|halt|quit|quit-return|do|load|q|recycle|call|run|ask|parse|'
4291
- r'raise-error|return|exit|break|alias|push|pop|probe|\?\?|spec-of|body-of|'
4292
- r'quote|forever)$', word):
4293
- yield match.start(), Name.Exception, word
4294
- elif re.match(
4295
- r'(action\?|block\?|char\?|datatype\?|file\?|function\?|get-path\?|zero\?|'
4296
- r'get-word\?|integer\?|issue\?|lit-path\?|lit-word\?|logic\?|native\?|'
4297
- r'op\?|paren\?|path\?|refinement\?|set-path\?|set-word\?|string\?|unset\?|'
4298
- r'any-struct\?|none\?|word\?|any-series\?)$', word):
4299
- yield match.start(), Keyword, word
4300
- elif re.match(r'(JNICALL|stdcall|cdecl|infix)$', word):
4301
- yield match.start(), Keyword.Namespace, word
4302
- elif re.match("to-.*", word):
4303
- yield match.start(), Keyword, word
4304
- elif re.match('(\+|-|\*|/|//|\*\*|and|or|xor|=\?|=|==|===|<>|<|>|<=|>=|<<|>>|<<<|>>>|%|-\*\*)$', word):
4305
- yield match.start(), Operator, word
4306
- elif re.match(".*\!$", word):
4307
- yield match.start(), Keyword.Type, word
4308
- elif re.match("'.*", word):
4309
- yield match.start(), Name.Variable.Instance, word # lit-word
4310
- elif re.match("#.*", word):
4311
- yield match.start(), Name.Label, word # issue
4312
- elif re.match("%.*", word):
4313
- yield match.start(), Name.Decorator, word # file
4314
- elif re.match(":.*", word):
4315
- yield match.start(), Generic.Subheading, word # get-word
4316
- else:
4317
- yield match.start(), Name.Variable, word
4318
-
4319
- tokens = {
4320
- 'root': [
4321
- (r'[^R]+', Comment),
4322
- (r'Red/System\s+\[', Generic.Strong, 'script'),
4323
- (r'Red\s+\[', Generic.Strong, 'script'),
4324
- (r'R', Comment)
4325
- ],
4326
- 'script': [
4327
- (r'\s+', Text),
4328
- (r'#"', String.Char, 'char'),
4329
- (r'#{[0-9a-f\s]*}', Number.Hex),
4330
- (r'2#{', Number.Hex, 'bin2'),
4331
- (r'64#{[0-9a-z+/=\s]*}', Number.Hex),
4332
- (r'([0-9a-f]+)(h)((\s)|(?=[\[\]{}""\(\)]))',
4333
- bygroups(Number.Hex, Name.Variable, Whitespace)),
4334
- (r'"', String, 'string'),
4335
- (r'{', String, 'string2'),
4336
- (r';#+.*\n', Comment.Special),
4337
- (r';\*+.*\n', Comment.Preproc),
4338
- (r';.*\n', Comment),
4339
- (r'%"', Name.Decorator, 'stringFile'),
4340
- (r'%[^(\^{^")\s\[\]]+', Name.Decorator),
4341
- (r'[+-]?([a-z]{1,3})?\$\d+(\.\d+)?', Number.Float), # money
4342
- (r'[+-]?\d+\:\d+(\:\d+)?(\.\d+)?', String.Other), # time
4343
- (r'\d+[\-\/][0-9a-z]+[\-\/]\d+(\/\d+\:\d+((\:\d+)?'
4344
- r'([\.\d+]?([+-]?\d+:\d+)?)?)?)?', String.Other), # date
4345
- (r'\d+(\.\d+)+\.\d+', Keyword.Constant), # tuple
4346
- (r'\d+[xX]\d+', Keyword.Constant), # pair
4347
- (r'[+-]?\d+(\'\d+)?([\.,]\d*)?[eE][+-]?\d+', Number.Float),
4348
- (r'[+-]?\d+(\'\d+)?[\.,]\d*', Number.Float),
4349
- (r'[+-]?\d+(\'\d+)?', Number),
4350
- (r'[\[\]\(\)]', Generic.Strong),
4351
- (r'[a-z]+[^(\^{"\s:)]*://[^(\^{"\s)]*', Name.Decorator), # url
4352
- (r'mailto:[^(\^{"@\s)]+@[^(\^{"@\s)]+', Name.Decorator), # url
4353
- (r'[^(\^{"@\s)]+@[^(\^{"@\s)]+', Name.Decorator), # email
4354
- (r'comment\s"', Comment, 'commentString1'),
4355
- (r'comment\s{', Comment, 'commentString2'),
4356
- (r'comment\s\[', Comment, 'commentBlock'),
4357
- (r'comment\s[^(\s{\"\[]+', Comment),
4358
- (r'/[^(\^{^")\s/[\]]*', Name.Attribute),
4359
- (r'([^(\^{^")\s/[\]]+)(?=[:({"\s/\[\]])', word_callback),
4360
- (r'<[\w:.-]*>', Name.Tag),
4361
- (r'<[^(<>\s")]+', Name.Tag, 'tag'),
4362
- (r'([^(\^{^")\s]+)', Text),
4363
- ],
4364
- 'string': [
4365
- (r'[^(\^")]+', String),
4366
- (escape_re, String.Escape),
4367
- (r'[\(|\)]+', String),
4368
- (r'\^.', String.Escape),
4369
- (r'"', String, '#pop'),
4370
- ],
4371
- 'string2': [
4372
- (r'[^(\^{^})]+', String),
4373
- (escape_re, String.Escape),
4374
- (r'[\(|\)]+', String),
4375
- (r'\^.', String.Escape),
4376
- (r'{', String, '#push'),
4377
- (r'}', String, '#pop'),
4378
- ],
4379
- 'stringFile': [
4380
- (r'[^(\^")]+', Name.Decorator),
4381
- (escape_re, Name.Decorator),
4382
- (r'\^.', Name.Decorator),
4383
- (r'"', Name.Decorator, '#pop'),
4384
- ],
4385
- 'char': [
4386
- (escape_re + '"', String.Char, '#pop'),
4387
- (r'\^."', String.Char, '#pop'),
4388
- (r'."', String.Char, '#pop'),
4389
- ],
4390
- 'tag': [
4391
- (escape_re, Name.Tag),
4392
- (r'"', Name.Tag, 'tagString'),
4393
- (r'[^(<>\r\n")]+', Name.Tag),
4394
- (r'>', Name.Tag, '#pop'),
4395
- ],
4396
- 'tagString': [
4397
- (r'[^(\^")]+', Name.Tag),
4398
- (escape_re, Name.Tag),
4399
- (r'[\(|\)]+', Name.Tag),
4400
- (r'\^.', Name.Tag),
4401
- (r'"', Name.Tag, '#pop'),
4402
- ],
4403
- 'tuple': [
4404
- (r'(\d+\.)+', Keyword.Constant),
4405
- (r'\d+', Keyword.Constant, '#pop'),
4406
- ],
4407
- 'bin2': [
4408
- (r'\s+', Number.Hex),
4409
- (r'([0-1]\s*){8}', Number.Hex),
4410
- (r'}', Number.Hex, '#pop'),
4411
- ],
4412
- 'commentString1': [
4413
- (r'[^(\^")]+', Comment),
4414
- (escape_re, Comment),
4415
- (r'[\(|\)]+', Comment),
4416
- (r'\^.', Comment),
4417
- (r'"', Comment, '#pop'),
4418
- ],
4419
- 'commentString2': [
4420
- (r'[^(\^{^})]+', Comment),
4421
- (escape_re, Comment),
4422
- (r'[\(|\)]+', Comment),
4423
- (r'\^.', Comment),
4424
- (r'{', Comment, '#push'),
4425
- (r'}', Comment, '#pop'),
4426
- ],
4427
- 'commentBlock': [
4428
- (r'\[', Comment, '#push'),
4429
- (r'\]', Comment, '#pop'),
4430
- (r'"', Comment, "commentString1"),
4431
- (r'{', Comment, "commentString2"),
4432
- (r'[^(\[\]\"{)]+', Comment),
4433
- ],
4434
- }
4435
-
4436
-
4437
- class AlloyLexer(RegexLexer):
4438
- """
4439
- For `Alloy <http://alloy.mit.edu>`_ source code.
4440
- """
4441
-
4442
- name = 'Alloy'
4443
- aliases = ['alloy']
4444
- filenames = ['*.als']
4445
- mimetypes = ['text/x-alloy']
4446
-
4447
- flags = re.MULTILINE | re.DOTALL
4448
-
4449
- iden_rex = r'[a-zA-Z_][a-zA-Z0-9_\']*'
4450
- text_tuple = (r'[^\S\n]+', Text)
4451
-
4452
- tokens = {
4453
- 'sig': [
4454
- (r'(extends)\b', Keyword, '#pop'),
4455
- (iden_rex, Name),
4456
- text_tuple,
4457
- (r',', Punctuation),
4458
- (r'\{', Operator, '#pop'),
4459
- ],
4460
- 'module': [
4461
- text_tuple,
4462
- (iden_rex, Name, '#pop'),
4463
- ],
4464
- 'fun': [
4465
- text_tuple,
4466
- (r'\{', Operator, '#pop'),
4467
- (iden_rex, Name, '#pop'),
4468
- ],
4469
- 'root': [
4470
- (r'--.*?$', Comment.Single),
4471
- (r'//.*?$', Comment.Single),
4472
- (r'/\*.*?\*/', Comment.Multiline),
4473
- text_tuple,
4474
- (r'(module|open)(\s+)', bygroups(Keyword.Namespace, Text),
4475
- 'module'),
4476
- (r'(sig|enum)(\s+)', bygroups(Keyword.Declaration, Text), 'sig'),
4477
- (r'(iden|univ|none)\b', Keyword.Constant),
4478
- (r'(int|Int)\b', Keyword.Type),
4479
- (r'(this|abstract|extends|set|seq|one|lone|let)\b', Keyword),
4480
- (r'(all|some|no|sum|disj|when|else)\b', Keyword),
4481
- (r'(run|check|for|but|exactly|expect|as)\b', Keyword),
4482
- (r'(and|or|implies|iff|in)\b', Operator.Word),
4483
- (r'(fun|pred|fact|assert)(\s+)', bygroups(Keyword, Text), 'fun'),
4484
- (r'!|#|&&|\+\+|<<|>>|>=|<=>|<=|\.|->', Operator),
4485
- (r'[-+/*%=<>&!^|~\{\}\[\]\(\)\.]', Operator),
4486
- (iden_rex, Name),
4487
- (r'[:,]', Punctuation),
4488
- (r'[0-9]+', Number.Integer),
4489
- (r'"(\\\\|\\"|[^"])*"', String),
4490
- (r'\n', Text),
4491
- ]
4492
- }
14
+ TcshLexer
15
+ from pygments.lexers.robotframework import RobotFrameworkLexer
16
+ from pygments.lexers.testing import GherkinLexer
17
+ from pygments.lexers.esoteric import BrainfuckLexer, BefungeLexer, RedcodeLexer
18
+ from pygments.lexers.prolog import LogtalkLexer
19
+ from pygments.lexers.snobol import SnobolLexer
20
+ from pygments.lexers.rebol import RebolLexer
21
+ from pygments.lexers.configs import KconfigLexer, Cfengine3Lexer
22
+ from pygments.lexers.modeling import ModelicaLexer
23
+ from pygments.lexers.scripting import AppleScriptLexer, MOOCodeLexer, \
24
+ HybrisLexer
25
+ from pygments.lexers.graphics import PostScriptLexer, GnuplotLexer, \
26
+ AsymptoteLexer, PovrayLexer
27
+ from pygments.lexers.business import ABAPLexer, OpenEdgeLexer, \
28
+ GoodDataCLLexer, MaqlLexer
29
+ from pygments.lexers.automation import AutoItLexer, AutohotkeyLexer
30
+ from pygments.lexers.dsls import ProtoBufLexer, BroLexer, PuppetLexer, \
31
+ MscgenLexer, VGLLexer
32
+ from pygments.lexers.basic import CbmBasicV2Lexer
33
+ from pygments.lexers.pawn import SourcePawnLexer, PawnLexer
34
+ from pygments.lexers.ecl import ECLLexer
35
+ from pygments.lexers.urbi import UrbiscriptLexer
36
+ from pygments.lexers.smalltalk import SmalltalkLexer, NewspeakLexer
37
+ from pygments.lexers.installers import NSISLexer, RPMSpecLexer
38
+ from pygments.lexers.textedit import AwkLexer
39
+ from pygments.lexers.smv import NuSMVLexer
40
+
41
+ __all__ = []