gitlab-pygments.rb 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (399) hide show
  1. data/.gitignore +6 -0
  2. data/Gemfile +2 -0
  3. data/README.md +91 -0
  4. data/Rakefile +78 -0
  5. data/bench.rb +22 -0
  6. data/cache-lexers.rb +8 -0
  7. data/lexers +0 -0
  8. data/lib/pygments/lexer.rb +148 -0
  9. data/lib/pygments/mentos.py +344 -0
  10. data/lib/pygments/popen.rb +389 -0
  11. data/lib/pygments/version.rb +3 -0
  12. data/lib/pygments.rb +8 -0
  13. data/pygments.rb.gemspec +24 -0
  14. data/test/test_data.c +2581 -0
  15. data/test/test_data.py +514 -0
  16. data/test/test_data_generated +2582 -0
  17. data/test/test_pygments.rb +276 -0
  18. data/vendor/custom_formatters/gitlab.py +171 -0
  19. data/vendor/custom_lexers/github.py +362 -0
  20. data/vendor/pygments-main/AUTHORS +115 -0
  21. data/vendor/pygments-main/CHANGES +762 -0
  22. data/vendor/pygments-main/LICENSE +25 -0
  23. data/vendor/pygments-main/MANIFEST.in +6 -0
  24. data/vendor/pygments-main/Makefile +59 -0
  25. data/vendor/pygments-main/REVISION +1 -0
  26. data/vendor/pygments-main/TODO +15 -0
  27. data/vendor/pygments-main/docs/generate.py +472 -0
  28. data/vendor/pygments-main/docs/pygmentize.1 +94 -0
  29. data/vendor/pygments-main/docs/src/api.txt +270 -0
  30. data/vendor/pygments-main/docs/src/authors.txt +5 -0
  31. data/vendor/pygments-main/docs/src/changelog.txt +5 -0
  32. data/vendor/pygments-main/docs/src/cmdline.txt +147 -0
  33. data/vendor/pygments-main/docs/src/filterdevelopment.txt +70 -0
  34. data/vendor/pygments-main/docs/src/filters.txt +42 -0
  35. data/vendor/pygments-main/docs/src/formatterdevelopment.txt +169 -0
  36. data/vendor/pygments-main/docs/src/formatters.txt +48 -0
  37. data/vendor/pygments-main/docs/src/index.txt +69 -0
  38. data/vendor/pygments-main/docs/src/installation.txt +71 -0
  39. data/vendor/pygments-main/docs/src/integrate.txt +43 -0
  40. data/vendor/pygments-main/docs/src/lexerdevelopment.txt +551 -0
  41. data/vendor/pygments-main/docs/src/lexers.txt +67 -0
  42. data/vendor/pygments-main/docs/src/moinmoin.txt +39 -0
  43. data/vendor/pygments-main/docs/src/plugins.txt +93 -0
  44. data/vendor/pygments-main/docs/src/quickstart.txt +202 -0
  45. data/vendor/pygments-main/docs/src/rstdirective.txt +22 -0
  46. data/vendor/pygments-main/docs/src/styles.txt +143 -0
  47. data/vendor/pygments-main/docs/src/tokens.txt +349 -0
  48. data/vendor/pygments-main/docs/src/unicode.txt +49 -0
  49. data/vendor/pygments-main/external/markdown-processor.py +67 -0
  50. data/vendor/pygments-main/external/moin-parser.py +112 -0
  51. data/vendor/pygments-main/external/pygments.bashcomp +38 -0
  52. data/vendor/pygments-main/external/rst-directive-old.py +77 -0
  53. data/vendor/pygments-main/external/rst-directive.py +83 -0
  54. data/vendor/pygments-main/ez_setup.py +276 -0
  55. data/vendor/pygments-main/pygmentize +7 -0
  56. data/vendor/pygments-main/pygments/__init__.py +91 -0
  57. data/vendor/pygments-main/pygments/cmdline.py +433 -0
  58. data/vendor/pygments-main/pygments/console.py +74 -0
  59. data/vendor/pygments-main/pygments/filter.py +74 -0
  60. data/vendor/pygments-main/pygments/filters/__init__.py +357 -0
  61. data/vendor/pygments-main/pygments/formatter.py +92 -0
  62. data/vendor/pygments-main/pygments/formatters/__init__.py +68 -0
  63. data/vendor/pygments-main/pygments/formatters/_mapping.py +94 -0
  64. data/vendor/pygments-main/pygments/formatters/bbcode.py +109 -0
  65. data/vendor/pygments-main/pygments/formatters/gitlab.py +171 -0
  66. data/vendor/pygments-main/pygments/formatters/html.py +750 -0
  67. data/vendor/pygments-main/pygments/formatters/img.py +553 -0
  68. data/vendor/pygments-main/pygments/formatters/latex.py +378 -0
  69. data/vendor/pygments-main/pygments/formatters/other.py +117 -0
  70. data/vendor/pygments-main/pygments/formatters/rtf.py +136 -0
  71. data/vendor/pygments-main/pygments/formatters/svg.py +154 -0
  72. data/vendor/pygments-main/pygments/formatters/terminal.py +112 -0
  73. data/vendor/pygments-main/pygments/formatters/terminal256.py +222 -0
  74. data/vendor/pygments-main/pygments/lexer.py +697 -0
  75. data/vendor/pygments-main/pygments/lexers/__init__.py +229 -0
  76. data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1645 -0
  77. data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +232 -0
  78. data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +249 -0
  79. data/vendor/pygments-main/pygments/lexers/_mapping.py +298 -0
  80. data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +3787 -0
  81. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +232 -0
  82. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +29 -0
  83. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +3 -0
  84. data/vendor/pygments-main/pygments/lexers/agile.py +1803 -0
  85. data/vendor/pygments-main/pygments/lexers/asm.py +360 -0
  86. data/vendor/pygments-main/pygments/lexers/compiled.py +2891 -0
  87. data/vendor/pygments-main/pygments/lexers/dotnet.py +636 -0
  88. data/vendor/pygments-main/pygments/lexers/functional.py +1832 -0
  89. data/vendor/pygments-main/pygments/lexers/github.py +362 -0
  90. data/vendor/pygments-main/pygments/lexers/hdl.py +356 -0
  91. data/vendor/pygments-main/pygments/lexers/jvm.py +847 -0
  92. data/vendor/pygments-main/pygments/lexers/math.py +1072 -0
  93. data/vendor/pygments-main/pygments/lexers/other.py +3339 -0
  94. data/vendor/pygments-main/pygments/lexers/parsers.py +695 -0
  95. data/vendor/pygments-main/pygments/lexers/shell.py +361 -0
  96. data/vendor/pygments-main/pygments/lexers/special.py +100 -0
  97. data/vendor/pygments-main/pygments/lexers/sql.py +559 -0
  98. data/vendor/pygments-main/pygments/lexers/templates.py +1631 -0
  99. data/vendor/pygments-main/pygments/lexers/text.py +1753 -0
  100. data/vendor/pygments-main/pygments/lexers/web.py +2864 -0
  101. data/vendor/pygments-main/pygments/plugin.py +74 -0
  102. data/vendor/pygments-main/pygments/scanner.py +104 -0
  103. data/vendor/pygments-main/pygments/style.py +117 -0
  104. data/vendor/pygments-main/pygments/styles/__init__.py +70 -0
  105. data/vendor/pygments-main/pygments/styles/autumn.py +65 -0
  106. data/vendor/pygments-main/pygments/styles/borland.py +51 -0
  107. data/vendor/pygments-main/pygments/styles/bw.py +49 -0
  108. data/vendor/pygments-main/pygments/styles/colorful.py +81 -0
  109. data/vendor/pygments-main/pygments/styles/default.py +73 -0
  110. data/vendor/pygments-main/pygments/styles/emacs.py +72 -0
  111. data/vendor/pygments-main/pygments/styles/friendly.py +72 -0
  112. data/vendor/pygments-main/pygments/styles/fruity.py +42 -0
  113. data/vendor/pygments-main/pygments/styles/manni.py +75 -0
  114. data/vendor/pygments-main/pygments/styles/monokai.py +106 -0
  115. data/vendor/pygments-main/pygments/styles/murphy.py +80 -0
  116. data/vendor/pygments-main/pygments/styles/native.py +65 -0
  117. data/vendor/pygments-main/pygments/styles/pastie.py +75 -0
  118. data/vendor/pygments-main/pygments/styles/perldoc.py +69 -0
  119. data/vendor/pygments-main/pygments/styles/rrt.py +33 -0
  120. data/vendor/pygments-main/pygments/styles/tango.py +141 -0
  121. data/vendor/pygments-main/pygments/styles/trac.py +63 -0
  122. data/vendor/pygments-main/pygments/styles/vim.py +63 -0
  123. data/vendor/pygments-main/pygments/styles/vs.py +38 -0
  124. data/vendor/pygments-main/pygments/token.py +195 -0
  125. data/vendor/pygments-main/pygments/unistring.py +130 -0
  126. data/vendor/pygments-main/pygments/util.py +232 -0
  127. data/vendor/pygments-main/scripts/check_sources.py +242 -0
  128. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +30 -0
  129. data/vendor/pygments-main/scripts/epydoc.css +280 -0
  130. data/vendor/pygments-main/scripts/find_codetags.py +205 -0
  131. data/vendor/pygments-main/scripts/find_error.py +171 -0
  132. data/vendor/pygments-main/scripts/get_vimkw.py +43 -0
  133. data/vendor/pygments-main/scripts/pylintrc +301 -0
  134. data/vendor/pygments-main/scripts/reindent.py +291 -0
  135. data/vendor/pygments-main/scripts/vim2pygments.py +933 -0
  136. data/vendor/pygments-main/setup.cfg +6 -0
  137. data/vendor/pygments-main/setup.py +88 -0
  138. data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +37 -0
  139. data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +869 -0
  140. data/vendor/pygments-main/tests/dtds/HTML4.dcl +88 -0
  141. data/vendor/pygments-main/tests/dtds/HTML4.dtd +1092 -0
  142. data/vendor/pygments-main/tests/dtds/HTML4.soc +9 -0
  143. data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +195 -0
  144. data/vendor/pygments-main/tests/dtds/HTMLspec.ent +77 -0
  145. data/vendor/pygments-main/tests/dtds/HTMLsym.ent +241 -0
  146. data/vendor/pygments-main/tests/examplefiles/ANTLRv3.g +608 -0
  147. data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +209 -0
  148. data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +102 -0
  149. data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +611 -0
  150. data/vendor/pygments-main/tests/examplefiles/Constants.mo +158 -0
  151. data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +411 -0
  152. data/vendor/pygments-main/tests/examplefiles/Errors.scala +18 -0
  153. data/vendor/pygments-main/tests/examplefiles/File.hy +174 -0
  154. data/vendor/pygments-main/tests/examplefiles/Intro.java +1660 -0
  155. data/vendor/pygments-main/tests/examplefiles/Makefile +1131 -0
  156. data/vendor/pygments-main/tests/examplefiles/Object.st +4394 -0
  157. data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +584 -0
  158. data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +378 -0
  159. data/vendor/pygments-main/tests/examplefiles/Sorting.mod +470 -0
  160. data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +382 -0
  161. data/vendor/pygments-main/tests/examplefiles/addressbook.proto +30 -0
  162. data/vendor/pygments-main/tests/examplefiles/antlr_throws +1 -0
  163. data/vendor/pygments-main/tests/examplefiles/apache2.conf +393 -0
  164. data/vendor/pygments-main/tests/examplefiles/as3_test.as +143 -0
  165. data/vendor/pygments-main/tests/examplefiles/as3_test2.as +46 -0
  166. data/vendor/pygments-main/tests/examplefiles/as3_test3.as +3 -0
  167. data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +27 -0
  168. data/vendor/pygments-main/tests/examplefiles/badcase.java +2 -0
  169. data/vendor/pygments-main/tests/examplefiles/batchfile.bat +49 -0
  170. data/vendor/pygments-main/tests/examplefiles/boot-9.scm +1557 -0
  171. data/vendor/pygments-main/tests/examplefiles/cells.ps +515 -0
  172. data/vendor/pygments-main/tests/examplefiles/ceval.c +2604 -0
  173. data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +13 -0
  174. data/vendor/pygments-main/tests/examplefiles/classes.dylan +40 -0
  175. data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +10 -0
  176. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +447 -0
  177. data/vendor/pygments-main/tests/examplefiles/database.pytb +20 -0
  178. data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +2461 -0
  179. data/vendor/pygments-main/tests/examplefiles/demo.ahk +181 -0
  180. data/vendor/pygments-main/tests/examplefiles/demo.cfm +38 -0
  181. data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +68 -0
  182. data/vendor/pygments-main/tests/examplefiles/dwarf.cw +17 -0
  183. data/vendor/pygments-main/tests/examplefiles/erl_session +10 -0
  184. data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +1 -0
  185. data/vendor/pygments-main/tests/examplefiles/evil_regex.js +48 -0
  186. data/vendor/pygments-main/tests/examplefiles/example.c +2080 -0
  187. data/vendor/pygments-main/tests/examplefiles/example.cls +15 -0
  188. data/vendor/pygments-main/tests/examplefiles/example.cpp +2363 -0
  189. data/vendor/pygments-main/tests/examplefiles/example.gs +106 -0
  190. data/vendor/pygments-main/tests/examplefiles/example.gst +7 -0
  191. data/vendor/pygments-main/tests/examplefiles/example.kt +47 -0
  192. data/vendor/pygments-main/tests/examplefiles/example.lua +250 -0
  193. data/vendor/pygments-main/tests/examplefiles/example.moo +26 -0
  194. data/vendor/pygments-main/tests/examplefiles/example.moon +629 -0
  195. data/vendor/pygments-main/tests/examplefiles/example.nim +1010 -0
  196. data/vendor/pygments-main/tests/examplefiles/example.ns2 +69 -0
  197. data/vendor/pygments-main/tests/examplefiles/example.p +34 -0
  198. data/vendor/pygments-main/tests/examplefiles/example.pas +2708 -0
  199. data/vendor/pygments-main/tests/examplefiles/example.rb +1852 -0
  200. data/vendor/pygments-main/tests/examplefiles/example.rhtml +561 -0
  201. data/vendor/pygments-main/tests/examplefiles/example.sh-session +19 -0
  202. data/vendor/pygments-main/tests/examplefiles/example.sml +156 -0
  203. data/vendor/pygments-main/tests/examplefiles/example.snobol +15 -0
  204. data/vendor/pygments-main/tests/examplefiles/example.tea +34 -0
  205. data/vendor/pygments-main/tests/examplefiles/example.u +548 -0
  206. data/vendor/pygments-main/tests/examplefiles/example.weechatlog +9 -0
  207. data/vendor/pygments-main/tests/examplefiles/example.xhtml +376 -0
  208. data/vendor/pygments-main/tests/examplefiles/example.yaml +302 -0
  209. data/vendor/pygments-main/tests/examplefiles/example2.aspx +29 -0
  210. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +363 -0
  211. data/vendor/pygments-main/tests/examplefiles/example_file.fy +128 -0
  212. data/vendor/pygments-main/tests/examplefiles/firefox.mak +586 -0
  213. data/vendor/pygments-main/tests/examplefiles/flipflop.sv +19 -0
  214. data/vendor/pygments-main/tests/examplefiles/foo.sce +6 -0
  215. data/vendor/pygments-main/tests/examplefiles/format.ml +1213 -0
  216. data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +77 -0
  217. data/vendor/pygments-main/tests/examplefiles/function.mu +1 -0
  218. data/vendor/pygments-main/tests/examplefiles/functional.rst +1472 -0
  219. data/vendor/pygments-main/tests/examplefiles/genclass.clj +510 -0
  220. data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +193 -0
  221. data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +33 -0
  222. data/vendor/pygments-main/tests/examplefiles/glsl.frag +7 -0
  223. data/vendor/pygments-main/tests/examplefiles/glsl.vert +13 -0
  224. data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +1 -0
  225. data/vendor/pygments-main/tests/examplefiles/http_request_example +14 -0
  226. data/vendor/pygments-main/tests/examplefiles/http_response_example +27 -0
  227. data/vendor/pygments-main/tests/examplefiles/import.hs +4 -0
  228. data/vendor/pygments-main/tests/examplefiles/intro.ik +24 -0
  229. data/vendor/pygments-main/tests/examplefiles/ints.php +10 -0
  230. data/vendor/pygments-main/tests/examplefiles/intsyn.fun +675 -0
  231. data/vendor/pygments-main/tests/examplefiles/intsyn.sig +286 -0
  232. data/vendor/pygments-main/tests/examplefiles/irb_heredoc +8 -0
  233. data/vendor/pygments-main/tests/examplefiles/irc.lsp +214 -0
  234. data/vendor/pygments-main/tests/examplefiles/java.properties +16 -0
  235. data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +28 -0
  236. data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +45 -0
  237. data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +713 -0
  238. data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +13 -0
  239. data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +47 -0
  240. data/vendor/pygments-main/tests/examplefiles/ltmain.sh +2849 -0
  241. data/vendor/pygments-main/tests/examplefiles/main.cmake +42 -0
  242. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +679 -0
  243. data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +3 -0
  244. data/vendor/pygments-main/tests/examplefiles/matlab_sample +27 -0
  245. data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +37 -0
  246. data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +4 -0
  247. data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +340 -0
  248. data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +38 -0
  249. data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +96 -0
  250. data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +30 -0
  251. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +87 -0
  252. data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +118 -0
  253. data/vendor/pygments-main/tests/examplefiles/numbers.c +12 -0
  254. data/vendor/pygments-main/tests/examplefiles/objc_example.m +25 -0
  255. data/vendor/pygments-main/tests/examplefiles/objc_example2.m +24 -0
  256. data/vendor/pygments-main/tests/examplefiles/perl_misc +62 -0
  257. data/vendor/pygments-main/tests/examplefiles/perl_perl5db +998 -0
  258. data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +120 -0
  259. data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +856 -0
  260. data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +567 -0
  261. data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +1223 -0
  262. data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +47 -0
  263. data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +10 -0
  264. data/vendor/pygments-main/tests/examplefiles/psql_session.txt +122 -0
  265. data/vendor/pygments-main/tests/examplefiles/py3_test.txt +2 -0
  266. data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +14 -0
  267. data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +2 -0
  268. data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +234 -0
  269. data/vendor/pygments-main/tests/examplefiles/qsort.prolog +13 -0
  270. data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +38 -0
  271. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +280 -0
  272. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +2 -0
  273. data/vendor/pygments-main/tests/examplefiles/regex.js +22 -0
  274. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +427 -0
  275. data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +11 -0
  276. data/vendor/pygments-main/tests/examplefiles/scilab.sci +30 -0
  277. data/vendor/pygments-main/tests/examplefiles/sibling.prolog +19 -0
  278. data/vendor/pygments-main/tests/examplefiles/simple.md +747 -0
  279. data/vendor/pygments-main/tests/examplefiles/smarty_example.html +209 -0
  280. data/vendor/pygments-main/tests/examplefiles/source.lgt +343 -0
  281. data/vendor/pygments-main/tests/examplefiles/sources.list +62 -0
  282. data/vendor/pygments-main/tests/examplefiles/sphere.pov +18 -0
  283. data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +27 -0
  284. data/vendor/pygments-main/tests/examplefiles/squid.conf +30 -0
  285. data/vendor/pygments-main/tests/examplefiles/string.jl +1031 -0
  286. data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +21 -0
  287. data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +3 -0
  288. data/vendor/pygments-main/tests/examplefiles/test.R +119 -0
  289. data/vendor/pygments-main/tests/examplefiles/test.adb +211 -0
  290. data/vendor/pygments-main/tests/examplefiles/test.asy +131 -0
  291. data/vendor/pygments-main/tests/examplefiles/test.awk +121 -0
  292. data/vendor/pygments-main/tests/examplefiles/test.bas +29 -0
  293. data/vendor/pygments-main/tests/examplefiles/test.bmx +145 -0
  294. data/vendor/pygments-main/tests/examplefiles/test.boo +39 -0
  295. data/vendor/pygments-main/tests/examplefiles/test.bro +250 -0
  296. data/vendor/pygments-main/tests/examplefiles/test.cs +374 -0
  297. data/vendor/pygments-main/tests/examplefiles/test.css +54 -0
  298. data/vendor/pygments-main/tests/examplefiles/test.d +135 -0
  299. data/vendor/pygments-main/tests/examplefiles/test.dart +23 -0
  300. data/vendor/pygments-main/tests/examplefiles/test.dtd +89 -0
  301. data/vendor/pygments-main/tests/examplefiles/test.ec +605 -0
  302. data/vendor/pygments-main/tests/examplefiles/test.ecl +58 -0
  303. data/vendor/pygments-main/tests/examplefiles/test.eh +315 -0
  304. data/vendor/pygments-main/tests/examplefiles/test.erl +169 -0
  305. data/vendor/pygments-main/tests/examplefiles/test.evoque +33 -0
  306. data/vendor/pygments-main/tests/examplefiles/test.fan +818 -0
  307. data/vendor/pygments-main/tests/examplefiles/test.flx +57 -0
  308. data/vendor/pygments-main/tests/examplefiles/test.gdc +13 -0
  309. data/vendor/pygments-main/tests/examplefiles/test.groovy +97 -0
  310. data/vendor/pygments-main/tests/examplefiles/test.html +339 -0
  311. data/vendor/pygments-main/tests/examplefiles/test.ini +10 -0
  312. data/vendor/pygments-main/tests/examplefiles/test.java +653 -0
  313. data/vendor/pygments-main/tests/examplefiles/test.jsp +24 -0
  314. data/vendor/pygments-main/tests/examplefiles/test.maql +45 -0
  315. data/vendor/pygments-main/tests/examplefiles/test.mod +374 -0
  316. data/vendor/pygments-main/tests/examplefiles/test.moo +51 -0
  317. data/vendor/pygments-main/tests/examplefiles/test.myt +166 -0
  318. data/vendor/pygments-main/tests/examplefiles/test.nim +93 -0
  319. data/vendor/pygments-main/tests/examplefiles/test.pas +743 -0
  320. data/vendor/pygments-main/tests/examplefiles/test.php +505 -0
  321. data/vendor/pygments-main/tests/examplefiles/test.plot +333 -0
  322. data/vendor/pygments-main/tests/examplefiles/test.ps1 +108 -0
  323. data/vendor/pygments-main/tests/examplefiles/test.pypylog +1839 -0
  324. data/vendor/pygments-main/tests/examplefiles/test.r3 +94 -0
  325. data/vendor/pygments-main/tests/examplefiles/test.rb +177 -0
  326. data/vendor/pygments-main/tests/examplefiles/test.rhtml +43 -0
  327. data/vendor/pygments-main/tests/examplefiles/test.scaml +8 -0
  328. data/vendor/pygments-main/tests/examplefiles/test.ssp +12 -0
  329. data/vendor/pygments-main/tests/examplefiles/test.tcsh +830 -0
  330. data/vendor/pygments-main/tests/examplefiles/test.vb +407 -0
  331. data/vendor/pygments-main/tests/examplefiles/test.vhdl +161 -0
  332. data/vendor/pygments-main/tests/examplefiles/test.xqy +138 -0
  333. data/vendor/pygments-main/tests/examplefiles/test.xsl +23 -0
  334. data/vendor/pygments-main/tests/examplefiles/truncated.pytb +15 -0
  335. data/vendor/pygments-main/tests/examplefiles/type.lisp +1202 -0
  336. data/vendor/pygments-main/tests/examplefiles/underscore.coffee +603 -0
  337. data/vendor/pygments-main/tests/examplefiles/unicode.applescript +5 -0
  338. data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +11 -0
  339. data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +3 -0
  340. data/vendor/pygments-main/tests/examplefiles/while.pov +13 -0
  341. data/vendor/pygments-main/tests/examplefiles/wiki.factor +384 -0
  342. data/vendor/pygments-main/tests/examplefiles/xml_example +1897 -0
  343. data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +798 -0
  344. data/vendor/pygments-main/tests/old_run.py +138 -0
  345. data/vendor/pygments-main/tests/run.py +48 -0
  346. data/vendor/pygments-main/tests/support.py +15 -0
  347. data/vendor/pygments-main/tests/test_basic_api.py +294 -0
  348. data/vendor/pygments-main/tests/test_clexer.py +31 -0
  349. data/vendor/pygments-main/tests/test_cmdline.py +105 -0
  350. data/vendor/pygments-main/tests/test_examplefiles.py +97 -0
  351. data/vendor/pygments-main/tests/test_html_formatter.py +162 -0
  352. data/vendor/pygments-main/tests/test_latex_formatter.py +55 -0
  353. data/vendor/pygments-main/tests/test_perllexer.py +137 -0
  354. data/vendor/pygments-main/tests/test_regexlexer.py +47 -0
  355. data/vendor/pygments-main/tests/test_token.py +46 -0
  356. data/vendor/pygments-main/tests/test_using_api.py +40 -0
  357. data/vendor/pygments-main/tests/test_util.py +116 -0
  358. data/vendor/simplejson/.gitignore +10 -0
  359. data/vendor/simplejson/.travis.yml +5 -0
  360. data/vendor/simplejson/CHANGES.txt +291 -0
  361. data/vendor/simplejson/LICENSE.txt +19 -0
  362. data/vendor/simplejson/MANIFEST.in +5 -0
  363. data/vendor/simplejson/README.rst +19 -0
  364. data/vendor/simplejson/conf.py +179 -0
  365. data/vendor/simplejson/index.rst +628 -0
  366. data/vendor/simplejson/scripts/make_docs.py +18 -0
  367. data/vendor/simplejson/setup.py +104 -0
  368. data/vendor/simplejson/simplejson/__init__.py +510 -0
  369. data/vendor/simplejson/simplejson/_speedups.c +2745 -0
  370. data/vendor/simplejson/simplejson/decoder.py +425 -0
  371. data/vendor/simplejson/simplejson/encoder.py +567 -0
  372. data/vendor/simplejson/simplejson/ordered_dict.py +119 -0
  373. data/vendor/simplejson/simplejson/scanner.py +77 -0
  374. data/vendor/simplejson/simplejson/tests/__init__.py +67 -0
  375. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +55 -0
  376. data/vendor/simplejson/simplejson/tests/test_check_circular.py +30 -0
  377. data/vendor/simplejson/simplejson/tests/test_decimal.py +66 -0
  378. data/vendor/simplejson/simplejson/tests/test_decode.py +83 -0
  379. data/vendor/simplejson/simplejson/tests/test_default.py +9 -0
  380. data/vendor/simplejson/simplejson/tests/test_dump.py +67 -0
  381. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +46 -0
  382. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +32 -0
  383. data/vendor/simplejson/simplejson/tests/test_errors.py +34 -0
  384. data/vendor/simplejson/simplejson/tests/test_fail.py +91 -0
  385. data/vendor/simplejson/simplejson/tests/test_float.py +19 -0
  386. data/vendor/simplejson/simplejson/tests/test_indent.py +86 -0
  387. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +20 -0
  388. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +121 -0
  389. data/vendor/simplejson/simplejson/tests/test_pass1.py +76 -0
  390. data/vendor/simplejson/simplejson/tests/test_pass2.py +14 -0
  391. data/vendor/simplejson/simplejson/tests/test_pass3.py +20 -0
  392. data/vendor/simplejson/simplejson/tests/test_recursion.py +67 -0
  393. data/vendor/simplejson/simplejson/tests/test_scanstring.py +117 -0
  394. data/vendor/simplejson/simplejson/tests/test_separators.py +42 -0
  395. data/vendor/simplejson/simplejson/tests/test_speedups.py +20 -0
  396. data/vendor/simplejson/simplejson/tests/test_tuple.py +49 -0
  397. data/vendor/simplejson/simplejson/tests/test_unicode.py +109 -0
  398. data/vendor/simplejson/simplejson/tool.py +39 -0
  399. metadata +492 -0
