pygments.rb-jruby 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/CHANGELOG.md +71 -0
  4. data/Gemfile +2 -0
  5. data/LICENSE +17 -0
  6. data/README.md +118 -0
  7. data/Rakefile +66 -0
  8. data/bench.rb +22 -0
  9. data/cache-lexers.rb +8 -0
  10. data/lexers +0 -0
  11. data/lib/pygments.rb +8 -0
  12. data/lib/pygments/lexer.rb +148 -0
  13. data/lib/pygments/mentos.py +351 -0
  14. data/lib/pygments/popen.rb +404 -0
  15. data/lib/pygments/version.rb +3 -0
  16. data/pygments.rb.gemspec +24 -0
  17. data/test/test_data.c +2581 -0
  18. data/test/test_data.py +514 -0
  19. data/test/test_data_generated +2582 -0
  20. data/test/test_pygments.rb +287 -0
  21. data/vendor/custom_lexers/github.py +565 -0
  22. data/vendor/pygments-main/AUTHORS +153 -0
  23. data/vendor/pygments-main/CHANGES +889 -0
  24. data/vendor/pygments-main/LICENSE +25 -0
  25. data/vendor/pygments-main/MANIFEST.in +6 -0
  26. data/vendor/pygments-main/Makefile +59 -0
  27. data/vendor/pygments-main/REVISION +1 -0
  28. data/vendor/pygments-main/TODO +15 -0
  29. data/vendor/pygments-main/docs/generate.py +472 -0
  30. data/vendor/pygments-main/docs/pygmentize.1 +94 -0
  31. data/vendor/pygments-main/docs/src/api.txt +270 -0
  32. data/vendor/pygments-main/docs/src/authors.txt +5 -0
  33. data/vendor/pygments-main/docs/src/changelog.txt +5 -0
  34. data/vendor/pygments-main/docs/src/cmdline.txt +147 -0
  35. data/vendor/pygments-main/docs/src/filterdevelopment.txt +70 -0
  36. data/vendor/pygments-main/docs/src/filters.txt +42 -0
  37. data/vendor/pygments-main/docs/src/formatterdevelopment.txt +169 -0
  38. data/vendor/pygments-main/docs/src/formatters.txt +48 -0
  39. data/vendor/pygments-main/docs/src/index.txt +69 -0
  40. data/vendor/pygments-main/docs/src/installation.txt +71 -0
  41. data/vendor/pygments-main/docs/src/integrate.txt +48 -0
  42. data/vendor/pygments-main/docs/src/java.txt +70 -0
  43. data/vendor/pygments-main/docs/src/lexerdevelopment.txt +603 -0
  44. data/vendor/pygments-main/docs/src/lexers.txt +67 -0
  45. data/vendor/pygments-main/docs/src/moinmoin.txt +39 -0
  46. data/vendor/pygments-main/docs/src/plugins.txt +93 -0
  47. data/vendor/pygments-main/docs/src/quickstart.txt +202 -0
  48. data/vendor/pygments-main/docs/src/rstdirective.txt +22 -0
  49. data/vendor/pygments-main/docs/src/styles.txt +143 -0
  50. data/vendor/pygments-main/docs/src/tokens.txt +349 -0
  51. data/vendor/pygments-main/docs/src/unicode.txt +49 -0
  52. data/vendor/pygments-main/external/autopygmentize +64 -0
  53. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +144 -0
  54. data/vendor/pygments-main/external/markdown-processor.py +67 -0
  55. data/vendor/pygments-main/external/moin-parser.py +112 -0
  56. data/vendor/pygments-main/external/pygments.bashcomp +38 -0
  57. data/vendor/pygments-main/external/rst-directive-old.py +77 -0
  58. data/vendor/pygments-main/external/rst-directive.py +83 -0
  59. data/vendor/pygments-main/ez_setup.py +276 -0
  60. data/vendor/pygments-main/pygmentize +7 -0
  61. data/vendor/pygments-main/pygments/__init__.py +91 -0
  62. data/vendor/pygments-main/pygments/cmdline.py +441 -0
  63. data/vendor/pygments-main/pygments/console.py +74 -0
  64. data/vendor/pygments-main/pygments/filter.py +74 -0
  65. data/vendor/pygments-main/pygments/filters/__init__.py +356 -0
  66. data/vendor/pygments-main/pygments/formatter.py +95 -0
  67. data/vendor/pygments-main/pygments/formatters/__init__.py +68 -0
  68. data/vendor/pygments-main/pygments/formatters/_mapping.py +92 -0
  69. data/vendor/pygments-main/pygments/formatters/bbcode.py +109 -0
  70. data/vendor/pygments-main/pygments/formatters/html.py +821 -0
  71. data/vendor/pygments-main/pygments/formatters/img.py +553 -0
  72. data/vendor/pygments-main/pygments/formatters/latex.py +378 -0
  73. data/vendor/pygments-main/pygments/formatters/other.py +115 -0
  74. data/vendor/pygments-main/pygments/formatters/rtf.py +136 -0
  75. data/vendor/pygments-main/pygments/formatters/svg.py +154 -0
  76. data/vendor/pygments-main/pygments/formatters/terminal.py +112 -0
  77. data/vendor/pygments-main/pygments/formatters/terminal256.py +222 -0
  78. data/vendor/pygments-main/pygments/lexer.py +765 -0
  79. data/vendor/pygments-main/pygments/lexers/__init__.py +240 -0
  80. data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1645 -0
  81. data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +232 -0
  82. data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +5172 -0
  83. data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +249 -0
  84. data/vendor/pygments-main/pygments/lexers/_mapping.py +354 -0
  85. data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +562 -0
  86. data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +3787 -0
  87. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +233 -0
  88. data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +557 -0
  89. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +40 -0
  90. data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +1072 -0
  91. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +360 -0
  92. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +13 -0
  93. data/vendor/pygments-main/pygments/lexers/agile.py +2290 -0
  94. data/vendor/pygments-main/pygments/lexers/asm.py +398 -0
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +3723 -0
  96. data/vendor/pygments-main/pygments/lexers/dalvik.py +104 -0
  97. data/vendor/pygments-main/pygments/lexers/dotnet.py +671 -0
  98. data/vendor/pygments-main/pygments/lexers/foxpro.py +428 -0
  99. data/vendor/pygments-main/pygments/lexers/functional.py +2731 -0
  100. data/vendor/pygments-main/pygments/lexers/github.py +565 -0
  101. data/vendor/pygments-main/pygments/lexers/hdl.py +356 -0
  102. data/vendor/pygments-main/pygments/lexers/jvm.py +1112 -0
  103. data/vendor/pygments-main/pygments/lexers/math.py +1918 -0
  104. data/vendor/pygments-main/pygments/lexers/other.py +3778 -0
  105. data/vendor/pygments-main/pygments/lexers/parsers.py +778 -0
  106. data/vendor/pygments-main/pygments/lexers/shell.py +424 -0
  107. data/vendor/pygments-main/pygments/lexers/special.py +100 -0
  108. data/vendor/pygments-main/pygments/lexers/sql.py +559 -0
  109. data/vendor/pygments-main/pygments/lexers/templates.py +1742 -0
  110. data/vendor/pygments-main/pygments/lexers/text.py +1893 -0
  111. data/vendor/pygments-main/pygments/lexers/web.py +4045 -0
  112. data/vendor/pygments-main/pygments/modeline.py +40 -0
  113. data/vendor/pygments-main/pygments/plugin.py +74 -0
  114. data/vendor/pygments-main/pygments/scanner.py +104 -0
  115. data/vendor/pygments-main/pygments/style.py +117 -0
  116. data/vendor/pygments-main/pygments/styles/__init__.py +70 -0
  117. data/vendor/pygments-main/pygments/styles/autumn.py +65 -0
  118. data/vendor/pygments-main/pygments/styles/borland.py +51 -0
  119. data/vendor/pygments-main/pygments/styles/bw.py +49 -0
  120. data/vendor/pygments-main/pygments/styles/colorful.py +81 -0
  121. data/vendor/pygments-main/pygments/styles/default.py +73 -0
  122. data/vendor/pygments-main/pygments/styles/emacs.py +72 -0
  123. data/vendor/pygments-main/pygments/styles/friendly.py +72 -0
  124. data/vendor/pygments-main/pygments/styles/fruity.py +42 -0
  125. data/vendor/pygments-main/pygments/styles/manni.py +75 -0
  126. data/vendor/pygments-main/pygments/styles/monokai.py +106 -0
  127. data/vendor/pygments-main/pygments/styles/murphy.py +80 -0
  128. data/vendor/pygments-main/pygments/styles/native.py +65 -0
  129. data/vendor/pygments-main/pygments/styles/pastie.py +75 -0
  130. data/vendor/pygments-main/pygments/styles/perldoc.py +69 -0
  131. data/vendor/pygments-main/pygments/styles/rrt.py +33 -0
  132. data/vendor/pygments-main/pygments/styles/tango.py +141 -0
  133. data/vendor/pygments-main/pygments/styles/trac.py +63 -0
  134. data/vendor/pygments-main/pygments/styles/vim.py +63 -0
  135. data/vendor/pygments-main/pygments/styles/vs.py +38 -0
  136. data/vendor/pygments-main/pygments/token.py +195 -0
  137. data/vendor/pygments-main/pygments/unistring.py +140 -0
  138. data/vendor/pygments-main/pygments/util.py +277 -0
  139. data/vendor/pygments-main/scripts/check_sources.py +242 -0
  140. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +32 -0
  141. data/vendor/pygments-main/scripts/epydoc.css +280 -0
  142. data/vendor/pygments-main/scripts/find_codetags.py +205 -0
  143. data/vendor/pygments-main/scripts/find_error.py +170 -0
  144. data/vendor/pygments-main/scripts/get_vimkw.py +43 -0
  145. data/vendor/pygments-main/scripts/pylintrc +301 -0
  146. data/vendor/pygments-main/scripts/reindent.py +291 -0
  147. data/vendor/pygments-main/scripts/vim2pygments.py +933 -0
  148. data/vendor/pygments-main/setup.cfg +7 -0
  149. data/vendor/pygments-main/setup.py +90 -0
  150. data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +37 -0
  151. data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +869 -0
  152. data/vendor/pygments-main/tests/dtds/HTML4.dcl +88 -0
  153. data/vendor/pygments-main/tests/dtds/HTML4.dtd +1092 -0
  154. data/vendor/pygments-main/tests/dtds/HTML4.soc +9 -0
  155. data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +195 -0
  156. data/vendor/pygments-main/tests/dtds/HTMLspec.ent +77 -0
  157. data/vendor/pygments-main/tests/dtds/HTMLsym.ent +241 -0
  158. data/vendor/pygments-main/tests/examplefiles/ANTLRv3.g +608 -0
  159. data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +209 -0
  160. data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +102 -0
  161. data/vendor/pygments-main/tests/examplefiles/BOM.js +1 -0
  162. data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +611 -0
  163. data/vendor/pygments-main/tests/examplefiles/Config.in.cache +1973 -0
  164. data/vendor/pygments-main/tests/examplefiles/Constants.mo +158 -0
  165. data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +411 -0
  166. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +578 -0
  167. data/vendor/pygments-main/tests/examplefiles/Errors.scala +18 -0
  168. data/vendor/pygments-main/tests/examplefiles/File.hy +174 -0
  169. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +66 -0
  170. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +104 -0
  171. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +671 -0
  172. data/vendor/pygments-main/tests/examplefiles/Intro.java +1660 -0
  173. data/vendor/pygments-main/tests/examplefiles/Makefile +1131 -0
  174. data/vendor/pygments-main/tests/examplefiles/Object.st +4394 -0
  175. data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +584 -0
  176. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +23 -0
  177. data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +378 -0
  178. data/vendor/pygments-main/tests/examplefiles/Sorting.mod +470 -0
  179. data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +382 -0
  180. data/vendor/pygments-main/tests/examplefiles/addressbook.proto +30 -0
  181. data/vendor/pygments-main/tests/examplefiles/antlr_throws +1 -0
  182. data/vendor/pygments-main/tests/examplefiles/apache2.conf +393 -0
  183. data/vendor/pygments-main/tests/examplefiles/as3_test.as +143 -0
  184. data/vendor/pygments-main/tests/examplefiles/as3_test2.as +46 -0
  185. data/vendor/pygments-main/tests/examplefiles/as3_test3.as +3 -0
  186. data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +27 -0
  187. data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +25 -0
  188. data/vendor/pygments-main/tests/examplefiles/badcase.java +2 -0
  189. data/vendor/pygments-main/tests/examplefiles/batchfile.bat +49 -0
  190. data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +308 -0
  191. data/vendor/pygments-main/tests/examplefiles/boot-9.scm +1557 -0
  192. data/vendor/pygments-main/tests/examplefiles/ca65_example +284 -0
  193. data/vendor/pygments-main/tests/examplefiles/cbmbas_example +9 -0
  194. data/vendor/pygments-main/tests/examplefiles/cells.ps +515 -0
  195. data/vendor/pygments-main/tests/examplefiles/ceval.c +2604 -0
  196. data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +13 -0
  197. data/vendor/pygments-main/tests/examplefiles/classes.dylan +125 -0
  198. data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +10 -0
  199. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +447 -0
  200. data/vendor/pygments-main/tests/examplefiles/database.pytb +20 -0
  201. data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +2461 -0
  202. data/vendor/pygments-main/tests/examplefiles/demo.ahk +181 -0
  203. data/vendor/pygments-main/tests/examplefiles/demo.cfm +38 -0
  204. data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +68 -0
  205. data/vendor/pygments-main/tests/examplefiles/dwarf.cw +17 -0
  206. data/vendor/pygments-main/tests/examplefiles/erl_session +10 -0
  207. data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +1 -0
  208. data/vendor/pygments-main/tests/examplefiles/evil_regex.js +48 -0
  209. data/vendor/pygments-main/tests/examplefiles/example.Rd +78 -0
  210. data/vendor/pygments-main/tests/examplefiles/example.bug +54 -0
  211. data/vendor/pygments-main/tests/examplefiles/example.c +2080 -0
  212. data/vendor/pygments-main/tests/examplefiles/example.ceylon +52 -0
  213. data/vendor/pygments-main/tests/examplefiles/example.clay +33 -0
  214. data/vendor/pygments-main/tests/examplefiles/example.cls +15 -0
  215. data/vendor/pygments-main/tests/examplefiles/example.cob +3556 -0
  216. data/vendor/pygments-main/tests/examplefiles/example.cpp +2363 -0
  217. data/vendor/pygments-main/tests/examplefiles/example.gs +106 -0
  218. data/vendor/pygments-main/tests/examplefiles/example.gst +7 -0
  219. data/vendor/pygments-main/tests/examplefiles/example.hx +142 -0
  220. data/vendor/pygments-main/tests/examplefiles/example.jag +48 -0
  221. data/vendor/pygments-main/tests/examplefiles/example.kt +47 -0
  222. data/vendor/pygments-main/tests/examplefiles/example.lagda +19 -0
  223. data/vendor/pygments-main/tests/examplefiles/example.lua +250 -0
  224. data/vendor/pygments-main/tests/examplefiles/example.monkey +152 -0
  225. data/vendor/pygments-main/tests/examplefiles/example.moo +26 -0
  226. data/vendor/pygments-main/tests/examplefiles/example.moon +629 -0
  227. data/vendor/pygments-main/tests/examplefiles/example.msc +43 -0
  228. data/vendor/pygments-main/tests/examplefiles/example.nim +1010 -0
  229. data/vendor/pygments-main/tests/examplefiles/example.ns2 +69 -0
  230. data/vendor/pygments-main/tests/examplefiles/example.p +34 -0
  231. data/vendor/pygments-main/tests/examplefiles/example.pas +2708 -0
  232. data/vendor/pygments-main/tests/examplefiles/example.prg +161 -0
  233. data/vendor/pygments-main/tests/examplefiles/example.rb +1852 -0
  234. data/vendor/pygments-main/tests/examplefiles/example.reg +19 -0
  235. data/vendor/pygments-main/tests/examplefiles/example.rexx +50 -0
  236. data/vendor/pygments-main/tests/examplefiles/example.rhtml +561 -0
  237. data/vendor/pygments-main/tests/examplefiles/example.rkt +95 -0
  238. data/vendor/pygments-main/tests/examplefiles/example.rpf +4 -0
  239. data/vendor/pygments-main/tests/examplefiles/example.sh-session +19 -0
  240. data/vendor/pygments-main/tests/examplefiles/example.shell-session +45 -0
  241. data/vendor/pygments-main/tests/examplefiles/example.sml +156 -0
  242. data/vendor/pygments-main/tests/examplefiles/example.snobol +15 -0
  243. data/vendor/pygments-main/tests/examplefiles/example.stan +108 -0
  244. data/vendor/pygments-main/tests/examplefiles/example.tea +34 -0
  245. data/vendor/pygments-main/tests/examplefiles/example.ts +28 -0
  246. data/vendor/pygments-main/tests/examplefiles/example.u +548 -0
  247. data/vendor/pygments-main/tests/examplefiles/example.weechatlog +9 -0
  248. data/vendor/pygments-main/tests/examplefiles/example.xhtml +376 -0
  249. data/vendor/pygments-main/tests/examplefiles/example.xtend +34 -0
  250. data/vendor/pygments-main/tests/examplefiles/example.yaml +302 -0
  251. data/vendor/pygments-main/tests/examplefiles/example2.aspx +29 -0
  252. data/vendor/pygments-main/tests/examplefiles/example2.msc +79 -0
  253. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +363 -0
  254. data/vendor/pygments-main/tests/examplefiles/example_file.fy +128 -0
  255. data/vendor/pygments-main/tests/examplefiles/firefox.mak +586 -0
  256. data/vendor/pygments-main/tests/examplefiles/flipflop.sv +19 -0
  257. data/vendor/pygments-main/tests/examplefiles/foo.sce +6 -0
  258. data/vendor/pygments-main/tests/examplefiles/format.ml +1213 -0
  259. data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +77 -0
  260. data/vendor/pygments-main/tests/examplefiles/function.mu +1 -0
  261. data/vendor/pygments-main/tests/examplefiles/functional.rst +1472 -0
  262. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +133 -0
  263. data/vendor/pygments-main/tests/examplefiles/genclass.clj +510 -0
  264. data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +193 -0
  265. data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +33 -0
  266. data/vendor/pygments-main/tests/examplefiles/glsl.frag +7 -0
  267. data/vendor/pygments-main/tests/examplefiles/glsl.vert +13 -0
  268. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +22 -0
  269. data/vendor/pygments-main/tests/examplefiles/hello.smali +40 -0
  270. data/vendor/pygments-main/tests/examplefiles/hello.sp +9 -0
  271. data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +1 -0
  272. data/vendor/pygments-main/tests/examplefiles/http_request_example +15 -0
  273. data/vendor/pygments-main/tests/examplefiles/http_response_example +29 -0
  274. data/vendor/pygments-main/tests/examplefiles/import.hs +4 -0
  275. data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +71 -0
  276. data/vendor/pygments-main/tests/examplefiles/intro.ik +24 -0
  277. data/vendor/pygments-main/tests/examplefiles/ints.php +10 -0
  278. data/vendor/pygments-main/tests/examplefiles/intsyn.fun +675 -0
  279. data/vendor/pygments-main/tests/examplefiles/intsyn.sig +286 -0
  280. data/vendor/pygments-main/tests/examplefiles/irb_heredoc +8 -0
  281. data/vendor/pygments-main/tests/examplefiles/irc.lsp +214 -0
  282. data/vendor/pygments-main/tests/examplefiles/java.properties +16 -0
  283. data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +28 -0
  284. data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +45 -0
  285. data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +713 -0
  286. data/vendor/pygments-main/tests/examplefiles/json.lasso +301 -0
  287. data/vendor/pygments-main/tests/examplefiles/json.lasso9 +213 -0
  288. data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +13 -0
  289. data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +47 -0
  290. data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +41 -0
  291. data/vendor/pygments-main/tests/examplefiles/logos_example.xm +28 -0
  292. data/vendor/pygments-main/tests/examplefiles/ltmain.sh +2849 -0
  293. data/vendor/pygments-main/tests/examplefiles/main.cmake +42 -0
  294. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +679 -0
  295. data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +3 -0
  296. data/vendor/pygments-main/tests/examplefiles/matlab_sample +30 -0
  297. data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +37 -0
  298. data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +455 -0
  299. data/vendor/pygments-main/tests/examplefiles/mg_sample.pro +73 -0
  300. data/vendor/pygments-main/tests/examplefiles/minehunt.qml +112 -0
  301. data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +4 -0
  302. data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +340 -0
  303. data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +38 -0
  304. data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +95 -0
  305. data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +96 -0
  306. data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +30 -0
  307. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +87 -0
  308. data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +118 -0
  309. data/vendor/pygments-main/tests/examplefiles/numbers.c +12 -0
  310. data/vendor/pygments-main/tests/examplefiles/objc_example.m +32 -0
  311. data/vendor/pygments-main/tests/examplefiles/objc_example2.m +24 -0
  312. data/vendor/pygments-main/tests/examplefiles/perl_misc +62 -0
  313. data/vendor/pygments-main/tests/examplefiles/perl_perl5db +998 -0
  314. data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +120 -0
  315. data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +856 -0
  316. data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +163 -0
  317. data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +567 -0
  318. data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +1223 -0
  319. data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +47 -0
  320. data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +10 -0
  321. data/vendor/pygments-main/tests/examplefiles/psql_session.txt +122 -0
  322. data/vendor/pygments-main/tests/examplefiles/py3_test.txt +2 -0
  323. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +4 -0
  324. data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +14 -0
  325. data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +2 -0
  326. data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +4 -0
  327. data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +234 -0
  328. data/vendor/pygments-main/tests/examplefiles/qsort.prolog +13 -0
  329. data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +38 -0
  330. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +280 -0
  331. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +2 -0
  332. data/vendor/pygments-main/tests/examplefiles/regex.js +22 -0
  333. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +427 -0
  334. data/vendor/pygments-main/tests/examplefiles/robotframework.txt +39 -0
  335. data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +11 -0
  336. data/vendor/pygments-main/tests/examplefiles/rust_example.rs +233 -0
  337. data/vendor/pygments-main/tests/examplefiles/scilab.sci +30 -0
  338. data/vendor/pygments-main/tests/examplefiles/session.dylan-console +9 -0
  339. data/vendor/pygments-main/tests/examplefiles/sibling.prolog +19 -0
  340. data/vendor/pygments-main/tests/examplefiles/simple.md +747 -0
  341. data/vendor/pygments-main/tests/examplefiles/smarty_example.html +209 -0
  342. data/vendor/pygments-main/tests/examplefiles/source.lgt +343 -0
  343. data/vendor/pygments-main/tests/examplefiles/sources.list +62 -0
  344. data/vendor/pygments-main/tests/examplefiles/sphere.pov +18 -0
  345. data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +27 -0
  346. data/vendor/pygments-main/tests/examplefiles/squid.conf +30 -0
  347. data/vendor/pygments-main/tests/examplefiles/string.jl +1031 -0
  348. data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +21 -0
  349. data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +3 -0
  350. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +1329 -0
  351. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +225 -0
  352. data/vendor/pygments-main/tests/examplefiles/test.R +153 -0
  353. data/vendor/pygments-main/tests/examplefiles/test.adb +211 -0
  354. data/vendor/pygments-main/tests/examplefiles/test.agda +102 -0
  355. data/vendor/pygments-main/tests/examplefiles/test.asy +131 -0
  356. data/vendor/pygments-main/tests/examplefiles/test.awk +121 -0
  357. data/vendor/pygments-main/tests/examplefiles/test.bas +29 -0
  358. data/vendor/pygments-main/tests/examplefiles/test.bb +95 -0
  359. data/vendor/pygments-main/tests/examplefiles/test.bmx +145 -0
  360. data/vendor/pygments-main/tests/examplefiles/test.boo +39 -0
  361. data/vendor/pygments-main/tests/examplefiles/test.bro +250 -0
  362. data/vendor/pygments-main/tests/examplefiles/test.cs +374 -0
  363. data/vendor/pygments-main/tests/examplefiles/test.css +54 -0
  364. data/vendor/pygments-main/tests/examplefiles/test.cu +36 -0
  365. data/vendor/pygments-main/tests/examplefiles/test.d +135 -0
  366. data/vendor/pygments-main/tests/examplefiles/test.dart +23 -0
  367. data/vendor/pygments-main/tests/examplefiles/test.dtd +89 -0
  368. data/vendor/pygments-main/tests/examplefiles/test.ebnf +31 -0
  369. data/vendor/pygments-main/tests/examplefiles/test.ec +605 -0
  370. data/vendor/pygments-main/tests/examplefiles/test.ecl +58 -0
  371. data/vendor/pygments-main/tests/examplefiles/test.eh +315 -0
  372. data/vendor/pygments-main/tests/examplefiles/test.erl +169 -0
  373. data/vendor/pygments-main/tests/examplefiles/test.evoque +33 -0
  374. data/vendor/pygments-main/tests/examplefiles/test.fan +818 -0
  375. data/vendor/pygments-main/tests/examplefiles/test.flx +57 -0
  376. data/vendor/pygments-main/tests/examplefiles/test.gdc +13 -0
  377. data/vendor/pygments-main/tests/examplefiles/test.groovy +97 -0
  378. data/vendor/pygments-main/tests/examplefiles/test.html +339 -0
  379. data/vendor/pygments-main/tests/examplefiles/test.ini +10 -0
  380. data/vendor/pygments-main/tests/examplefiles/test.java +653 -0
  381. data/vendor/pygments-main/tests/examplefiles/test.jsp +24 -0
  382. data/vendor/pygments-main/tests/examplefiles/test.maql +45 -0
  383. data/vendor/pygments-main/tests/examplefiles/test.mod +374 -0
  384. data/vendor/pygments-main/tests/examplefiles/test.moo +51 -0
  385. data/vendor/pygments-main/tests/examplefiles/test.myt +166 -0
  386. data/vendor/pygments-main/tests/examplefiles/test.nim +93 -0
  387. data/vendor/pygments-main/tests/examplefiles/test.opa +10 -0
  388. data/vendor/pygments-main/tests/examplefiles/test.p6 +252 -0
  389. data/vendor/pygments-main/tests/examplefiles/test.pas +743 -0
  390. data/vendor/pygments-main/tests/examplefiles/test.php +505 -0
  391. data/vendor/pygments-main/tests/examplefiles/test.plot +333 -0
  392. data/vendor/pygments-main/tests/examplefiles/test.ps1 +108 -0
  393. data/vendor/pygments-main/tests/examplefiles/test.pypylog +1839 -0
  394. data/vendor/pygments-main/tests/examplefiles/test.r3 +94 -0
  395. data/vendor/pygments-main/tests/examplefiles/test.rb +177 -0
  396. data/vendor/pygments-main/tests/examplefiles/test.rhtml +43 -0
  397. data/vendor/pygments-main/tests/examplefiles/test.scaml +8 -0
  398. data/vendor/pygments-main/tests/examplefiles/test.ssp +12 -0
  399. data/vendor/pygments-main/tests/examplefiles/test.tcsh +830 -0
  400. data/vendor/pygments-main/tests/examplefiles/test.vb +407 -0
  401. data/vendor/pygments-main/tests/examplefiles/test.vhdl +161 -0
  402. data/vendor/pygments-main/tests/examplefiles/test.xqy +138 -0
  403. data/vendor/pygments-main/tests/examplefiles/test.xsl +23 -0
  404. data/vendor/pygments-main/tests/examplefiles/test2.pypylog +120 -0
  405. data/vendor/pygments-main/tests/examplefiles/truncated.pytb +15 -0
  406. data/vendor/pygments-main/tests/examplefiles/type.lisp +1218 -0
  407. data/vendor/pygments-main/tests/examplefiles/underscore.coffee +603 -0
  408. data/vendor/pygments-main/tests/examplefiles/unicode.applescript +5 -0
  409. data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +11 -0
  410. data/vendor/pygments-main/tests/examplefiles/unix-io.lid +37 -0
  411. data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +3 -0
  412. data/vendor/pygments-main/tests/examplefiles/while.pov +13 -0
  413. data/vendor/pygments-main/tests/examplefiles/wiki.factor +384 -0
  414. data/vendor/pygments-main/tests/examplefiles/xml_example +1897 -0
  415. data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +798 -0
  416. data/vendor/pygments-main/tests/old_run.py +138 -0
  417. data/vendor/pygments-main/tests/run.py +49 -0
  418. data/vendor/pygments-main/tests/support.py +15 -0
  419. data/vendor/pygments-main/tests/support/tags +36 -0
  420. data/vendor/pygments-main/tests/test_basic_api.py +295 -0
  421. data/vendor/pygments-main/tests/test_clexer.py +31 -0
  422. data/vendor/pygments-main/tests/test_cmdline.py +105 -0
  423. data/vendor/pygments-main/tests/test_examplefiles.py +99 -0
  424. data/vendor/pygments-main/tests/test_html_formatter.py +178 -0
  425. data/vendor/pygments-main/tests/test_latex_formatter.py +55 -0
  426. data/vendor/pygments-main/tests/test_lexers_other.py +68 -0
  427. data/vendor/pygments-main/tests/test_perllexer.py +137 -0
  428. data/vendor/pygments-main/tests/test_regexlexer.py +47 -0
  429. data/vendor/pygments-main/tests/test_token.py +46 -0
  430. data/vendor/pygments-main/tests/test_using_api.py +40 -0
  431. data/vendor/pygments-main/tests/test_util.py +135 -0
  432. data/vendor/simplejson/.gitignore +10 -0
  433. data/vendor/simplejson/.travis.yml +5 -0
  434. data/vendor/simplejson/CHANGES.txt +291 -0
  435. data/vendor/simplejson/LICENSE.txt +19 -0
  436. data/vendor/simplejson/MANIFEST.in +5 -0
  437. data/vendor/simplejson/README.rst +19 -0
  438. data/vendor/simplejson/conf.py +179 -0
  439. data/vendor/simplejson/index.rst +628 -0
  440. data/vendor/simplejson/scripts/make_docs.py +18 -0
  441. data/vendor/simplejson/setup.py +104 -0
  442. data/vendor/simplejson/simplejson/__init__.py +510 -0
  443. data/vendor/simplejson/simplejson/_speedups.c +2745 -0
  444. data/vendor/simplejson/simplejson/decoder.py +425 -0
  445. data/vendor/simplejson/simplejson/encoder.py +567 -0
  446. data/vendor/simplejson/simplejson/ordered_dict.py +119 -0
  447. data/vendor/simplejson/simplejson/scanner.py +77 -0
  448. data/vendor/simplejson/simplejson/tests/__init__.py +67 -0
  449. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +55 -0
  450. data/vendor/simplejson/simplejson/tests/test_check_circular.py +30 -0
  451. data/vendor/simplejson/simplejson/tests/test_decimal.py +66 -0
  452. data/vendor/simplejson/simplejson/tests/test_decode.py +83 -0
  453. data/vendor/simplejson/simplejson/tests/test_default.py +9 -0
  454. data/vendor/simplejson/simplejson/tests/test_dump.py +67 -0
  455. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +46 -0
  456. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +32 -0
  457. data/vendor/simplejson/simplejson/tests/test_errors.py +34 -0
  458. data/vendor/simplejson/simplejson/tests/test_fail.py +91 -0
  459. data/vendor/simplejson/simplejson/tests/test_float.py +19 -0
  460. data/vendor/simplejson/simplejson/tests/test_indent.py +86 -0
  461. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +20 -0
  462. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +121 -0
  463. data/vendor/simplejson/simplejson/tests/test_pass1.py +76 -0
  464. data/vendor/simplejson/simplejson/tests/test_pass2.py +14 -0
  465. data/vendor/simplejson/simplejson/tests/test_pass3.py +20 -0
  466. data/vendor/simplejson/simplejson/tests/test_recursion.py +67 -0
  467. data/vendor/simplejson/simplejson/tests/test_scanstring.py +117 -0
  468. data/vendor/simplejson/simplejson/tests/test_separators.py +42 -0
  469. data/vendor/simplejson/simplejson/tests/test_speedups.py +20 -0
  470. data/vendor/simplejson/simplejson/tests/test_tuple.py +49 -0
  471. data/vendor/simplejson/simplejson/tests/test_unicode.py +109 -0
  472. data/vendor/simplejson/simplejson/tool.py +39 -0
  473. metadata +557 -0
