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,39 @@
1
+ *** Settings ***
2
+ Documentation Simple example demonstrating syntax highlighting.
3
+ Library ExampleLibrary
4
+ Test Setup Keyword argument argument with ${VARIABLE}
5
+
6
+ *** Variables ***
7
+ ${VARIABLE} Variable value
8
+ @{LIST} List variable here
9
+
10
+ *** Test Cases ***
11
+ Keyword-driven example
12
+ Initialize System
13
+ Do Something
14
+ Result Should Be 42
15
+ [Teardown] Cleanup System
16
+
17
+ Data-driven example
18
+ [Template] Keyword
19
+ argument1 argument2
20
+ argument ${VARIABLE}
21
+ @{LIST}
22
+
23
+ Gherkin
24
+ Given system is initialized
25
+ When something is done
26
+ Then result should be "42"
27
+
28
+ | Pipes |
29
+ | | [Documentation] | Also pipe separated format is supported. |
30
+ | | Log | As this example demonstrates. |
31
+
32
+ *** Keywords ***
33
+ Result Should Be
34
+ [Arguments] ${expected}
35
+ ${actual} = Get Value
36
+ Should be Equal ${actual} ${expected}
37
+
38
+ Then result should be "${expected}"
39
+ Result Should Be ${expected}
@@ -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,233 @@
1
+ // Copyright 2012 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ // based on:
12
+ // http://shootout.alioth.debian.org/u32/benchmark.php?test=nbody&lang=java
13
+
14
+ extern mod std;
15
+
16
+ use core::os;
17
+
18
+ // Using sqrt from the standard library is way slower than using libc
19
+ // directly even though std just calls libc, I guess it must be
20
+ // because the the indirection through another dynamic linker
21
+ // stub. Kind of shocking. Might be able to make it faster still with
22
+ // an llvm intrinsic.
23
+ #[nolink]
24
+ extern mod libc {
25
+ #[legacy_exports];
26
+ fn sqrt(n: float) -> float;
27
+ }
28
+
29
+ fn main() {
30
+ let args = os::args();
31
+ let args = if os::getenv(~"RUST_BENCH").is_some() {
32
+ ~[~"", ~"4000000"]
33
+ } else if args.len() <= 1u {
34
+ ~[~"", ~"100000"]
35
+ } else {
36
+ args
37
+ };
38
+ let n = int::from_str(args[1]).get();
39
+ let mut bodies: ~[Body::props] = NBodySystem::make();
40
+ io::println(fmt!("%f", NBodySystem::energy(bodies)));
41
+ let mut i = 0;
42
+ while i < n {
43
+ NBodySystem::advance(bodies, 0.01);
44
+ i += 1;
45
+ }
46
+ io::println(fmt!("%f", NBodySystem::energy(bodies)));
47
+ }
48
+
49
+ mod NBodySystem {
50
+ use Body;
51
+
52
+ pub fn make() -> ~[Body::props] {
53
+ let mut bodies: ~[Body::props] =
54
+ ~[Body::sun(),
55
+ Body::jupiter(),
56
+ Body::saturn(),
57
+ Body::uranus(),
58
+ Body::neptune()];
59
+
60
+ let mut px = 0.0;
61
+ let mut py = 0.0;
62
+ let mut pz = 0.0;
63
+
64
+ let mut i = 0;
65
+ while i < 5 {
66
+ px += bodies[i].vx * bodies[i].mass;
67
+ py += bodies[i].vy * bodies[i].mass;
68
+ pz += bodies[i].vz * bodies[i].mass;
69
+
70
+ i += 1;
71
+ }
72
+
73
+ // side-effecting
74
+ Body::offset_momentum(&mut bodies[0], px, py, pz);
75
+
76
+ return bodies;
77
+ }
78
+
79
+ pub fn advance(bodies: &mut [Body::props], dt: float) {
80
+ let mut i = 0;
81
+ while i < 5 {
82
+ let mut j = i + 1;
83
+ while j < 5 {
84
+ advance_one(&mut bodies[i],
85
+ &mut bodies[j], dt);
86
+ j += 1;
87
+ }
88
+
89
+ i += 1;
90
+ }
91
+
92
+ i = 0;
93
+ while i < 5 {
94
+ move_(&mut bodies[i], dt);
95
+ i += 1;
96
+ }
97
+ }
98
+
99
+ pub fn advance_one(bi: &mut Body::props,
100
+ bj: &mut Body::props,
101
+ dt: float) unsafe {
102
+ let dx = bi.x - bj.x;
103
+ let dy = bi.y - bj.y;
104
+ let dz = bi.z - bj.z;
105
+
106
+ let dSquared = dx * dx + dy * dy + dz * dz;
107
+
108
+ let distance = ::libc::sqrt(dSquared);
109
+ let mag = dt / (dSquared * distance);
110
+
111
+ bi.vx -= dx * bj.mass * mag;
112
+ bi.vy -= dy * bj.mass * mag;
113
+ bi.vz -= dz * bj.mass * mag;
114
+
115
+ bj.vx += dx * bi.mass * mag;
116
+ bj.vy += dy * bi.mass * mag;
117
+ bj.vz += dz * bi.mass * mag;
118
+ }
119
+
120
+ pub fn move_(b: &mut Body::props, dt: float) {
121
+ b.x += dt * b.vx;
122
+ b.y += dt * b.vy;
123
+ b.z += dt * b.vz;
124
+ }
125
+
126
+ pub fn energy(bodies: &[Body::props]) -> float unsafe {
127
+ let mut dx;
128
+ let mut dy;
129
+ let mut dz;
130
+ let mut distance;
131
+ let mut e = 0.0;
132
+
133
+ let mut i = 0;
134
+ while i < 5 {
135
+ e +=
136
+ 0.5 * bodies[i].mass *
137
+ (bodies[i].vx * bodies[i].vx + bodies[i].vy * bodies[i].vy
138
+ + bodies[i].vz * bodies[i].vz);
139
+
140
+ let mut j = i + 1;
141
+ while j < 5 {
142
+ dx = bodies[i].x - bodies[j].x;
143
+ dy = bodies[i].y - bodies[j].y;
144
+ dz = bodies[i].z - bodies[j].z;
145
+
146
+ distance = ::libc::sqrt(dx * dx + dy * dy + dz * dz);
147
+ e -= bodies[i].mass * bodies[j].mass / distance;
148
+
149
+ j += 1;
150
+ }
151
+
152
+ i += 1;
153
+ }
154
+ return e;
155
+
156
+ }
157
+ }
158
+
159
+ mod Body {
160
+ use Body;
161
+
162
+ pub const PI: float = 3.141592653589793;
163
+ pub const SOLAR_MASS: float = 39.478417604357432;
164
+ // was 4 * PI * PI originally
165
+ pub const DAYS_PER_YEAR: float = 365.24;
166
+
167
+ pub type props =
168
+ {mut x: float,
169
+ mut y: float,
170
+ mut z: float,
171
+ mut vx: float,
172
+ mut vy: float,
173
+ mut vz: float,
174
+ mass: float};
175
+
176
+ pub fn jupiter() -> Body::props {
177
+ return {mut x: 4.84143144246472090e+00,
178
+ mut y: -1.16032004402742839e+00,
179
+ mut z: -1.03622044471123109e-01,
180
+ mut vx: 1.66007664274403694e-03 * DAYS_PER_YEAR,
181
+ mut vy: 7.69901118419740425e-03 * DAYS_PER_YEAR,
182
+ mut vz: -6.90460016972063023e-05 * DAYS_PER_YEAR,
183
+ mass: 9.54791938424326609e-04 * SOLAR_MASS};
184
+ }
185
+
186
+ pub fn saturn() -> Body::props {
187
+ return {mut x: 8.34336671824457987e+00,
188
+ mut y: 4.12479856412430479e+00,
189
+ mut z: -4.03523417114321381e-01,
190
+ mut vx: -2.76742510726862411e-03 * DAYS_PER_YEAR,
191
+ mut vy: 4.99852801234917238e-03 * DAYS_PER_YEAR,
192
+ mut vz: 2.30417297573763929e-05 * DAYS_PER_YEAR,
193
+ mass: 2.85885980666130812e-04 * SOLAR_MASS};
194
+ }
195
+
196
+ pub fn uranus() -> Body::props {
197
+ return {mut x: 1.28943695621391310e+01,
198
+ mut y: -1.51111514016986312e+01,
199
+ mut z: -2.23307578892655734e-01,
200
+ mut vx: 2.96460137564761618e-03 * DAYS_PER_YEAR,
201
+ mut vy: 2.37847173959480950e-03 * DAYS_PER_YEAR,
202
+ mut vz: -2.96589568540237556e-05 * DAYS_PER_YEAR,
203
+ mass: 4.36624404335156298e-05 * SOLAR_MASS};
204
+ }
205
+
206
+ pub fn neptune() -> Body::props {
207
+ return {mut x: 1.53796971148509165e+01,
208
+ mut y: -2.59193146099879641e+01,
209
+ mut z: 1.79258772950371181e-01,
210
+ mut vx: 2.68067772490389322e-03 * DAYS_PER_YEAR,
211
+ mut vy: 1.62824170038242295e-03 * DAYS_PER_YEAR,
212
+ mut vz: -9.51592254519715870e-05 * DAYS_PER_YEAR,
213
+ mass: 5.15138902046611451e-05 * SOLAR_MASS};
214
+ }
215
+
216
+ pub fn sun() -> Body::props {
217
+ return {mut x: 0.0,
218
+ mut y: 0.0,
219
+ mut z: 0.0,
220
+ mut vx: 0.0,
221
+ mut vy: 0.0,
222
+ mut vz: 0.0,
223
+ mass: SOLAR_MASS};
224
+ }
225
+
226
+ pub fn offset_momentum(props: &mut Body::props,
227
+ px: float, py: float, pz: float) {
228
+ props.vx = -px / SOLAR_MASS;
229
+ props.vy = -py / SOLAR_MASS;
230
+ props.vz = -pz / SOLAR_MASS;
231
+ }
232
+
233
+ }
@@ -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,9 @@
1
+ ? 7 * 52;
2
+ => 364
3
+ ? define variable *your-variable* = $foo;
4
+ ? begin
5
+ let yours = "apple";
6
+ let mine = yours;
7
+ mine == yours;
8
+ end;
9
+ => #t
@@ -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
+ }