@@ -0,0 +1,11 @@
1
+ class (get_foo("blub"))::Foo
2
+ def (foo("bar") + bar("baz")).something argh, aaahaa
3
+ 42
4
+ end
5
+ end
6
+
7
+ class get_the_fuck("out")::Of::My
8
+ def parser_definition
9
+ ruby!
10
+ end
11
+ end
@@ -0,0 +1,30 @@
1
+ // Scilab ( http://www.scilab.org/ )
2
+ // Copyright (C) INRIA - Serge STEER
3
+ //
4
+
5
+ function I=sub2ind(dims,varargin)
6
+ //sub2ind is used to determine the equivalent single index
7
+ //corresponding to a given set of subscript values.
8
+
9
+ //I = sub2ind(dims,i1,i2,..) returns the linear index equivalent to the
10
+ //row, column, ... subscripts in the arrays i1,i2,.. for an matrix of
11
+ //size dims.
12
+
13
+ //I = sub2ind(dims,Mi) returns the linear index
14
+ //equivalent to the n subscripts in the columns of the matrix Mi for a matrix
15
+ //of size dims.
16
+
17
+ d=[1;cumprod(matrix(dims(1:$-1),-1,1))]
18
+ for i=1:size(varargin)
19
+ if varargin(i)==[] then I=[],return,end
20
+ end
21
+
22
+ if size(varargin)==1 then //subindices are the columns of the argument
23
+ I=(varargin(1)-1)*d+1
24
+ else //subindices are given as separated arguments
25
+ I=1
26
+ for i=1:size(varargin)
27
+ I=I+(varargin(i)-1)*d(i)
28
+ end
29
+ end
30
+ endfunction
@@ -0,0 +1,19 @@
1
+ /* Comments /* can nest */
2
+ still a comment
3
+ */
4
+
5
+ :- module(maplist, maplist/3)
6
+
7
+ assert(world:done). % asserts
8
+
9
+ sibling(X, Y) :- parent_child(Z, X), parent_child(Z, Y).
10
+
11
+ parent_child(X, Y) :- father_child(X, Y).
12
+ parent_child(X, Y) :- mother_child(X, Y).
13
+
14
+ mother_child(trude, sally).
15
+
16
+ father_child(tom, sally).
17
+ father_child(tom, erica).
18
+ father_child(mike, tom).
19
+
@@ -0,0 +1,747 @@
1
+ module simple;
2
+
3
+ // Importing stuff.
4
+ {
5
+ function loadMod(name, ns)
6
+ {
7
+ assert(name == "mod");
8
+
9
+ ns.x = "I'm x";
10
+
11
+ ns.foo = function foo()
12
+ {
13
+ writefln("foo");
14
+ };
15
+
16
+ ns.bar = function bar(x)
17
+ {
18
+ return x[0];
19
+ };
20
+
21
+ ns.baz = function baz()
22
+ {
23
+ writefln(x);
24
+ };
25
+
26
+ foreach(k, v; ns)
27
+ if(isFunction(v))
28
+ v.environment(ns);
29
+ }
30
+
31
+ setModuleLoader("mod", loadMod);
32
+
33
+ import mod : foo, bar;
34
+ foo();
35
+ writefln(bar([5]));
36
+ mod.baz();
37
+
38
+ writefln();
39
+ }
40
+
41
+ // Super calls.
42
+ {
43
+ class Base
44
+ {
45
+ function fork()
46
+ {
47
+ writefln("Base fork.");
48
+ }
49
+ }
50
+
51
+ class Derived : Base
52
+ {
53
+ function fork()
54
+ {
55
+ writefln("Derived fork!");
56
+ super.fork();
57
+ }
58
+ }
59
+
60
+ local d = Derived();
61
+ d.fork();
62
+
63
+ writefln();
64
+ }
65
+
66
+ // Coroutines and coroutine iteration.
67
+ {
68
+ local countDown = coroutine function countDown(x)
69
+ {
70
+ yield();
71
+
72
+ while(x > 0)
73
+ {
74
+ yield(x);
75
+ x--;
76
+ }
77
+ };
78
+
79
+ foreach(v; countDown, 5)
80
+ writefln(v);
81
+
82
+ writefln();
83
+
84
+ local forEach = coroutine function forEach(t)
85
+ {
86
+ yield();
87
+
88
+ foreach(k, v; t)
89
+ yield(k, v);
90
+ };
91
+
92
+ foreach(_, k, v; forEach, {hi = 1, bye = 2})
93
+ writefln("key: ", k, ", value: ", v);
94
+
95
+ writefln();
96
+ }
97
+
98
+ // Testing tailcalls.
99
+ {
100
+ function recurse(x)
101
+ {
102
+ writefln("recurse: ", x);
103
+
104
+ if(x == 0)
105
+ return toString(x);
106
+ else
107
+ return recurse(x - 1);
108
+ }
109
+
110
+ writefln(recurse(5));
111
+ writefln();
112
+
113
+ class A
114
+ {
115
+ function f(x)
116
+ {
117
+ writefln("A.f: ", x);
118
+
119
+ if(x == 0)
120
+ return toString(x);
121
+ else
122
+ return this.f(x - 1); // call it as this.f to force a 'method' instruction to be generated
123
+ }
124
+ }
125
+
126
+ local a = A();
127
+ writefln(a.f(5));
128
+ writefln();
129
+ }
130
+
131
+ {
132
+ // A function which lets us define properties for a class.
133
+ // The varargs should be a bunch of tables, each with a 'name' field, and 'getter' and/or 'setter' fields.
134
+ function mixinProperties(classType, vararg)
135
+ {
136
+ classType.mProps = { };
137
+
138
+ classType.opIndex = function opIndex(key)
139
+ {
140
+ local prop = mProps[key];
141
+
142
+ if(prop is null)
143
+ throw format(classType, ".opIndex() - Property '%s' does not exist", key);
144
+
145
+ local getter = prop.getter;
146
+
147
+ if(getter is null)
148
+ throw format(classType, ".opIndex() - Property '%s' has no getter", key);
149
+
150
+ return getter(with this);
151
+ };
152
+
153
+ classType.opIndexAssign = function opIndexAssign(key, value)
154
+ {
155
+ local prop = mProps[key];
156
+
157
+ if(prop is null)
158
+ throw format(classType, ".opIndexAssign() - Property '%s' does not exist", key);
159
+
160
+ local setter = prop.setter;
161
+
162
+ if(setter is null)
163
+ throw format(classType, ".opIndexAssign() - Property '%s' has no setter", key);
164
+
165
+ setter(with this, value);
166
+ };
167
+
168
+ foreach(i, prop; [vararg])
169
+ {
170
+ if(!isTable(prop))
171
+ throw format("mixinProperties() - property ", i, " is not a table");
172
+
173
+ if(prop.name is null)
174
+ throw format("mixinProperties() - property ", i, " has no name");
175
+
176
+ if(prop.setter is null && prop.getter is null)
177
+ throw format("mixinProperties() - property '%s' has no getter or setter", prop.name);
178
+
179
+ classType.mProps[prop.name] = prop;
180
+ }
181
+ }
182
+
183
+ // Create a class to test out.
184
+ class PropTest
185
+ {
186
+ mX = 0;
187
+ mY = 0;
188
+ mName = "";
189
+
190
+ function constructor(name)
191
+ {
192
+ mName = name;
193
+ }
194
+
195
+ function toString()
196
+ {
197
+ return format("name = '", mName, "' x = ", mX, " y = ", mY);
198
+ }
199
+ }
200
+
201
+ // Mix in the properties.
202
+ mixinProperties
203
+ (
204
+ PropTest,
205
+
206
+ {
207
+ name = "x",
208
+
209
+ function setter(value)
210
+ {
211
+ mX = value;
212
+ }
213
+
214
+ function getter()
215
+ {
216
+ return mX;
217
+ }
218
+ },
219
+
220
+ {
221
+ name = "y",
222
+
223
+ function setter(value)
224
+ {
225
+ mY = value;
226
+ }
227
+
228
+ function getter()
229
+ {
230
+ return mY;
231
+ }
232
+ },
233
+
234
+ {
235
+ name = "name",
236
+
237
+ function getter()
238
+ {
239
+ return mName;
240
+ }
241
+ }
242
+ );
243
+
244
+ // Create an instance and try it out.
245
+ local p = PropTest("hello");
246
+
247
+ writefln(p);
248
+ p.x = 46;
249
+ p.y = 123;
250
+ p.x = p.x + p.y;
251
+ writefln(p);
252
+
253
+ // Try to access a nonexistent property.
254
+ try
255
+ p.name = "crap";
256
+ catch(e)
257
+ {
258
+ writefln("caught: ", e);
259
+ writefln(getTraceback());
260
+ }
261
+
262
+ writefln();
263
+ }
264
+
265
+ // Some container classes.
266
+ {
267
+ class PQ
268
+ {
269
+ mData;
270
+ mLength = 0;
271
+
272
+ function constructor()
273
+ {
274
+ mData = array.new(15);
275
+ }
276
+
277
+ function insert(data)
278
+ {
279
+ resizeArray();
280
+ mData[mLength] = data;
281
+
282
+ local index = mLength;
283
+ local parentIndex = (index - 1) / 2;
284
+
285
+ while(index > 0 && mData[parentIndex] > mData[index])
286
+ {
287
+ local temp = mData[parentIndex];
288
+ mData[parentIndex] = mData[index];
289
+ mData[index] = temp;
290
+
291
+ index = parentIndex;
292
+ parentIndex = (index - 1) / 2;
293
+ }
294
+
295
+ mLength += 1;
296
+ }
297
+
298
+ function remove()
299
+ {
300
+ if(mLength == 0)
301
+ throw "PQ.remove() - No items to remove";
302
+
303
+ local data = mData[0];
304
+ mLength -= 1;
305
+ mData[0] = mData[mLength];
306
+
307
+ local index = 0;
308
+ local left = 1;
309
+ local right = 2;
310
+
311
+ while(index < mLength)
312
+ {
313
+ local smaller;
314
+
315
+ if(left >= mLength)
316
+ {
317
+ if(right >= mLength)
318
+ break;
319
+ else
320
+ smaller = right;
321
+ }
322
+ else
323
+ {
324
+ if(right >= mLength)
325
+ smaller = left;
326
+ else
327
+ {
328
+ if(mData[left] < mData[right])
329
+ smaller = left;
330
+ else
331
+ smaller = right;
332
+ }
333
+ }
334
+
335
+ if(mData[index] > mData[smaller])
336
+ {
337
+ local temp = mData[index];
338
+ mData[index] = mData[smaller];
339
+ mData[smaller] = temp;
340
+
341
+ index = smaller;
342
+ left = (index * 2) + 1;
343
+ right = left + 1;
344
+ }
345
+ else
346
+ break;
347
+ }
348
+
349
+ return data;
350
+ }
351
+
352
+ function resizeArray()
353
+ {
354
+ if(mLength >= #mData)
355
+ mData.length((#mData + 1) * 2 - 1);
356
+ }
357
+
358
+ function hasData()
359
+ {
360
+ return mLength != 0;
361
+ }
362
+ }
363
+
364
+ class Stack
365
+ {
366
+ mHead = null;
367
+
368
+ function push(data)
369
+ {
370
+ local t = { data = data, next = mHead };
371
+ mHead = t;
372
+ }
373
+
374
+ function pop()
375
+ {
376
+ if(mHead is null)
377
+ throw "Stack.pop() - No items to pop";
378
+
379
+ local item = mHead;
380
+ mHead = mHead.next;
381
+
382
+ return item.data;
383
+ }
384
+
385
+ function hasData()
386
+ {
387
+ return mHead !is null;
388
+ }
389
+ }
390
+
391
+ class Queue
392
+ {
393
+ mHead = null;
394
+ mTail = null;
395
+
396
+ function push(data)
397
+ {
398
+ local t = { data = data, next = null };
399
+
400
+ if(mTail is null)
401
+ {
402
+ mHead = t;
403
+ mTail = t;
404
+ }
405
+ else
406
+ {
407
+ mTail.next = t;
408
+ mTail = t;
409
+ }
410
+ }
411
+
412
+ function pop()
413
+ {
414
+ if(mTail is null)
415
+ throw "Queue.pop() - No items to pop";
416
+
417
+ local item = mHead;
418
+ mHead = mHead.next;
419
+
420
+ if(mHead is null)
421
+ mTail = null;
422
+
423
+ return item.data;
424
+ }
425
+
426
+ function hasData()
427
+ {
428
+ return mHead !is null;
429
+ }
430
+ }
431
+
432
+ writefln("Priority queue (heap)");
433
+
434
+ local prioQ = PQ();
435
+
436
+ for(i : 0 .. 10)
437
+ prioQ.insert(math.rand(0, 20));
438
+
439
+ while(prioQ.hasData())
440
+ writefln(prioQ.remove());
441
+
442
+ writefln();
443
+ writefln("Stack");
444
+
445
+ local stack = Stack();
446
+
447
+ for(i : 0 .. 5)
448
+ stack.push(i + 1);
449
+
450
+ while(stack.hasData())
451
+ writefln(stack.pop());
452
+
453
+ writefln();
454
+ writefln("Queue");
455
+
456
+ local queue = Queue();
457
+
458
+ for(i : 0 .. 5)
459
+ queue.push(i + 1);
460
+
461
+ while(queue.hasData())
462
+ writefln(queue.pop());
463
+
464
+ writefln();
465
+ }
466
+
467
+ // opApply tests.
468
+ {
469
+ class Test
470
+ {
471
+ mData = [4, 5, 6];
472
+
473
+ function opApply(extra)
474
+ {
475
+ if(isString(extra) && extra == "reverse")
476
+ {
477
+ local function iterator_reverse(index)
478
+ {
479
+ index--;
480
+
481
+ if(index < 0)
482
+ return;
483
+
484
+ return index, mData[index];
485
+ }
486
+
487
+ return iterator_reverse, this, #mData;
488
+ }
489
+ else
490
+ {
491
+ local function iterator(index)
492
+ {
493
+ index++;
494
+
495
+ if(index >= #mData)
496
+ return;
497
+
498
+ return index, mData[index];
499
+ }
500
+
501
+ return iterator, this, -1;
502
+ }
503
+ }
504
+ }
505
+
506
+ local test = Test();
507
+
508
+ foreach(k, v; test)
509
+ writefln("test[", k, "] = ", v);
510
+
511
+ writefln();
512
+
513
+ foreach(k, v; test, "reverse")
514
+ writefln("test[", k, "] = ", v);
515
+
516
+ writefln();
517
+
518
+ test =
519
+ {
520
+ fork = 5,
521
+ knife = 10,
522
+ spoon = "hi"
523
+ };
524
+
525
+ foreach(k, v; test)
526
+ writefln("test[", k, "] = ", v);
527
+
528
+ test = [5, 10, "hi"];
529
+
530
+ writefln();
531
+
532
+ foreach(k, v; test)
533
+ writefln("test[", k, "] = ", v);
534
+
535
+ writefln();
536
+
537
+ foreach(k, v; test, "reverse")
538
+ writefln("test[", k, "] = ", v);
539
+
540
+ writefln();
541
+
542
+ foreach(k, v; "hello")
543
+ writefln("str[", k, "] = ", v);
544
+
545
+ writefln();
546
+
547
+ foreach(k, v; "hello", "reverse")
548
+ writefln("str[", k, "] = ", v);
549
+
550
+ writefln();
551
+ }
552
+
553
+ // Testing upvalues in for loops.
554
+ {
555
+ local arr = array.new(10);
556
+
557
+ for(i : 0 .. 10)
558
+ arr[i] = function() { return i; };
559
+
560
+ writefln("This should be the values 0 through 9:");
561
+
562
+ foreach(func; arr)
563
+ writefln(func());
564
+
565
+ writefln();
566
+ }
567
+
568
+ // Testing nested functions.
569
+ {
570
+ function outer()
571
+ {
572
+ local x = 3;
573
+
574
+ function inner()
575
+ {
576
+ x++;
577
+ writefln("inner x: ", x);
578
+ }
579
+
580
+ writefln("outer x: ", x);
581
+ inner();
582
+ writefln("outer x: ", x);
583
+
584
+ return inner;
585
+ }
586
+
587
+ local func = outer();
588
+ func();
589
+
590
+ writefln();
591
+ }
592
+
593
+ // Testing Exceptions.
594
+ {
595
+ function thrower(x)
596
+ {
597
+ if(x >= 3)
598
+ throw "Sorry, x is too big for me!";
599
+ }
600
+
601
+ function tryCatch(iterations)
602
+ {
603
+ try
604
+ {
605
+ for(i : 0 .. iterations)
606
+ {
607
+ writefln("tryCatch: ", i);
608
+ thrower(i);
609
+ }
610
+ }
611
+ catch(e)
612
+ {
613
+ writefln("tryCatch caught: ", e);
614
+ throw e;
615
+ }
616
+ finally
617
+ writefln("tryCatch finally");
618
+ }
619
+
620
+ try
621
+ {
622
+ tryCatch(2);
623
+ tryCatch(5);
624
+ }
625
+ catch(e)
626
+ writefln("caught: ", e);
627
+
628
+ writefln();
629
+ }
630
+
631
+ // Testing arrays.
632
+ {
633
+ local array = [7, 9, 2, 3, 6];
634
+
635
+ array.sort();
636
+
637
+ foreach(i, v; array)
638
+ writefln("arr[", i, "] = ", v);
639
+
640
+ array ~= ["foo", "far"];
641
+
642
+ writefln();
643
+
644
+ foreach(i, v; array)
645
+ writefln("arr[", i, "] = ", v);
646
+
647
+ writefln();
648
+ }
649
+
650
+ // Testing vararg functions.
651
+ {
652
+ function vargs(vararg)
653
+ {
654
+ local args = [vararg];
655
+
656
+ writefln("num varargs: ", #args);
657
+
658
+ foreach(i, v; args)
659
+ writefln("args[", i, "] = ", v);
660
+ }
661
+
662
+ vargs();
663
+
664
+ writefln();
665
+
666
+ vargs(2, 3, 5, "foo", "bar");
667
+
668
+ writefln();
669
+ }
670
+
671
+ // Testing switches.
672
+ {
673
+ foreach(v; ["hi", "bye", "foo"])
674
+ {
675
+ switch(v)
676
+ {
677
+ case "hi":
678
+ writefln("switched to hi");
679
+ break;
680
+
681
+ case "bye":
682
+ writefln("switched to bye");
683
+ break;
684
+
685
+ default:
686
+ writefln("switched to something else");
687
+ break;
688
+ }
689
+ }
690
+
691
+ writefln();
692
+
693
+ foreach(v; [null, false, 1, 2.3, 'x', "hi"])
694
+ {
695
+ switch(v)
696
+ {
697
+ case null: writefln("null"); break;
698
+ case false: writefln("false"); break;
699
+ case 1: writefln("1"); break;
700
+ case 2.3: writefln("2.3"); break;
701
+ case 'x': writefln("x"); break;
702
+ case "hi": writefln("hi"); break;
703
+ }
704
+ }
705
+
706
+ writefln();
707
+
708
+ class A
709
+ {
710
+ mValue;
711
+
712
+ this(value)
713
+ {
714
+ mValue = value;
715
+ }
716
+
717
+ function opCmp(other)
718
+ {
719
+ assert(other as A);
720
+ return mValue <=> other.mValue;
721
+ }
722
+ }
723
+
724
+ local a1 = A(1);
725
+ local a2 = A(2);
726
+ local a3 = A(3);
727
+
728
+ for(s : 1 .. 4)
729
+ {
730
+ local ss = A(s);
731
+
732
+ switch(ss)
733
+ {
734
+ case a1:
735
+ writefln(1);
736
+ break;
737
+
738
+ case a2:
739
+ writefln(2);
740
+ break;
741
+
742
+ case a3:
743
+ writefln(3);
744
+ break;
745
+ }
746
+ }
747
+ }