@@ -0,0 +1,778 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.parsers
4
+ ~~~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for parser generators.
7
+
8
+ :copyright: Copyright 2006-2013 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ import re
13
+
14
+ from pygments.lexer import RegexLexer, DelegatingLexer, \
15
+ include, bygroups, using
16
+ from pygments.token import Punctuation, Other, Text, Comment, Operator, \
17
+ Keyword, Name, String, Number, Whitespace
18
+ from pygments.lexers.compiled import JavaLexer, CLexer, CppLexer, \
19
+ ObjectiveCLexer, DLexer
20
+ from pygments.lexers.dotnet import CSharpLexer
21
+ from pygments.lexers.agile import RubyLexer, PythonLexer, PerlLexer
22
+ from pygments.lexers.web import ActionScriptLexer
23
+
24
+
25
+ __all__ = ['RagelLexer', 'RagelEmbeddedLexer', 'RagelCLexer', 'RagelDLexer',
26
+ 'RagelCppLexer', 'RagelObjectiveCLexer', 'RagelRubyLexer',
27
+ 'RagelJavaLexer', 'AntlrLexer', 'AntlrPythonLexer',
28
+ 'AntlrPerlLexer', 'AntlrRubyLexer', 'AntlrCppLexer',
29
+ #'AntlrCLexer',
30
+ 'AntlrCSharpLexer', 'AntlrObjectiveCLexer',
31
+ 'AntlrJavaLexer', "AntlrActionScriptLexer",
32
+ 'TreetopLexer']
33
+
34
+
35
+ class RagelLexer(RegexLexer):
36
+ """
37
+ A pure `Ragel <http://www.complang.org/ragel/>`_ lexer. Use this for
38
+ fragments of Ragel. For ``.rl`` files, use RagelEmbeddedLexer instead
39
+ (or one of the language-specific subclasses).
40
+
41
+ *New in Pygments 1.1.*
42
+ """
43
+
44
+ name = 'Ragel'
45
+ aliases = ['ragel']
46
+ filenames = []
47
+
48
+ tokens = {
49
+ 'whitespace': [
50
+ (r'\s+', Whitespace)
51
+ ],
52
+ 'comments': [
53
+ (r'\#.*$', Comment),
54
+ ],
55
+ 'keywords': [
56
+ (r'(access|action|alphtype)\b', Keyword),
57
+ (r'(getkey|write|machine|include)\b', Keyword),
58
+ (r'(any|ascii|extend|alpha|digit|alnum|lower|upper)\b', Keyword),
59
+ (r'(xdigit|cntrl|graph|print|punct|space|zlen|empty)\b', Keyword)
60
+ ],
61
+ 'numbers': [
62
+ (r'0x[0-9A-Fa-f]+', Number.Hex),
63
+ (r'[+-]?[0-9]+', Number.Integer),
64
+ ],
65
+ 'literals': [
66
+ (r'"(\\\\|\\"|[^"])*"', String), # double quote string
67
+ (r"'(\\\\|\\'|[^'])*'", String), # single quote string
68
+ (r'\[(\\\\|\\\]|[^\]])*\]', String), # square bracket literals
69
+ (r'/(?!\*)(\\\\|\\/|[^/])*/', String.Regex), # regular expressions
70
+ ],
71
+ 'identifiers': [
72
+ (r'[a-zA-Z_][a-zA-Z_0-9]*', Name.Variable),
73
+ ],
74
+ 'operators': [
75
+ (r',', Operator), # Join
76
+ (r'\||&|--?', Operator), # Union, Intersection and Subtraction
77
+ (r'\.|<:|:>>?', Operator), # Concatention
78
+ (r':', Operator), # Label
79
+ (r'->', Operator), # Epsilon Transition
80
+ (r'(>|\$|%|<|@|<>)(/|eof\b)', Operator), # EOF Actions
81
+ (r'(>|\$|%|<|@|<>)(!|err\b)', Operator), # Global Error Actions
82
+ (r'(>|\$|%|<|@|<>)(\^|lerr\b)', Operator), # Local Error Actions
83
+ (r'(>|\$|%|<|@|<>)(~|to\b)', Operator), # To-State Actions
84
+ (r'(>|\$|%|<|@|<>)(\*|from\b)', Operator), # From-State Actions
85
+ (r'>|@|\$|%', Operator), # Transition Actions and Priorities
86
+ (r'\*|\?|\+|{[0-9]*,[0-9]*}', Operator), # Repetition
87
+ (r'!|\^', Operator), # Negation
88
+ (r'\(|\)', Operator), # Grouping
89
+ ],
90
+ 'root': [
91
+ include('literals'),
92
+ include('whitespace'),
93
+ include('comments'),
94
+ include('keywords'),
95
+ include('numbers'),
96
+ include('identifiers'),
97
+ include('operators'),
98
+ (r'{', Punctuation, 'host'),
99
+ (r'=', Operator),
100
+ (r';', Punctuation),
101
+ ],
102
+ 'host': [
103
+ (r'(' + r'|'.join(( # keep host code in largest possible chunks
104
+ r'[^{}\'"/#]+', # exclude unsafe characters
105
+ r'[^\\][\\][{}]', # allow escaped { or }
106
+
107
+ # strings and comments may safely contain unsafe characters
108
+ r'"(\\\\|\\"|[^"])*"', # double quote string
109
+ r"'(\\\\|\\'|[^'])*'", # single quote string
110
+ r'//.*$\n?', # single line comment
111
+ r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
112
+ r'\#.*$\n?', # ruby comment
113
+
114
+ # regular expression: There's no reason for it to start
115
+ # with a * and this stops confusion with comments.
116
+ r'/(?!\*)(\\\\|\\/|[^/])*/',
117
+
118
+ # / is safe now that we've handled regex and javadoc comments
119
+ r'/',
120
+ )) + r')+', Other),
121
+
122
+ (r'{', Punctuation, '#push'),
123
+ (r'}', Punctuation, '#pop'),
124
+ ],
125
+ }
126
+
127
+
128
+ class RagelEmbeddedLexer(RegexLexer):
129
+ """
130
+ A lexer for `Ragel`_ embedded in a host language file.
131
+
132
+ This will only highlight Ragel statements. If you want host language
133
+ highlighting then call the language-specific Ragel lexer.
134
+
135
+ *New in Pygments 1.1.*
136
+ """
137
+
138
+ name = 'Embedded Ragel'
139
+ aliases = ['ragel-em']
140
+ filenames = ['*.rl']
141
+
142
+ tokens = {
143
+ 'root': [
144
+ (r'(' + r'|'.join(( # keep host code in largest possible chunks
145
+ r'[^%\'"/#]+', # exclude unsafe characters
146
+ r'%(?=[^%]|$)', # a single % sign is okay, just not 2 of them
147
+
148
+ # strings and comments may safely contain unsafe characters
149
+ r'"(\\\\|\\"|[^"])*"', # double quote string
150
+ r"'(\\\\|\\'|[^'])*'", # single quote string
151
+ r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
152
+ r'//.*$\n?', # single line comment
153
+ r'\#.*$\n?', # ruby/ragel comment
154
+ r'/(?!\*)(\\\\|\\/|[^/])*/', # regular expression
155
+
156
+ # / is safe now that we've handled regex and javadoc comments
157
+ r'/',
158
+ )) + r')+', Other),
159
+
160
+ # Single Line FSM.
161
+ # Please don't put a quoted newline in a single line FSM.
162
+ # That's just mean. It will break this.
163
+ (r'(%%)(?![{%])(.*)($|;)(\n?)', bygroups(Punctuation,
164
+ using(RagelLexer),
165
+ Punctuation, Text)),
166
+
167
+ # Multi Line FSM.
168
+ (r'(%%%%|%%){', Punctuation, 'multi-line-fsm'),
169
+ ],
170
+ 'multi-line-fsm': [
171
+ (r'(' + r'|'.join(( # keep ragel code in largest possible chunks.
172
+ r'(' + r'|'.join((
173
+ r'[^}\'"\[/#]', # exclude unsafe characters
174
+ r'}(?=[^%]|$)', # } is okay as long as it's not followed by %
175
+ r'}%(?=[^%]|$)', # ...well, one %'s okay, just not two...
176
+ r'[^\\][\\][{}]', # ...and } is okay if it's escaped
177
+
178
+ # allow / if it's preceded with one of these symbols
179
+ # (ragel EOF actions)
180
+ r'(>|\$|%|<|@|<>)/',
181
+
182
+ # specifically allow regex followed immediately by *
183
+ # so it doesn't get mistaken for a comment
184
+ r'/(?!\*)(\\\\|\\/|[^/])*/\*',
185
+
186
+ # allow / as long as it's not followed by another / or by a *
187
+ r'/(?=[^/\*]|$)',
188
+
189
+ # We want to match as many of these as we can in one block.
190
+ # Not sure if we need the + sign here,
191
+ # does it help performance?
192
+ )) + r')+',
193
+
194
+ # strings and comments may safely contain unsafe characters
195
+ r'"(\\\\|\\"|[^"])*"', # double quote string
196
+ r"'(\\\\|\\'|[^'])*'", # single quote string
197
+ r"\[(\\\\|\\\]|[^\]])*\]", # square bracket literal
198
+ r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
199
+ r'//.*$\n?', # single line comment
200
+ r'\#.*$\n?', # ruby/ragel comment
201
+ )) + r')+', using(RagelLexer)),
202
+
203
+ (r'}%%', Punctuation, '#pop'),
204
+ ]
205
+ }
206
+
207
+ def analyse_text(text):
208
+ return '@LANG: indep' in text or 0.1
209
+
210
+
211
+ class RagelRubyLexer(DelegatingLexer):
212
+ """
213
+ A lexer for `Ragel`_ in a Ruby host file.
214
+
215
+ *New in Pygments 1.1.*
216
+ """
217
+
218
+ name = 'Ragel in Ruby Host'
219
+ aliases = ['ragel-ruby', 'ragel-rb']
220
+ filenames = ['*.rl']
221
+
222
+ def __init__(self, **options):
223
+ super(RagelRubyLexer, self).__init__(RubyLexer, RagelEmbeddedLexer,
224
+ **options)
225
+
226
+ def analyse_text(text):
227
+ return '@LANG: ruby' in text
228
+
229
+
230
+ class RagelCLexer(DelegatingLexer):
231
+ """
232
+ A lexer for `Ragel`_ in a C host file.
233
+
234
+ *New in Pygments 1.1.*
235
+ """
236
+
237
+ name = 'Ragel in C Host'
238
+ aliases = ['ragel-c']
239
+ filenames = ['*.rl']
240
+
241
+ def __init__(self, **options):
242
+ super(RagelCLexer, self).__init__(CLexer, RagelEmbeddedLexer,
243
+ **options)
244
+
245
+ def analyse_text(text):
246
+ return '@LANG: c' in text
247
+
248
+
249
+ class RagelDLexer(DelegatingLexer):
250
+ """
251
+ A lexer for `Ragel`_ in a D host file.
252
+
253
+ *New in Pygments 1.1.*
254
+ """
255
+
256
+ name = 'Ragel in D Host'
257
+ aliases = ['ragel-d']
258
+ filenames = ['*.rl']
259
+
260
+ def __init__(self, **options):
261
+ super(RagelDLexer, self).__init__(DLexer, RagelEmbeddedLexer, **options)
262
+
263
+ def analyse_text(text):
264
+ return '@LANG: d' in text
265
+
266
+
267
+ class RagelCppLexer(DelegatingLexer):
268
+ """
269
+ A lexer for `Ragel`_ in a CPP host file.
270
+
271
+ *New in Pygments 1.1.*
272
+ """
273
+
274
+ name = 'Ragel in CPP Host'
275
+ aliases = ['ragel-cpp']
276
+ filenames = ['*.rl']
277
+
278
+ def __init__(self, **options):
279
+ super(RagelCppLexer, self).__init__(CppLexer, RagelEmbeddedLexer, **options)
280
+
281
+ def analyse_text(text):
282
+ return '@LANG: c++' in text
283
+
284
+
285
+ class RagelObjectiveCLexer(DelegatingLexer):
286
+ """
287
+ A lexer for `Ragel`_ in an Objective C host file.
288
+
289
+ *New in Pygments 1.1.*
290
+ """
291
+
292
+ name = 'Ragel in Objective C Host'
293
+ aliases = ['ragel-objc']
294
+ filenames = ['*.rl']
295
+
296
+ def __init__(self, **options):
297
+ super(RagelObjectiveCLexer, self).__init__(ObjectiveCLexer,
298
+ RagelEmbeddedLexer,
299
+ **options)
300
+
301
+ def analyse_text(text):
302
+ return '@LANG: objc' in text
303
+
304
+
305
+ class RagelJavaLexer(DelegatingLexer):
306
+ """
307
+ A lexer for `Ragel`_ in a Java host file.
308
+
309
+ *New in Pygments 1.1.*
310
+ """
311
+
312
+ name = 'Ragel in Java Host'
313
+ aliases = ['ragel-java']
314
+ filenames = ['*.rl']
315
+
316
+ def __init__(self, **options):
317
+ super(RagelJavaLexer, self).__init__(JavaLexer, RagelEmbeddedLexer,
318
+ **options)
319
+
320
+ def analyse_text(text):
321
+ return '@LANG: java' in text
322
+
323
+
324
+ class AntlrLexer(RegexLexer):
325
+ """
326
+ Generic `ANTLR`_ Lexer.
327
+ Should not be called directly, instead
328
+ use DelegatingLexer for your target language.
329
+
330
+ *New in Pygments 1.1.*
331
+
332
+ .. _ANTLR: http://www.antlr.org/
333
+ """
334
+
335
+ name = 'ANTLR'
336
+ aliases = ['antlr']
337
+ filenames = []
338
+
339
+ _id = r'[A-Za-z][A-Za-z_0-9]*'
340
+ _TOKEN_REF = r'[A-Z][A-Za-z_0-9]*'
341
+ _RULE_REF = r'[a-z][A-Za-z_0-9]*'
342
+ _STRING_LITERAL = r'\'(?:\\\\|\\\'|[^\']*)\''
343
+ _INT = r'[0-9]+'
344
+
345
+ tokens = {
346
+ 'whitespace': [
347
+ (r'\s+', Whitespace),
348
+ ],
349
+ 'comments': [
350
+ (r'//.*$', Comment),
351
+ (r'/\*(.|\n)*?\*/', Comment),
352
+ ],
353
+ 'root': [
354
+ include('whitespace'),
355
+ include('comments'),
356
+
357
+ (r'(lexer|parser|tree)?(\s*)(grammar\b)(\s*)(' + _id + ')(;)',
358
+ bygroups(Keyword, Whitespace, Keyword, Whitespace, Name.Class,
359
+ Punctuation)),
360
+ # optionsSpec
361
+ (r'options\b', Keyword, 'options'),
362
+ # tokensSpec
363
+ (r'tokens\b', Keyword, 'tokens'),
364
+ # attrScope
365
+ (r'(scope)(\s*)(' + _id + ')(\s*)({)',
366
+ bygroups(Keyword, Whitespace, Name.Variable, Whitespace,
367
+ Punctuation), 'action'),
368
+ # exception
369
+ (r'(catch|finally)\b', Keyword, 'exception'),
370
+ # action
371
+ (r'(@' + _id + ')(\s*)(::)?(\s*)(' + _id + ')(\s*)({)',
372
+ bygroups(Name.Label, Whitespace, Punctuation, Whitespace,
373
+ Name.Label, Whitespace, Punctuation), 'action'),
374
+ # rule
375
+ (r'((?:protected|private|public|fragment)\b)?(\s*)(' + _id + ')(!)?', \
376
+ bygroups(Keyword, Whitespace, Name.Label, Punctuation),
377
+ ('rule-alts', 'rule-prelims')),
378
+ ],
379
+ 'exception': [
380
+ (r'\n', Whitespace, '#pop'),
381
+ (r'\s', Whitespace),
382
+ include('comments'),
383
+
384
+ (r'\[', Punctuation, 'nested-arg-action'),
385
+ (r'\{', Punctuation, 'action'),
386
+ ],
387
+ 'rule-prelims': [
388
+ include('whitespace'),
389
+ include('comments'),
390
+
391
+ (r'returns\b', Keyword),
392
+ (r'\[', Punctuation, 'nested-arg-action'),
393
+ (r'\{', Punctuation, 'action'),
394
+ # throwsSpec
395
+ (r'(throws)(\s+)(' + _id + ')',
396
+ bygroups(Keyword, Whitespace, Name.Label)),
397
+ (r'(,)(\s*)(' + _id + ')',
398
+ bygroups(Punctuation, Whitespace, Name.Label)), # Additional throws
399
+ # optionsSpec
400
+ (r'options\b', Keyword, 'options'),
401
+ # ruleScopeSpec - scope followed by target language code or name of action
402
+ # TODO finish implementing other possibilities for scope
403
+ # L173 ANTLRv3.g from ANTLR book
404
+ (r'(scope)(\s+)({)', bygroups(Keyword, Whitespace, Punctuation),
405
+ 'action'),
406
+ (r'(scope)(\s+)(' + _id + ')(\s*)(;)',
407
+ bygroups(Keyword, Whitespace, Name.Label, Whitespace, Punctuation)),
408
+ # ruleAction
409
+ (r'(@' + _id + ')(\s*)({)',
410
+ bygroups(Name.Label, Whitespace, Punctuation), 'action'),
411
+ # finished prelims, go to rule alts!
412
+ (r':', Punctuation, '#pop')
413
+ ],
414
+ 'rule-alts': [
415
+ include('whitespace'),
416
+ include('comments'),
417
+
418
+ # These might need to go in a separate 'block' state triggered by (
419
+ (r'options\b', Keyword, 'options'),
420
+ (r':', Punctuation),
421
+
422
+ # literals
423
+ (r"'(\\\\|\\'|[^'])*'", String),
424
+ (r'"(\\\\|\\"|[^"])*"', String),
425
+ (r'<<([^>]|>[^>])>>', String),
426
+ # identifiers
427
+ # Tokens start with capital letter.
428
+ (r'\$?[A-Z_][A-Za-z_0-9]*', Name.Constant),
429
+ # Rules start with small letter.
430
+ (r'\$?[a-z_][A-Za-z_0-9]*', Name.Variable),
431
+ # operators
432
+ (r'(\+|\||->|=>|=|\(|\)|\.\.|\.|\?|\*|\^|!|\#|~)', Operator),
433
+ (r',', Punctuation),
434
+ (r'\[', Punctuation, 'nested-arg-action'),
435
+ (r'\{', Punctuation, 'action'),
436
+ (r';', Punctuation, '#pop')
437
+ ],
438
+ 'tokens': [
439
+ include('whitespace'),
440
+ include('comments'),
441
+ (r'{', Punctuation),
442
+ (r'(' + _TOKEN_REF + r')(\s*)(=)?(\s*)(' + _STRING_LITERAL
443
+ + ')?(\s*)(;)',
444
+ bygroups(Name.Label, Whitespace, Punctuation, Whitespace,
445
+ String, Whitespace, Punctuation)),
446
+ (r'}', Punctuation, '#pop'),
447
+ ],
448
+ 'options': [
449
+ include('whitespace'),
450
+ include('comments'),
451
+ (r'{', Punctuation),
452
+ (r'(' + _id + r')(\s*)(=)(\s*)(' +
453
+ '|'.join((_id, _STRING_LITERAL, _INT, '\*'))+ ')(\s*)(;)',
454
+ bygroups(Name.Variable, Whitespace, Punctuation, Whitespace,
455
+ Text, Whitespace, Punctuation)),
456
+ (r'}', Punctuation, '#pop'),
457
+ ],
458
+ 'action': [
459
+ (r'(' + r'|'.join(( # keep host code in largest possible chunks
460
+ r'[^\${}\'"/\\]+', # exclude unsafe characters
461
+
462
+ # strings and comments may safely contain unsafe characters
463
+ r'"(\\\\|\\"|[^"])*"', # double quote string
464
+ r"'(\\\\|\\'|[^'])*'", # single quote string
465
+ r'//.*$\n?', # single line comment
466
+ r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
467
+
468
+ # regular expression: There's no reason for it to start
469
+ # with a * and this stops confusion with comments.
470
+ r'/(?!\*)(\\\\|\\/|[^/])*/',
471
+
472
+ # backslashes are okay, as long as we are not backslashing a %
473
+ r'\\(?!%)',
474
+
475
+ # Now that we've handled regex and javadoc comments
476
+ # it's safe to let / through.
477
+ r'/',
478
+ )) + r')+', Other),
479
+ (r'(\\)(%)', bygroups(Punctuation, Other)),
480
+ (r'(\$[a-zA-Z]+)(\.?)(text|value)?',
481
+ bygroups(Name.Variable, Punctuation, Name.Property)),
482
+ (r'{', Punctuation, '#push'),
483
+ (r'}', Punctuation, '#pop'),
484
+ ],
485
+ 'nested-arg-action': [
486
+ (r'(' + r'|'.join(( # keep host code in largest possible chunks.
487
+ r'[^\$\[\]\'"/]+', # exclude unsafe characters
488
+
489
+ # strings and comments may safely contain unsafe characters
490
+ r'"(\\\\|\\"|[^"])*"', # double quote string
491
+ r"'(\\\\|\\'|[^'])*'", # single quote string
492
+ r'//.*$\n?', # single line comment
493
+ r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
494
+
495
+ # regular expression: There's no reason for it to start
496
+ # with a * and this stops confusion with comments.
497
+ r'/(?!\*)(\\\\|\\/|[^/])*/',
498
+
499
+ # Now that we've handled regex and javadoc comments
500
+ # it's safe to let / through.
501
+ r'/',
502
+ )) + r')+', Other),
503
+
504
+
505
+ (r'\[', Punctuation, '#push'),
506
+ (r'\]', Punctuation, '#pop'),
507
+ (r'(\$[a-zA-Z]+)(\.?)(text|value)?',
508
+ bygroups(Name.Variable, Punctuation, Name.Property)),
509
+ (r'(\\\\|\\\]|\\\[|[^\[\]])+', Other),
510
+ ]
511
+ }
512
+
513
+ def analyse_text(text):
514
+ return re.search(r'^\s*grammar\s+[a-zA-Z0-9]+\s*;', text, re.M)
515
+
516
+ # http://www.antlr.org/wiki/display/ANTLR3/Code+Generation+Targets
517
+
518
+ # TH: I'm not aware of any language features of C++ that will cause
519
+ # incorrect lexing of C files. Antlr doesn't appear to make a distinction,
520
+ # so just assume they're C++. No idea how to make Objective C work in the
521
+ # future.
522
+
523
+ #class AntlrCLexer(DelegatingLexer):
524
+ # """
525
+ # ANTLR with C Target
526
+ #
527
+ # *New in Pygments 1.1*
528
+ # """
529
+ #
530
+ # name = 'ANTLR With C Target'
531
+ # aliases = ['antlr-c']
532
+ # filenames = ['*.G', '*.g']
533
+ #
534
+ # def __init__(self, **options):
535
+ # super(AntlrCLexer, self).__init__(CLexer, AntlrLexer, **options)
536
+ #
537
+ # def analyse_text(text):
538
+ # return re.match(r'^\s*language\s*=\s*C\s*;', text)
539
+
540
+ class AntlrCppLexer(DelegatingLexer):
541
+ """
542
+ `ANTLR`_ with CPP Target
543
+
544
+ *New in Pygments 1.1.*
545
+ """
546
+
547
+ name = 'ANTLR With CPP Target'
548
+ aliases = ['antlr-cpp']
549
+ filenames = ['*.G', '*.g']
550
+
551
+ def __init__(self, **options):
552
+ super(AntlrCppLexer, self).__init__(CppLexer, AntlrLexer, **options)
553
+
554
+ def analyse_text(text):
555
+ return AntlrLexer.analyse_text(text) and \
556
+ re.search(r'^\s*language\s*=\s*C\s*;', text, re.M)
557
+
558
+
559
+ class AntlrObjectiveCLexer(DelegatingLexer):
560
+ """
561
+ `ANTLR`_ with Objective-C Target
562
+
563
+ *New in Pygments 1.1.*
564
+ """
565
+
566
+ name = 'ANTLR With ObjectiveC Target'
567
+ aliases = ['antlr-objc']
568
+ filenames = ['*.G', '*.g']
569
+
570
+ def __init__(self, **options):
571
+ super(AntlrObjectiveCLexer, self).__init__(ObjectiveCLexer,
572
+ AntlrLexer, **options)
573
+
574
+ def analyse_text(text):
575
+ return AntlrLexer.analyse_text(text) and \
576
+ re.search(r'^\s*language\s*=\s*ObjC\s*;', text)
577
+
578
+
579
+ class AntlrCSharpLexer(DelegatingLexer):
580
+ """
581
+ `ANTLR`_ with C# Target
582
+
583
+ *New in Pygments 1.1.*
584
+ """
585
+
586
+ name = 'ANTLR With C# Target'
587
+ aliases = ['antlr-csharp', 'antlr-c#']
588
+ filenames = ['*.G', '*.g']
589
+
590
+ def __init__(self, **options):
591
+ super(AntlrCSharpLexer, self).__init__(CSharpLexer, AntlrLexer,
592
+ **options)
593
+
594
+ def analyse_text(text):
595
+ return AntlrLexer.analyse_text(text) and \
596
+ re.search(r'^\s*language\s*=\s*CSharp2\s*;', text, re.M)
597
+
598
+
599
+ class AntlrPythonLexer(DelegatingLexer):
600
+ """
601
+ `ANTLR`_ with Python Target
602
+
603
+ *New in Pygments 1.1.*
604
+ """
605
+
606
+ name = 'ANTLR With Python Target'
607
+ aliases = ['antlr-python']
608
+ filenames = ['*.G', '*.g']
609
+
610
+ def __init__(self, **options):
611
+ super(AntlrPythonLexer, self).__init__(PythonLexer, AntlrLexer,
612
+ **options)
613
+
614
+ def analyse_text(text):
615
+ return AntlrLexer.analyse_text(text) and \
616
+ re.search(r'^\s*language\s*=\s*Python\s*;', text, re.M)
617
+
618
+
619
+ class AntlrJavaLexer(DelegatingLexer):
620
+ """
621
+ `ANTLR`_ with Java Target
622
+
623
+ *New in Pygments 1.1*
624
+ """
625
+
626
+ name = 'ANTLR With Java Target'
627
+ aliases = ['antlr-java']
628
+ filenames = ['*.G', '*.g']
629
+
630
+ def __init__(self, **options):
631
+ super(AntlrJavaLexer, self).__init__(JavaLexer, AntlrLexer,
632
+ **options)
633
+
634
+ def analyse_text(text):
635
+ # Antlr language is Java by default
636
+ return AntlrLexer.analyse_text(text) and 0.9
637
+
638
+
639
+ class AntlrRubyLexer(DelegatingLexer):
640
+ """
641
+ `ANTLR`_ with Ruby Target
642
+
643
+ *New in Pygments 1.1.*
644
+ """
645
+
646
+ name = 'ANTLR With Ruby Target'
647
+ aliases = ['antlr-ruby', 'antlr-rb']
648
+ filenames = ['*.G', '*.g']
649
+
650
+ def __init__(self, **options):
651
+ super(AntlrRubyLexer, self).__init__(RubyLexer, AntlrLexer,
652
+ **options)
653
+
654
+ def analyse_text(text):
655
+ return AntlrLexer.analyse_text(text) and \
656
+ re.search(r'^\s*language\s*=\s*Ruby\s*;', text, re.M)
657
+
658
+
659
+ class AntlrPerlLexer(DelegatingLexer):
660
+ """
661
+ `ANTLR`_ with Perl Target
662
+
663
+ *New in Pygments 1.1.*
664
+ """
665
+
666
+ name = 'ANTLR With Perl Target'
667
+ aliases = ['antlr-perl']
668
+ filenames = ['*.G', '*.g']
669
+
670
+ def __init__(self, **options):
671
+ super(AntlrPerlLexer, self).__init__(PerlLexer, AntlrLexer,
672
+ **options)
673
+
674
+ def analyse_text(text):
675
+ return AntlrLexer.analyse_text(text) and \
676
+ re.search(r'^\s*language\s*=\s*Perl5\s*;', text, re.M)
677
+
678
+
679
+ class AntlrActionScriptLexer(DelegatingLexer):
680
+ """
681
+ `ANTLR`_ with ActionScript Target
682
+
683
+ *New in Pygments 1.1.*
684
+ """
685
+
686
+ name = 'ANTLR With ActionScript Target'
687
+ aliases = ['antlr-as', 'antlr-actionscript']
688
+ filenames = ['*.G', '*.g']
689
+
690
+ def __init__(self, **options):
691
+ super(AntlrActionScriptLexer, self).__init__(ActionScriptLexer,
692
+ AntlrLexer, **options)
693
+
694
+ def analyse_text(text):
695
+ return AntlrLexer.analyse_text(text) and \
696
+ re.search(r'^\s*language\s*=\s*ActionScript\s*;', text, re.M)
697
+
698
+ class TreetopBaseLexer(RegexLexer):
699
+ """
700
+ A base lexer for `Treetop <http://treetop.rubyforge.org/>`_ grammars.
701
+ Not for direct use; use TreetopLexer instead.
702
+
703
+ *New in Pygments 1.6.*
704
+ """
705
+
706
+ tokens = {
707
+ 'root': [
708
+ include('space'),
709
+ (r'require[ \t]+[^\n\r]+[\n\r]', Other),
710
+ (r'module\b', Keyword.Namespace, 'module'),
711
+ (r'grammar\b', Keyword, 'grammar'),
712
+ ],
713
+ 'module': [
714
+ include('space'),
715
+ include('end'),
716
+ (r'module\b', Keyword, '#push'),
717
+ (r'grammar\b', Keyword, 'grammar'),
718
+ (r'[A-Z][A-Za-z_0-9]*(?:::[A-Z][A-Za-z_0-9]*)*', Name.Namespace),
719
+ ],
720
+ 'grammar': [
721
+ include('space'),
722
+ include('end'),
723
+ (r'rule\b', Keyword, 'rule'),
724
+ (r'include\b', Keyword, 'include'),
725
+ (r'[A-Z][A-Za-z_0-9]*', Name),
726
+ ],
727
+ 'include': [
728
+ include('space'),
729
+ (r'[A-Z][A-Za-z_0-9]*(?:::[A-Z][A-Za-z_0-9]*)*', Name.Class, '#pop'),
730
+ ],
731
+ 'rule': [
732
+ include('space'),
733
+ include('end'),
734
+ (r'"(\\\\|\\"|[^"])*"', String.Double),
735
+ (r"'(\\\\|\\'|[^'])*'", String.Single),
736
+ (r'([A-Za-z_][A-Za-z_0-9]*)(:)', bygroups(Name.Label, Punctuation)),
737
+ (r'[A-Za-z_][A-Za-z_0-9]*', Name),
738
+ (r'[()]', Punctuation),
739
+ (r'[?+*/&!~]', Operator),
740
+ (r'\[(?:\\.|\[:\^?[a-z]+:\]|[^\\\]])+\]', String.Regex),
741
+ (r'([0-9]*)(\.\.)([0-9]*)',
742
+ bygroups(Number.Integer, Operator, Number.Integer)),
743
+ (r'(<)([^>]+)(>)', bygroups(Punctuation, Name.Class, Punctuation)),
744
+ (r'{', Punctuation, 'inline_module'),
745
+ (r'\.', String.Regex),
746
+ ],
747
+ 'inline_module': [
748
+ (r'{', Other, 'ruby'),
749
+ (r'}', Punctuation, '#pop'),
750
+ (r'[^{}]+', Other),
751
+ ],
752
+ 'ruby': [
753
+ (r'{', Other, '#push'),
754
+ (r'}', Other, '#pop'),
755
+ (r'[^{}]+', Other),
756
+ ],
757
+ 'space': [
758
+ (r'[ \t\n\r]+', Whitespace),
759
+ (r'#[^\n]*', Comment.Single),
760
+ ],
761
+ 'end': [
762
+ (r'end\b', Keyword, '#pop'),
763
+ ],
764
+ }
765
+
766
+ class TreetopLexer(DelegatingLexer):
767
+ """
768
+ A lexer for `Treetop <http://treetop.rubyforge.org/>`_ grammars.
769
+
770
+ *New in Pygments 1.6.*
771
+ """
772
+
773
+ name = 'Treetop'
774
+ aliases = ['treetop']
775
+ filenames = ['*.treetop', '*.tt']
776
+
777
+ def __init__(self, **options):
778
+ super(TreetopLexer, self).__init__(RubyLexer, TreetopBaseLexer, **options)