pygments.rb 0.6.3 → 1.0.0

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 (606) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +6 -6
  4. data/Rakefile +2 -1
  5. data/cache-lexers.rb +1 -1
  6. data/circle.yml +7 -0
  7. data/lib/pygments/lexer.rb +3 -3
  8. data/lib/pygments/popen.rb +67 -30
  9. data/lib/pygments/version.rb +1 -1
  10. data/pygments.rb.gemspec +2 -1
  11. data/test/test_pygments.rb +16 -16
  12. data/vendor/pygments-main/AUTHORS +54 -8
  13. data/vendor/pygments-main/CHANGES +247 -25
  14. data/vendor/pygments-main/LICENSE +1 -1
  15. data/vendor/pygments-main/Makefile +15 -6
  16. data/vendor/pygments-main/README.rst +39 -0
  17. data/vendor/pygments-main/REVISION +1 -1
  18. data/vendor/pygments-main/TODO +0 -3
  19. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +1 -1
  20. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +1 -1
  21. data/vendor/pygments-main/doc/conf.py +3 -11
  22. data/vendor/pygments-main/doc/docs/api.rst +15 -0
  23. data/vendor/pygments-main/doc/docs/cmdline.rst +6 -2
  24. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +4 -3
  25. data/vendor/pygments-main/doc/docs/integrate.rst +11 -15
  26. data/vendor/pygments-main/doc/docs/java.rst +7 -7
  27. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +258 -171
  28. data/vendor/pygments-main/doc/docs/lexers.rst +2 -2
  29. data/vendor/pygments-main/doc/docs/styles.rst +58 -0
  30. data/vendor/pygments-main/doc/docs/tokens.rst +22 -2
  31. data/vendor/pygments-main/doc/docs/unicode.rst +15 -7
  32. data/vendor/pygments-main/doc/faq.rst +17 -21
  33. data/vendor/pygments-main/doc/index.rst +12 -11
  34. data/vendor/pygments-main/doc/languages.rst +10 -7
  35. data/vendor/pygments-main/external/autopygmentize +9 -6
  36. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +70 -52
  37. data/vendor/pygments-main/external/markdown-processor.py +1 -1
  38. data/vendor/pygments-main/external/moin-parser.py +1 -1
  39. data/vendor/pygments-main/external/rst-directive.py +1 -1
  40. data/vendor/pygments-main/pygmentize +2 -1
  41. data/vendor/pygments-main/pygments/__init__.py +14 -15
  42. data/vendor/pygments-main/pygments/cmdline.py +188 -113
  43. data/vendor/pygments-main/pygments/console.py +13 -13
  44. data/vendor/pygments-main/pygments/filter.py +7 -7
  45. data/vendor/pygments-main/pygments/filters/__init__.py +24 -32
  46. data/vendor/pygments-main/pygments/formatter.py +5 -5
  47. data/vendor/pygments-main/pygments/formatters/__init__.py +92 -44
  48. data/vendor/pygments-main/pygments/formatters/_mapping.py +51 -69
  49. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  50. data/vendor/pygments-main/pygments/formatters/html.py +63 -51
  51. data/vendor/pygments-main/pygments/formatters/img.py +25 -22
  52. data/vendor/pygments-main/pygments/formatters/irc.py +182 -0
  53. data/vendor/pygments-main/pygments/formatters/latex.py +34 -22
  54. data/vendor/pygments-main/pygments/formatters/other.py +5 -7
  55. data/vendor/pygments-main/pygments/formatters/rtf.py +28 -31
  56. data/vendor/pygments-main/pygments/formatters/svg.py +1 -2
  57. data/vendor/pygments-main/pygments/formatters/terminal.py +29 -45
  58. data/vendor/pygments-main/pygments/formatters/terminal256.py +118 -31
  59. data/vendor/pygments-main/pygments/lexer.py +120 -34
  60. data/vendor/pygments-main/pygments/lexers/__init__.py +85 -53
  61. data/vendor/pygments-main/pygments/lexers/{_asybuiltins.py → _asy_builtins.py} +7 -7
  62. data/vendor/pygments-main/pygments/lexers/{_clbuiltins.py → _cl_builtins.py} +17 -17
  63. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +72 -0
  64. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1346 -0
  65. data/vendor/pygments-main/pygments/lexers/{_lassobuiltins.py → _lasso_builtins.py} +4699 -4561
  66. data/vendor/pygments-main/pygments/lexers/{_luabuiltins.py → _lua_builtins.py} +91 -51
  67. data/vendor/pygments-main/pygments/lexers/_mapping.py +342 -242
  68. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1172 -0
  69. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +2547 -0
  70. data/vendor/pygments-main/pygments/lexers/{_phpbuiltins.py → _php_builtins.py} +350 -353
  71. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +600 -212
  72. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3084 -30
  73. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1163 -0
  74. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +91 -13
  75. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +419 -0
  76. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1004 -0
  77. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1939 -0
  78. data/vendor/pygments-main/pygments/lexers/actionscript.py +240 -0
  79. data/vendor/pygments-main/pygments/lexers/agile.py +14 -2542
  80. data/vendor/pygments-main/pygments/lexers/algebra.py +221 -0
  81. data/vendor/pygments-main/pygments/lexers/ambient.py +76 -0
  82. data/vendor/pygments-main/pygments/lexers/ampl.py +87 -0
  83. data/vendor/pygments-main/pygments/lexers/apl.py +101 -0
  84. data/vendor/pygments-main/pygments/lexers/archetype.py +318 -0
  85. data/vendor/pygments-main/pygments/lexers/asm.py +276 -81
  86. data/vendor/pygments-main/pygments/lexers/automation.py +374 -0
  87. data/vendor/pygments-main/pygments/lexers/basic.py +500 -0
  88. data/vendor/pygments-main/pygments/lexers/bibtex.py +156 -0
  89. data/vendor/pygments-main/pygments/lexers/business.py +594 -0
  90. data/vendor/pygments-main/pygments/lexers/c_cpp.py +252 -0
  91. data/vendor/pygments-main/pygments/lexers/c_like.py +541 -0
  92. data/vendor/pygments-main/pygments/lexers/capnproto.py +79 -0
  93. data/vendor/pygments-main/pygments/lexers/chapel.py +101 -0
  94. data/vendor/pygments-main/pygments/lexers/clean.py +288 -0
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +24 -5182
  96. data/vendor/pygments-main/pygments/lexers/configs.py +833 -0
  97. data/vendor/pygments-main/pygments/lexers/console.py +114 -0
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +384 -0
  99. data/vendor/pygments-main/pygments/lexers/csound.py +366 -0
  100. data/vendor/pygments-main/pygments/lexers/css.py +689 -0
  101. data/vendor/pygments-main/pygments/lexers/d.py +251 -0
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +6 -6
  103. data/vendor/pygments-main/pygments/lexers/data.py +555 -0
  104. data/vendor/pygments-main/pygments/lexers/diff.py +165 -0
  105. data/vendor/pygments-main/pygments/lexers/dotnet.py +96 -88
  106. data/vendor/pygments-main/pygments/lexers/dsls.py +878 -0
  107. data/vendor/pygments-main/pygments/lexers/dylan.py +289 -0
  108. data/vendor/pygments-main/pygments/lexers/ecl.py +125 -0
  109. data/vendor/pygments-main/pygments/lexers/eiffel.py +65 -0
  110. data/vendor/pygments-main/pygments/lexers/elm.py +121 -0
  111. data/vendor/pygments-main/pygments/lexers/erlang.py +533 -0
  112. data/vendor/pygments-main/pygments/lexers/esoteric.py +275 -0
  113. data/vendor/pygments-main/pygments/lexers/ezhil.py +68 -0
  114. data/vendor/pygments-main/pygments/lexers/factor.py +344 -0
  115. data/vendor/pygments-main/pygments/lexers/fantom.py +250 -0
  116. data/vendor/pygments-main/pygments/lexers/felix.py +273 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +177 -0
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +205 -0
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
  120. data/vendor/pygments-main/pygments/lexers/functional.py +11 -3661
  121. data/vendor/pygments-main/pygments/lexers/go.py +101 -0
  122. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +213 -0
  123. data/vendor/pygments-main/pygments/lexers/graph.py +7 -8
  124. data/vendor/pygments-main/pygments/lexers/graphics.py +553 -0
  125. data/vendor/pygments-main/pygments/lexers/haskell.py +840 -0
  126. data/vendor/pygments-main/pygments/lexers/haxe.py +936 -0
  127. data/vendor/pygments-main/pygments/lexers/hdl.py +172 -145
  128. data/vendor/pygments-main/pygments/lexers/hexdump.py +97 -0
  129. data/vendor/pygments-main/pygments/lexers/html.py +602 -0
  130. data/vendor/pygments-main/pygments/lexers/idl.py +270 -0
  131. data/vendor/pygments-main/pygments/lexers/igor.py +288 -0
  132. data/vendor/pygments-main/pygments/lexers/inferno.py +3 -3
  133. data/vendor/pygments-main/pygments/lexers/installers.py +322 -0
  134. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1343 -0
  135. data/vendor/pygments-main/pygments/lexers/iolang.py +63 -0
  136. data/vendor/pygments-main/pygments/lexers/j.py +146 -0
  137. data/vendor/pygments-main/pygments/lexers/javascript.py +1506 -0
  138. data/vendor/pygments-main/pygments/lexers/julia.py +333 -0
  139. data/vendor/pygments-main/pygments/lexers/jvm.py +232 -186
  140. data/vendor/pygments-main/pygments/lexers/lisp.py +2621 -0
  141. data/vendor/pygments-main/pygments/lexers/make.py +202 -0
  142. data/vendor/pygments-main/pygments/lexers/markup.py +595 -0
  143. data/vendor/pygments-main/pygments/lexers/math.py +11 -2276
  144. data/vendor/pygments-main/pygments/lexers/matlab.py +663 -0
  145. data/vendor/pygments-main/pygments/lexers/ml.py +769 -0
  146. data/vendor/pygments-main/pygments/lexers/modeling.py +358 -0
  147. data/vendor/pygments-main/pygments/lexers/modula2.py +1561 -0
  148. data/vendor/pygments-main/pygments/lexers/monte.py +203 -0
  149. data/vendor/pygments-main/pygments/lexers/ncl.py +1053 -0
  150. data/vendor/pygments-main/pygments/lexers/nimrod.py +159 -0
  151. data/vendor/pygments-main/pygments/lexers/nit.py +64 -0
  152. data/vendor/pygments-main/pygments/lexers/nix.py +136 -0
  153. data/vendor/pygments-main/pygments/lexers/oberon.py +105 -0
  154. data/vendor/pygments-main/pygments/lexers/objective.py +504 -0
  155. data/vendor/pygments-main/pygments/lexers/ooc.py +85 -0
  156. data/vendor/pygments-main/pygments/lexers/other.py +30 -4481
  157. data/vendor/pygments-main/pygments/lexers/parasail.py +79 -0
  158. data/vendor/pygments-main/pygments/lexers/parsers.py +171 -114
  159. data/vendor/pygments-main/pygments/lexers/pascal.py +644 -0
  160. data/vendor/pygments-main/pygments/lexers/pawn.py +199 -0
  161. data/vendor/pygments-main/pygments/lexers/perl.py +616 -0
  162. data/vendor/pygments-main/pygments/lexers/php.py +267 -0
  163. data/vendor/pygments-main/pygments/lexers/praat.py +294 -0
  164. data/vendor/pygments-main/pygments/lexers/prolog.py +306 -0
  165. data/vendor/pygments-main/pygments/lexers/python.py +938 -0
  166. data/vendor/pygments-main/pygments/lexers/qvt.py +152 -0
  167. data/vendor/pygments-main/pygments/lexers/r.py +453 -0
  168. data/vendor/pygments-main/pygments/lexers/rdf.py +195 -24
  169. data/vendor/pygments-main/pygments/lexers/rebol.py +431 -0
  170. data/vendor/pygments-main/pygments/lexers/resource.py +85 -0
  171. data/vendor/pygments-main/pygments/lexers/rnc.py +67 -0
  172. data/vendor/pygments-main/pygments/lexers/roboconf.py +82 -0
  173. data/vendor/pygments-main/pygments/lexers/{_robotframeworklexer.py → robotframework.py} +20 -18
  174. data/vendor/pygments-main/pygments/lexers/ruby.py +519 -0
  175. data/vendor/pygments-main/pygments/lexers/rust.py +209 -0
  176. data/vendor/pygments-main/pygments/lexers/sas.py +228 -0
  177. data/vendor/pygments-main/pygments/lexers/scripting.py +1222 -0
  178. data/vendor/pygments-main/pygments/lexers/shell.py +478 -115
  179. data/vendor/pygments-main/pygments/lexers/smalltalk.py +195 -0
  180. data/vendor/pygments-main/pygments/lexers/smv.py +75 -0
  181. data/vendor/pygments-main/pygments/lexers/snobol.py +83 -0
  182. data/vendor/pygments-main/pygments/lexers/special.py +6 -2
  183. data/vendor/pygments-main/pygments/lexers/sql.py +209 -120
  184. data/vendor/pygments-main/pygments/lexers/stata.py +106 -0
  185. data/vendor/pygments-main/pygments/lexers/supercollider.py +90 -0
  186. data/vendor/pygments-main/pygments/lexers/tcl.py +145 -0
  187. data/vendor/pygments-main/pygments/lexers/templates.py +282 -90
  188. data/vendor/pygments-main/pygments/lexers/testing.py +207 -0
  189. data/vendor/pygments-main/pygments/lexers/text.py +15 -2045
  190. data/vendor/pygments-main/pygments/lexers/textedit.py +169 -0
  191. data/vendor/pygments-main/pygments/lexers/textfmts.py +297 -0
  192. data/vendor/pygments-main/pygments/lexers/theorem.py +458 -0
  193. data/vendor/pygments-main/pygments/lexers/trafficscript.py +54 -0
  194. data/vendor/pygments-main/pygments/lexers/typoscript.py +225 -0
  195. data/vendor/pygments-main/pygments/lexers/urbi.py +133 -0
  196. data/vendor/pygments-main/pygments/lexers/varnish.py +190 -0
  197. data/vendor/pygments-main/pygments/lexers/verification.py +111 -0
  198. data/vendor/pygments-main/pygments/lexers/web.py +13 -4499
  199. data/vendor/pygments-main/pygments/lexers/webmisc.py +979 -0
  200. data/vendor/pygments-main/pygments/lexers/whiley.py +117 -0
  201. data/vendor/pygments-main/pygments/lexers/x10.py +69 -0
  202. data/vendor/pygments-main/pygments/modeline.py +5 -2
  203. data/vendor/pygments-main/pygments/plugin.py +1 -1
  204. data/vendor/pygments-main/pygments/regexopt.py +92 -0
  205. data/vendor/pygments-main/pygments/scanner.py +3 -2
  206. data/vendor/pygments-main/pygments/sphinxext.py +11 -6
  207. data/vendor/pygments-main/pygments/style.py +41 -4
  208. data/vendor/pygments-main/pygments/styles/__init__.py +5 -1
  209. data/vendor/pygments-main/pygments/styles/algol.py +63 -0
  210. data/vendor/pygments-main/pygments/styles/algol_nu.py +63 -0
  211. data/vendor/pygments-main/pygments/styles/arduino.py +98 -0
  212. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  213. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  214. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  215. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  216. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  217. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  218. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  219. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  220. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  221. data/vendor/pygments-main/pygments/styles/lovelace.py +97 -0
  222. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  223. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  224. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  225. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  226. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  227. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  228. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  229. data/vendor/pygments-main/pygments/styles/perldoc.py +2 -2
  230. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  231. data/vendor/pygments-main/pygments/styles/sas.py +41 -0
  232. data/vendor/pygments-main/pygments/styles/stata.py +37 -0
  233. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  234. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  238. data/vendor/pygments-main/pygments/token.py +31 -16
  239. data/vendor/pygments-main/pygments/unistring.py +141 -65
  240. data/vendor/pygments-main/pygments/util.py +129 -33
  241. data/vendor/pygments-main/requirements.txt +5 -0
  242. data/vendor/pygments-main/scripts/check_sources.py +25 -40
  243. data/vendor/pygments-main/scripts/debug_lexer.py +246 -0
  244. data/vendor/pygments-main/scripts/find_error.py +1 -0
  245. data/vendor/pygments-main/scripts/get_vimkw.py +35 -4
  246. data/vendor/pygments-main/setup.cfg +3 -0
  247. data/vendor/pygments-main/setup.py +17 -30
  248. data/vendor/pygments-main/tox.ini +7 -0
  249. metadata +159 -387
  250. data/vendor/pygments-main/ez_setup.py +0 -382
  251. data/vendor/pygments-main/pygments/lexers/_cocoabuiltins.py +0 -73
  252. data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +0 -562
  253. data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +0 -1077
  254. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +0 -13
  255. data/vendor/pygments-main/pygments/lexers/qbasic.py +0 -157
  256. data/vendor/pygments-main/scripts/find_codetags.py +0 -213
  257. data/vendor/pygments-main/scripts/find_error.py +0 -173
  258. data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +0 -37
  259. data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +0 -869
  260. data/vendor/pygments-main/tests/dtds/HTML4.dcl +0 -88
  261. data/vendor/pygments-main/tests/dtds/HTML4.dtd +0 -1092
  262. data/vendor/pygments-main/tests/dtds/HTML4.soc +0 -9
  263. data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +0 -195
  264. data/vendor/pygments-main/tests/dtds/HTMLspec.ent +0 -77
  265. data/vendor/pygments-main/tests/dtds/HTMLsym.ent +0 -241
  266. data/vendor/pygments-main/tests/examplefiles/99_bottles_of_beer.chpl +0 -118
  267. data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +0 -209
  268. data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +0 -102
  269. data/vendor/pygments-main/tests/examplefiles/BOM.js +0 -1
  270. data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +0 -611
  271. data/vendor/pygments-main/tests/examplefiles/Config.in.cache +0 -1973
  272. data/vendor/pygments-main/tests/examplefiles/Constants.mo +0 -158
  273. data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +0 -411
  274. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +0 -578
  275. data/vendor/pygments-main/tests/examplefiles/Error.pmod +0 -38
  276. data/vendor/pygments-main/tests/examplefiles/Errors.scala +0 -18
  277. data/vendor/pygments-main/tests/examplefiles/FakeFile.pike +0 -360
  278. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +0 -66
  279. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +0 -104
  280. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +0 -671
  281. data/vendor/pygments-main/tests/examplefiles/Intro.java +0 -1660
  282. data/vendor/pygments-main/tests/examplefiles/Makefile +0 -1131
  283. data/vendor/pygments-main/tests/examplefiles/Object.st +0 -4394
  284. data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +0 -584
  285. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +0 -23
  286. data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +0 -378
  287. data/vendor/pygments-main/tests/examplefiles/Sorting.mod +0 -470
  288. data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +0 -382
  289. data/vendor/pygments-main/tests/examplefiles/addressbook.proto +0 -30
  290. data/vendor/pygments-main/tests/examplefiles/antlr_ANTLRv3.g +0 -608
  291. data/vendor/pygments-main/tests/examplefiles/antlr_throws +0 -1
  292. data/vendor/pygments-main/tests/examplefiles/apache2.conf +0 -393
  293. data/vendor/pygments-main/tests/examplefiles/as3_test.as +0 -143
  294. data/vendor/pygments-main/tests/examplefiles/as3_test2.as +0 -46
  295. data/vendor/pygments-main/tests/examplefiles/as3_test3.as +0 -3
  296. data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +0 -27
  297. data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +0 -25
  298. data/vendor/pygments-main/tests/examplefiles/badcase.java +0 -2
  299. data/vendor/pygments-main/tests/examplefiles/batchfile.bat +0 -49
  300. data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +0 -308
  301. data/vendor/pygments-main/tests/examplefiles/boot-9.scm +0 -1557
  302. data/vendor/pygments-main/tests/examplefiles/ca65_example +0 -284
  303. data/vendor/pygments-main/tests/examplefiles/cbmbas_example +0 -9
  304. data/vendor/pygments-main/tests/examplefiles/cells.ps +0 -515
  305. data/vendor/pygments-main/tests/examplefiles/ceval.c +0 -2604
  306. data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +0 -13
  307. data/vendor/pygments-main/tests/examplefiles/classes.dylan +0 -125
  308. data/vendor/pygments-main/tests/examplefiles/clojure-weird-keywords.clj +0 -5
  309. data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +0 -10
  310. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +0 -447
  311. data/vendor/pygments-main/tests/examplefiles/core.cljs +0 -52
  312. data/vendor/pygments-main/tests/examplefiles/database.pytb +0 -20
  313. data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +0 -2461
  314. data/vendor/pygments-main/tests/examplefiles/demo.ahk +0 -181
  315. data/vendor/pygments-main/tests/examplefiles/demo.cfm +0 -50
  316. data/vendor/pygments-main/tests/examplefiles/demo.hbs +0 -12
  317. data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +0 -68
  318. data/vendor/pygments-main/tests/examplefiles/dwarf.cw +0 -17
  319. data/vendor/pygments-main/tests/examplefiles/ember.handlebars +0 -33
  320. data/vendor/pygments-main/tests/examplefiles/erl_session +0 -10
  321. data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +0 -1
  322. data/vendor/pygments-main/tests/examplefiles/evil_regex.js +0 -48
  323. data/vendor/pygments-main/tests/examplefiles/example.Rd +0 -78
  324. data/vendor/pygments-main/tests/examplefiles/example.als +0 -217
  325. data/vendor/pygments-main/tests/examplefiles/example.bug +0 -54
  326. data/vendor/pygments-main/tests/examplefiles/example.c +0 -2080
  327. data/vendor/pygments-main/tests/examplefiles/example.ceylon +0 -52
  328. data/vendor/pygments-main/tests/examplefiles/example.chai +0 -6
  329. data/vendor/pygments-main/tests/examplefiles/example.clay +0 -33
  330. data/vendor/pygments-main/tests/examplefiles/example.cls +0 -15
  331. data/vendor/pygments-main/tests/examplefiles/example.cob +0 -3556
  332. data/vendor/pygments-main/tests/examplefiles/example.coffee +0 -27
  333. data/vendor/pygments-main/tests/examplefiles/example.cpp +0 -2363
  334. data/vendor/pygments-main/tests/examplefiles/example.e +0 -124
  335. data/vendor/pygments-main/tests/examplefiles/example.f90 +0 -8
  336. data/vendor/pygments-main/tests/examplefiles/example.feature +0 -16
  337. data/vendor/pygments-main/tests/examplefiles/example.gd +0 -23
  338. data/vendor/pygments-main/tests/examplefiles/example.gi +0 -64
  339. data/vendor/pygments-main/tests/examplefiles/example.groovy +0 -2
  340. data/vendor/pygments-main/tests/examplefiles/example.gs +0 -106
  341. data/vendor/pygments-main/tests/examplefiles/example.gst +0 -7
  342. data/vendor/pygments-main/tests/examplefiles/example.hs +0 -27
  343. data/vendor/pygments-main/tests/examplefiles/example.hx +0 -185
  344. data/vendor/pygments-main/tests/examplefiles/example.i6t +0 -32
  345. data/vendor/pygments-main/tests/examplefiles/example.i7x +0 -45
  346. data/vendor/pygments-main/tests/examplefiles/example.inf +0 -374
  347. data/vendor/pygments-main/tests/examplefiles/example.j +0 -564
  348. data/vendor/pygments-main/tests/examplefiles/example.jag +0 -48
  349. data/vendor/pygments-main/tests/examplefiles/example.java +0 -16
  350. data/vendor/pygments-main/tests/examplefiles/example.kal +0 -75
  351. data/vendor/pygments-main/tests/examplefiles/example.kt +0 -47
  352. data/vendor/pygments-main/tests/examplefiles/example.lagda +0 -19
  353. data/vendor/pygments-main/tests/examplefiles/example.liquid +0 -42
  354. data/vendor/pygments-main/tests/examplefiles/example.lua +0 -250
  355. data/vendor/pygments-main/tests/examplefiles/example.ma +0 -8
  356. data/vendor/pygments-main/tests/examplefiles/example.monkey +0 -152
  357. data/vendor/pygments-main/tests/examplefiles/example.moo +0 -26
  358. data/vendor/pygments-main/tests/examplefiles/example.moon +0 -629
  359. data/vendor/pygments-main/tests/examplefiles/example.mq4 +0 -187
  360. data/vendor/pygments-main/tests/examplefiles/example.mqh +0 -123
  361. data/vendor/pygments-main/tests/examplefiles/example.msc +0 -43
  362. data/vendor/pygments-main/tests/examplefiles/example.ni +0 -57
  363. data/vendor/pygments-main/tests/examplefiles/example.nim +0 -1010
  364. data/vendor/pygments-main/tests/examplefiles/example.nix +0 -80
  365. data/vendor/pygments-main/tests/examplefiles/example.ns2 +0 -69
  366. data/vendor/pygments-main/tests/examplefiles/example.pas +0 -2708
  367. data/vendor/pygments-main/tests/examplefiles/example.pp +0 -8
  368. data/vendor/pygments-main/tests/examplefiles/example.prg +0 -161
  369. data/vendor/pygments-main/tests/examplefiles/example.rb +0 -1852
  370. data/vendor/pygments-main/tests/examplefiles/example.red +0 -257
  371. data/vendor/pygments-main/tests/examplefiles/example.reds +0 -150
  372. data/vendor/pygments-main/tests/examplefiles/example.reg +0 -19
  373. data/vendor/pygments-main/tests/examplefiles/example.rexx +0 -50
  374. data/vendor/pygments-main/tests/examplefiles/example.rhtml +0 -561
  375. data/vendor/pygments-main/tests/examplefiles/example.rkt +0 -743
  376. data/vendor/pygments-main/tests/examplefiles/example.rpf +0 -4
  377. data/vendor/pygments-main/tests/examplefiles/example.sh +0 -22
  378. data/vendor/pygments-main/tests/examplefiles/example.sh-session +0 -19
  379. data/vendor/pygments-main/tests/examplefiles/example.shell-session +0 -45
  380. data/vendor/pygments-main/tests/examplefiles/example.slim +0 -31
  381. data/vendor/pygments-main/tests/examplefiles/example.sls +0 -51
  382. data/vendor/pygments-main/tests/examplefiles/example.sml +0 -156
  383. data/vendor/pygments-main/tests/examplefiles/example.snobol +0 -15
  384. data/vendor/pygments-main/tests/examplefiles/example.stan +0 -110
  385. data/vendor/pygments-main/tests/examplefiles/example.tea +0 -34
  386. data/vendor/pygments-main/tests/examplefiles/example.todotxt +0 -9
  387. data/vendor/pygments-main/tests/examplefiles/example.ts +0 -28
  388. data/vendor/pygments-main/tests/examplefiles/example.u +0 -548
  389. data/vendor/pygments-main/tests/examplefiles/example.weechatlog +0 -9
  390. data/vendor/pygments-main/tests/examplefiles/example.xhtml +0 -376
  391. data/vendor/pygments-main/tests/examplefiles/example.xtend +0 -34
  392. data/vendor/pygments-main/tests/examplefiles/example.yaml +0 -302
  393. data/vendor/pygments-main/tests/examplefiles/example2.aspx +0 -29
  394. data/vendor/pygments-main/tests/examplefiles/example2.msc +0 -79
  395. data/vendor/pygments-main/tests/examplefiles/exampleScript.cfc +0 -241
  396. data/vendor/pygments-main/tests/examplefiles/exampleTag.cfc +0 -18
  397. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +0 -205
  398. data/vendor/pygments-main/tests/examplefiles/example_file.fy +0 -128
  399. data/vendor/pygments-main/tests/examplefiles/firefox.mak +0 -586
  400. data/vendor/pygments-main/tests/examplefiles/flipflop.sv +0 -19
  401. data/vendor/pygments-main/tests/examplefiles/foo.sce +0 -6
  402. data/vendor/pygments-main/tests/examplefiles/format.ml +0 -1213
  403. data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +0 -77
  404. data/vendor/pygments-main/tests/examplefiles/function.mu +0 -1
  405. data/vendor/pygments-main/tests/examplefiles/functional.rst +0 -1472
  406. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +0 -133
  407. data/vendor/pygments-main/tests/examplefiles/genclass.clj +0 -510
  408. data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +0 -193
  409. data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +0 -33
  410. data/vendor/pygments-main/tests/examplefiles/glsl.frag +0 -7
  411. data/vendor/pygments-main/tests/examplefiles/glsl.vert +0 -13
  412. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +0 -22
  413. data/vendor/pygments-main/tests/examplefiles/hash_syntax.rb +0 -5
  414. data/vendor/pygments-main/tests/examplefiles/hello.at +0 -6
  415. data/vendor/pygments-main/tests/examplefiles/hello.golo +0 -5
  416. data/vendor/pygments-main/tests/examplefiles/hello.lsl +0 -12
  417. data/vendor/pygments-main/tests/examplefiles/hello.smali +0 -40
  418. data/vendor/pygments-main/tests/examplefiles/hello.sp +0 -9
  419. data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +0 -1
  420. data/vendor/pygments-main/tests/examplefiles/http_request_example +0 -15
  421. data/vendor/pygments-main/tests/examplefiles/http_response_example +0 -29
  422. data/vendor/pygments-main/tests/examplefiles/hybris_File.hy +0 -174
  423. data/vendor/pygments-main/tests/examplefiles/idl_sample.pro +0 -73
  424. data/vendor/pygments-main/tests/examplefiles/iex_example +0 -23
  425. data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +0 -71
  426. data/vendor/pygments-main/tests/examplefiles/intro.ik +0 -24
  427. data/vendor/pygments-main/tests/examplefiles/ints.php +0 -10
  428. data/vendor/pygments-main/tests/examplefiles/intsyn.fun +0 -675
  429. data/vendor/pygments-main/tests/examplefiles/intsyn.sig +0 -286
  430. data/vendor/pygments-main/tests/examplefiles/irb_heredoc +0 -8
  431. data/vendor/pygments-main/tests/examplefiles/irc.lsp +0 -214
  432. data/vendor/pygments-main/tests/examplefiles/java.properties +0 -16
  433. data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +0 -28
  434. data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +0 -45
  435. data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +0 -713
  436. data/vendor/pygments-main/tests/examplefiles/json.lasso +0 -301
  437. data/vendor/pygments-main/tests/examplefiles/json.lasso9 +0 -213
  438. data/vendor/pygments-main/tests/examplefiles/language.hy +0 -165
  439. data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +0 -13
  440. data/vendor/pygments-main/tests/examplefiles/limbo.b +0 -456
  441. data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +0 -47
  442. data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +0 -43
  443. data/vendor/pygments-main/tests/examplefiles/logos_example.xm +0 -28
  444. data/vendor/pygments-main/tests/examplefiles/ltmain.sh +0 -2849
  445. data/vendor/pygments-main/tests/examplefiles/main.cmake +0 -44
  446. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +0 -679
  447. data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +0 -3
  448. data/vendor/pygments-main/tests/examplefiles/matlab_sample +0 -30
  449. data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +0 -37
  450. data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +0 -455
  451. data/vendor/pygments-main/tests/examplefiles/minehunt.qml +0 -112
  452. data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +0 -4
  453. data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +0 -340
  454. data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +0 -38
  455. data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +0 -95
  456. data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +0 -96
  457. data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +0 -30
  458. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +0 -87
  459. data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +0 -118
  460. data/vendor/pygments-main/tests/examplefiles/numbers.c +0 -12
  461. data/vendor/pygments-main/tests/examplefiles/objc_example.m +0 -179
  462. data/vendor/pygments-main/tests/examplefiles/openedge_example +0 -34
  463. data/vendor/pygments-main/tests/examplefiles/pawn_example +0 -25
  464. data/vendor/pygments-main/tests/examplefiles/perl_misc +0 -62
  465. data/vendor/pygments-main/tests/examplefiles/perl_perl5db +0 -998
  466. data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +0 -120
  467. data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +0 -856
  468. data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +0 -163
  469. data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +0 -567
  470. data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +0 -1223
  471. data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +0 -47
  472. data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +0 -10
  473. data/vendor/pygments-main/tests/examplefiles/psql_session.txt +0 -122
  474. data/vendor/pygments-main/tests/examplefiles/py3_test.txt +0 -2
  475. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +0 -4
  476. data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +0 -14
  477. data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +0 -2
  478. data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +0 -4
  479. data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +0 -234
  480. data/vendor/pygments-main/tests/examplefiles/qbasic_example +0 -2
  481. data/vendor/pygments-main/tests/examplefiles/qsort.prolog +0 -13
  482. data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +0 -38
  483. data/vendor/pygments-main/tests/examplefiles/r6rs-comments.scm +0 -23
  484. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +0 -280
  485. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +0 -2
  486. data/vendor/pygments-main/tests/examplefiles/regex.js +0 -22
  487. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +0 -427
  488. data/vendor/pygments-main/tests/examplefiles/robotframework_test.txt +0 -39
  489. data/vendor/pygments-main/tests/examplefiles/rql-queries.rql +0 -34
  490. data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +0 -11
  491. data/vendor/pygments-main/tests/examplefiles/rust_example.rs +0 -233
  492. data/vendor/pygments-main/tests/examplefiles/scilab.sci +0 -30
  493. data/vendor/pygments-main/tests/examplefiles/scope.cirru +0 -43
  494. data/vendor/pygments-main/tests/examplefiles/session.dylan-console +0 -9
  495. data/vendor/pygments-main/tests/examplefiles/sibling.prolog +0 -19
  496. data/vendor/pygments-main/tests/examplefiles/simple.md +0 -747
  497. data/vendor/pygments-main/tests/examplefiles/smarty_example.html +0 -209
  498. data/vendor/pygments-main/tests/examplefiles/source.lgt +0 -343
  499. data/vendor/pygments-main/tests/examplefiles/sources.list +0 -62
  500. data/vendor/pygments-main/tests/examplefiles/sparql.rq +0 -23
  501. data/vendor/pygments-main/tests/examplefiles/sphere.pov +0 -18
  502. data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +0 -27
  503. data/vendor/pygments-main/tests/examplefiles/squid.conf +0 -30
  504. data/vendor/pygments-main/tests/examplefiles/string.jl +0 -1031
  505. data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +0 -21
  506. data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +0 -3
  507. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +0 -1329
  508. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +0 -225
  509. data/vendor/pygments-main/tests/examplefiles/test.R +0 -185
  510. data/vendor/pygments-main/tests/examplefiles/test.adb +0 -211
  511. data/vendor/pygments-main/tests/examplefiles/test.agda +0 -102
  512. data/vendor/pygments-main/tests/examplefiles/test.apl +0 -26
  513. data/vendor/pygments-main/tests/examplefiles/test.asy +0 -131
  514. data/vendor/pygments-main/tests/examplefiles/test.awk +0 -121
  515. data/vendor/pygments-main/tests/examplefiles/test.bb +0 -95
  516. data/vendor/pygments-main/tests/examplefiles/test.bmx +0 -145
  517. data/vendor/pygments-main/tests/examplefiles/test.boo +0 -39
  518. data/vendor/pygments-main/tests/examplefiles/test.bro +0 -250
  519. data/vendor/pygments-main/tests/examplefiles/test.cs +0 -374
  520. data/vendor/pygments-main/tests/examplefiles/test.css +0 -54
  521. data/vendor/pygments-main/tests/examplefiles/test.cu +0 -36
  522. data/vendor/pygments-main/tests/examplefiles/test.cyp +0 -123
  523. data/vendor/pygments-main/tests/examplefiles/test.d +0 -135
  524. data/vendor/pygments-main/tests/examplefiles/test.dart +0 -23
  525. data/vendor/pygments-main/tests/examplefiles/test.dtd +0 -89
  526. data/vendor/pygments-main/tests/examplefiles/test.ebnf +0 -31
  527. data/vendor/pygments-main/tests/examplefiles/test.ec +0 -605
  528. data/vendor/pygments-main/tests/examplefiles/test.ecl +0 -58
  529. data/vendor/pygments-main/tests/examplefiles/test.eh +0 -315
  530. data/vendor/pygments-main/tests/examplefiles/test.erl +0 -169
  531. data/vendor/pygments-main/tests/examplefiles/test.evoque +0 -33
  532. data/vendor/pygments-main/tests/examplefiles/test.fan +0 -818
  533. data/vendor/pygments-main/tests/examplefiles/test.flx +0 -57
  534. data/vendor/pygments-main/tests/examplefiles/test.gdc +0 -13
  535. data/vendor/pygments-main/tests/examplefiles/test.groovy +0 -97
  536. data/vendor/pygments-main/tests/examplefiles/test.html +0 -339
  537. data/vendor/pygments-main/tests/examplefiles/test.idr +0 -93
  538. data/vendor/pygments-main/tests/examplefiles/test.ini +0 -10
  539. data/vendor/pygments-main/tests/examplefiles/test.java +0 -653
  540. data/vendor/pygments-main/tests/examplefiles/test.jsp +0 -24
  541. data/vendor/pygments-main/tests/examplefiles/test.maql +0 -45
  542. data/vendor/pygments-main/tests/examplefiles/test.mask +0 -41
  543. data/vendor/pygments-main/tests/examplefiles/test.mod +0 -374
  544. data/vendor/pygments-main/tests/examplefiles/test.moo +0 -51
  545. data/vendor/pygments-main/tests/examplefiles/test.myt +0 -166
  546. data/vendor/pygments-main/tests/examplefiles/test.nim +0 -93
  547. data/vendor/pygments-main/tests/examplefiles/test.opa +0 -10
  548. data/vendor/pygments-main/tests/examplefiles/test.p6 +0 -252
  549. data/vendor/pygments-main/tests/examplefiles/test.pan +0 -54
  550. data/vendor/pygments-main/tests/examplefiles/test.pas +0 -743
  551. data/vendor/pygments-main/tests/examplefiles/test.php +0 -507
  552. data/vendor/pygments-main/tests/examplefiles/test.pig +0 -148
  553. data/vendor/pygments-main/tests/examplefiles/test.plot +0 -333
  554. data/vendor/pygments-main/tests/examplefiles/test.ps1 +0 -108
  555. data/vendor/pygments-main/tests/examplefiles/test.pwn +0 -253
  556. data/vendor/pygments-main/tests/examplefiles/test.pypylog +0 -1839
  557. data/vendor/pygments-main/tests/examplefiles/test.r3 +0 -114
  558. data/vendor/pygments-main/tests/examplefiles/test.rb +0 -177
  559. data/vendor/pygments-main/tests/examplefiles/test.rhtml +0 -43
  560. data/vendor/pygments-main/tests/examplefiles/test.rsl +0 -111
  561. data/vendor/pygments-main/tests/examplefiles/test.scaml +0 -8
  562. data/vendor/pygments-main/tests/examplefiles/test.ssp +0 -12
  563. data/vendor/pygments-main/tests/examplefiles/test.swift +0 -65
  564. data/vendor/pygments-main/tests/examplefiles/test.tcsh +0 -830
  565. data/vendor/pygments-main/tests/examplefiles/test.vb +0 -407
  566. data/vendor/pygments-main/tests/examplefiles/test.vhdl +0 -161
  567. data/vendor/pygments-main/tests/examplefiles/test.xqy +0 -138
  568. data/vendor/pygments-main/tests/examplefiles/test.xsl +0 -23
  569. data/vendor/pygments-main/tests/examplefiles/test.zep +0 -33
  570. data/vendor/pygments-main/tests/examplefiles/test2.pypylog +0 -120
  571. data/vendor/pygments-main/tests/examplefiles/truncated.pytb +0 -15
  572. data/vendor/pygments-main/tests/examplefiles/type.lisp +0 -1218
  573. data/vendor/pygments-main/tests/examplefiles/underscore.coffee +0 -603
  574. data/vendor/pygments-main/tests/examplefiles/unicode.applescript +0 -5
  575. data/vendor/pygments-main/tests/examplefiles/unicode.go +0 -10
  576. data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +0 -11
  577. data/vendor/pygments-main/tests/examplefiles/unix-io.lid +0 -37
  578. data/vendor/pygments-main/tests/examplefiles/vbnet_test.bas +0 -29
  579. data/vendor/pygments-main/tests/examplefiles/vctreestatus_hg +0 -4
  580. data/vendor/pygments-main/tests/examplefiles/vimrc +0 -21
  581. data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +0 -3
  582. data/vendor/pygments-main/tests/examplefiles/while.pov +0 -13
  583. data/vendor/pygments-main/tests/examplefiles/wiki.factor +0 -384
  584. data/vendor/pygments-main/tests/examplefiles/xml_example +0 -1897
  585. data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +0 -798
  586. data/vendor/pygments-main/tests/run.py +0 -44
  587. data/vendor/pygments-main/tests/string_asserts.py +0 -22
  588. data/vendor/pygments-main/tests/support.py +0 -15
  589. data/vendor/pygments-main/tests/support/tags +0 -36
  590. data/vendor/pygments-main/tests/test_basic_api.py +0 -309
  591. data/vendor/pygments-main/tests/test_cfm.py +0 -46
  592. data/vendor/pygments-main/tests/test_clexer.py +0 -236
  593. data/vendor/pygments-main/tests/test_cmdline.py +0 -106
  594. data/vendor/pygments-main/tests/test_examplefiles.py +0 -110
  595. data/vendor/pygments-main/tests/test_html_formatter.py +0 -180
  596. data/vendor/pygments-main/tests/test_latex_formatter.py +0 -57
  597. data/vendor/pygments-main/tests/test_lexers_other.py +0 -68
  598. data/vendor/pygments-main/tests/test_objectiveclexer.py +0 -81
  599. data/vendor/pygments-main/tests/test_perllexer.py +0 -137
  600. data/vendor/pygments-main/tests/test_qbasiclexer.py +0 -43
  601. data/vendor/pygments-main/tests/test_regexlexer.py +0 -54
  602. data/vendor/pygments-main/tests/test_rtf_formatter.py +0 -109
  603. data/vendor/pygments-main/tests/test_string_asserts.py +0 -39
  604. data/vendor/pygments-main/tests/test_token.py +0 -46
  605. data/vendor/pygments-main/tests/test_using_api.py +0 -40
  606. data/vendor/pygments-main/tests/test_util.py +0 -135
@@ -1,33 +0,0 @@
1
- $overlay{name=site_base}
2
-
3
- $begin{table_row}
4
- $for{ col in row }
5
- <td>${col}</td>\
6
- $else
7
- <td class="empty" colspan="7">empty row</td>
8
- $rof
9
- $end{table_row}
10
-
11
- <table>
12
- $for{ i, row in enumerate(rows) }
13
- <tr$if{i%2} class="odd"$fi> #[ "odd" rows get a special style ]#
14
- $evoque{#table_row}
15
- $evoque{
16
- #table_row
17
- }
18
- $evoque{'#table_row'}
19
- $evoque{ '#table_row', collection=None, quoting="str"}
20
- $evoque{name="#table_row"}
21
- $evoque{name=var_table_row}
22
- $evoque{%#table_row%}
23
- $evoque{% #table_row %}
24
- </tr>
25
- $rof
26
- </table>
27
-
28
- $evoque{disclaimer, collection="legals"}
29
- $evoque{ disclaimer , collection="legals", abc=123}
30
- $evoque{% disclaimer, collection="legals"%}
31
-
32
- $test{% site_base="site.html",
33
- rows=[("a", "b", 3.0, {"one":1}, "<escape-me/>", "i", "j")] %}
@@ -1,818 +0,0 @@
1
- //
2
- // Copyright (c) 2008, Brian Frank and Andy Frank
3
- // Licensed under the Academic Free License version 3.0
4
- //
5
- // History:
6
- // 17 Nov 08 Brian Frank Creation
7
- //
8
-
9
- using compiler
10
-
11
- **
12
- ** JavaBridge is the compiler plugin for bringing Java
13
- ** classes into the Fantom type system.
14
- **
15
- class JavaBridge : CBridge
16
- {
17
-
18
- //////////////////////////////////////////////////////////////////////////
19
- // Constructor
20
- //////////////////////////////////////////////////////////////////////////
21
-
22
- **
23
- ** Construct a JavaBridge for current environment
24
- **
25
- new make(Compiler c, ClassPath cp := ClassPath.makeForCurrent)
26
- : super(c)
27
- {
28
- this.cp = cp
29
- }
30
-
31
- //////////////////////////////////////////////////////////////////////////
32
- // Namespace
33
- //////////////////////////////////////////////////////////////////////////
34
-
35
- **
36
- ** Map a FFI "podName" to a Java package.
37
- **
38
- override CPod resolvePod(Str name, Loc? loc)
39
- {
40
- // the empty package is used to represent primitives
41
- if (name == "") return primitives
42
-
43
- // look for package name in classpatch
44
- classes := cp.classes[name]
45
- if (classes == null)
46
- throw CompilerErr("Java package '$name' not found", loc)
47
-
48
- // map package to JavaPod
49
- return JavaPod(this, name, classes)
50
- }
51
-
52
- **
53
- ** Map class meta-data and Java members to Fantom slots
54
- ** for the specified JavaType.
55
- **
56
- virtual Void loadType(JavaType type, Str:CSlot slots)
57
- {
58
- JavaReflect.loadType(type, slots)
59
- }
60
-
61
- //////////////////////////////////////////////////////////////////////////
62
- // Call Resolution
63
- //////////////////////////////////////////////////////////////////////////
64
-
65
- **
66
- ** Resolve a construction call to a Java constructor.
67
- **
68
- override Expr resolveConstruction(CallExpr call)
69
- {
70
- // if the last argument is an it-block, then we know
71
- // right away that we will not be passing it thru to Java,
72
- // so strip it off to be appended as call to Obj.with
73
- itBlock := call.args.last as ClosureExpr
74
- if (itBlock != null && itBlock.isItBlock)
75
- call.args.removeAt(-1)
76
- else
77
- itBlock = null
78
-
79
- // if this is an interop array like IntArray/int[] use make
80
- // factory otherwise look for Java constructor called <init>
81
- JavaType base := call.target.ctype
82
- if (base.isInteropArray)
83
- call.method = base.method("make")
84
- else
85
- call.method = base.method("<init>")
86
-
87
- // call resolution to deal with overloading
88
- call = resolveCall(call)
89
-
90
- // we need to create an implicit target for the Java runtime
91
- // to perform the new opcode to ensure it is on the stack
92
- // before the args (we don't do this for interop Array classes)
93
- if (!base.isInteropArray)
94
- {
95
- loc := call.loc
96
- call.target = CallExpr.makeWithMethod(loc, null, base.newMethod) { synthetic=true }
97
- }
98
-
99
- // if we stripped an it-block argument,
100
- // add it as trailing call to Obj.with
101
- if (itBlock != null) return itBlock.toWith(call)
102
- return call
103
- }
104
-
105
- **
106
- ** Resolve a construction chain call where a Fantom constructor
107
- ** calls the super-class constructor. Type check the arguments
108
- ** and insert any conversions needed.
109
- **
110
- override Expr resolveConstructorChain(CallExpr call)
111
- {
112
- // we don't allow chaining to a this ctor for Java FFI
113
- if (call.target.id !== ExprId.superExpr)
114
- throw err("Must use super constructor call in Java FFI", call.loc)
115
-
116
- // route to a superclass constructor
117
- JavaType base := call.target.ctype.deref
118
- call.method = base.method("<init>")
119
-
120
- // call resolution to deal with overloading
121
- return resolveCall(call)
122
- }
123
-
124
- **
125
- ** Given a dot operator slot access on the given foreign
126
- ** base type, determine the appopriate slot to use based on
127
- ** whether parens were used
128
- ** base.name => noParens = true
129
- ** base.name() => noParens = false
130
- **
131
- ** In Java a given name could be bound to both a field and
132
- ** a method. In this case we only resolve the field if
133
- ** no parens are used. We also handle the special case of
134
- ** Java annotations here because their element methods are
135
- ** also mapped as Fantom fields (instance based mixin field).
136
- **
137
- override CSlot? resolveSlotAccess(CType base, Str name, Bool noParens)
138
- {
139
- // first try to resolve as a field
140
- field := base.field(name)
141
- if (field != null)
142
- {
143
- // if no () we used and this isn't an annotation field
144
- if (noParens && (field.isStatic || !base.isMixin))
145
- return field
146
-
147
- // if we did find a field, then make sure we use that
148
- // field's parent type to resolve a method (becuase the
149
- // base type might be a sub-class of a Java type in which
150
- // case it is unware of field/method overloads)
151
- return field.parent.method(name)
152
- }
153
-
154
- // lookup method
155
- return base.method(name)
156
- }
157
-
158
- **
159
- ** Resolve a method call: try to find the best match
160
- ** and apply any coercions needed.
161
- **
162
- override CallExpr resolveCall(CallExpr call)
163
- {
164
- // try to match against all the overloaded methods
165
- matches := CallMatch[,]
166
- CMethod? m := call.method
167
- while (m != null)
168
- {
169
- match := matchCall(call, m)
170
- if (match != null) matches.add(match)
171
- m = m is JavaMethod ? ((JavaMethod)m).next : null
172
- }
173
-
174
- // if we have exactly one match use then use that one
175
- if (matches.size == 1) return matches[0].apply(call)
176
-
177
- // if we have multiple matches; resolve to
178
- // most specific match according to JLS rules
179
- // TODO: this does not correct resolve when using Fantom implicit casting
180
- if (matches.size > 1)
181
- {
182
- best := resolveMostSpecific(matches)
183
- if (best != null) return best.apply(call)
184
- }
185
-
186
- // zero or multiple ambiguous matches is a compiler error
187
- s := StrBuf()
188
- s.add(matches.isEmpty ? "Invalid args " : "Ambiguous call ")
189
- s.add(call.name).add("(")
190
- s.add(call.args.join(", ") |Expr arg->Str| { return arg.toTypeStr })
191
- s.add(")")
192
- throw err(s.toStr, call.loc)
193
- }
194
-
195
- **
196
- ** Check if the call matches the specified overload method.
197
- ** If so return method and coerced args otherwise return null.
198
- **
199
- internal CallMatch? matchCall(CallExpr call, CMethod m)
200
- {
201
- // first check if have matching numbers of args and params
202
- args := call.args
203
- if (m.params.size < args.size) return null
204
-
205
- // check if each argument is ok or can be coerced
206
- isErr := false
207
- newArgs := args.dup
208
- m.params.each |CParam p, Int i|
209
- {
210
- if (i >= args.size)
211
- {
212
- // param has a default value, then that is ok
213
- if (!p.hasDefault) isErr = true
214
- }
215
- else
216
- {
217
- // ensure arg fits parameter type (or auto-cast)
218
- newArgs[i] = coerce(args[i], p.paramType) |->| { isErr = true }
219
- }
220
- }
221
- if (isErr) return null
222
- return CallMatch { it.method = m; it.args = newArgs }
223
- }
224
-
225
- **
226
- ** Given a list of overloaed methods find the most specific method
227
- ** according to Java Language Specification 15.11.2.2. The "informal
228
- ** intuition" rule is that a method is more specific than another
229
- ** if the first could be could be passed onto the second one.
230
- **
231
- internal static CallMatch? resolveMostSpecific(CallMatch[] matches)
232
- {
233
- CallMatch? best := matches[0]
234
- for (i:=1; i<matches.size; ++i)
235
- {
236
- x := matches[i]
237
- if (isMoreSpecific(best, x)) { continue }
238
- if (isMoreSpecific(x, best)) { best = x; continue }
239
- return null
240
- }
241
- return best
242
- }
243
-
244
- **
245
- ** Is 'a' more specific than 'b' such that 'a' could be used
246
- ** passed to 'b' without a compile time error.
247
- **
248
- internal static Bool isMoreSpecific(CallMatch a, CallMatch b)
249
- {
250
- return a.method.params.all |CParam ap, Int i->Bool|
251
- {
252
- bp := b.method.params[i]
253
- return ap.paramType.fits(bp.paramType)
254
- }
255
- }
256
-
257
- //////////////////////////////////////////////////////////////////////////
258
- // Overrides
259
- //////////////////////////////////////////////////////////////////////////
260
-
261
- **
262
- ** Called during Inherit step when a Fantom slot overrides a FFI slot.
263
- ** Log and throw compiler error if there is a problem.
264
- **
265
- override Void checkOverride(TypeDef t, CSlot base, SlotDef def)
266
- {
267
- // we don't allow Fantom to override Java methods with multiple
268
- // overloaded versions since the Fantom type system can't actually
269
- // override all the overloaded versions
270
- jslot := base as JavaSlot
271
- if (jslot?.next != null)
272
- throw err("Cannot override Java overloaded method: '$jslot.name'", def.loc)
273
-
274
- // route to method override checking
275
- if (base is JavaMethod && def is MethodDef)
276
- checkMethodOverride(t, base, def)
277
- }
278
-
279
- **
280
- ** Called on method/method overrides in the checkOverride callback.
281
- **
282
- private Void checkMethodOverride(TypeDef t, JavaMethod base, MethodDef def)
283
- {
284
- // bail early if we know things aren't going to work out
285
- if (base.params.size != def.params.size) return
286
-
287
- // if the return type is primitive or Java array and the
288
- // Fantom declaration matches how it is inferred into the Fan
289
- // type system, then just change the return type - the compiler
290
- // will impliclty do all the return coercions
291
- if (isOverrideInferredType(base.returnType, def.returnType))
292
- {
293
- def.ret = def.inheritedRet = base.returnType
294
- }
295
-
296
- // if any of the parameters is a primitive or Java array
297
- // and the Fantom declaration matches how it is inferred into
298
- // the Fantom type type, then change the parameter type to
299
- // the Java override type and make the Fantom type a local
300
- // variable:
301
- // Java: void foo(int a) { ... }
302
- // Fantom: Void foo(Int a) { ... }
303
- // Result: Void foo(int a_$J) { Int a := a_$J; ... }
304
- //
305
- base.params.eachr |CParam bp, Int i|
306
- {
307
- dp := def.paramDefs[i]
308
- if (!isOverrideInferredType(bp.paramType, dp.paramType)) return
309
-
310
- // add local variable: Int bar := bar_$J
311
- local := LocalDefStmt(def.loc)
312
- local.ctype = dp.paramType
313
- local.name = dp.name
314
- local.init = UnknownVarExpr(def.loc, null, dp.name + "_\$J")
315
- def.code.stmts.insert(0, local)
316
-
317
- // rename parameter Int bar -> int bar_$J
318
- dp.name = dp.name + "_\$J"
319
- dp.paramType = bp.paramType
320
- }
321
- }
322
-
323
- **
324
- ** When overriding a Java method check if the base type is
325
- ** is a Java primitive or array and the override definition is
326
- ** matches how the Java type is inferred in the Fantom type system.
327
- ** If we have a match return true and we'll swizzle things in
328
- ** checkMethodOverride.
329
- **
330
- static private Bool isOverrideInferredType(CType base, CType def)
331
- {
332
- // check if base class slot is a JavaType
333
- java := base.toNonNullable as JavaType
334
- if (java != null)
335
- {
336
- // allow primitives is it matches the inferred type
337
- if (java.isPrimitive) return java.inferredAs == def
338
-
339
- // allow arrays if mapped as Foo[] -> Foo?[]?
340
- if (java.isArray) return java.inferredAs == def.toNonNullable && def.isNullable
341
- }
342
- return false
343
- }
344
-
345
- //////////////////////////////////////////////////////////////////////////
346
- // CheckErrors
347
- //////////////////////////////////////////////////////////////////////////
348
-
349
- **
350
- ** Called during CheckErrors step for a type which extends
351
- ** a FFI class or implements any FFI mixins.
352
- **
353
- override Void checkType(TypeDef def)
354
- {
355
- // can't subclass a primitive array like ByteArray/byte[]
356
- if (def.base.deref is JavaType && def.base.deref->isInteropArray)
357
- {
358
- err("Cannot subclass from Java interop array: $def.base", def.loc)
359
- return
360
- }
361
-
362
- // we don't allow deep inheritance of Java classes because
363
- // the Fantom constructor and Java constructor model don't match
364
- // up past one level of inheritance
365
- // NOTE: that that when we remove this restriction we need to
366
- // test how field initialization works because instance$init
367
- // is almost certain to break with the current emit design
368
- javaBase := def.base
369
- while (javaBase != null && !javaBase.isForeign) javaBase = javaBase.base
370
- if (javaBase != null && javaBase !== def.base)
371
- {
372
- err("Cannot subclass Java class more than one level: $javaBase", def.loc)
373
- return
374
- }
375
-
376
- // ensure that when we map Fantom constructors to Java
377
- // constructors that we don't have duplicate signatures
378
- ctors := def.ctorDefs
379
- ctors.each |MethodDef a, Int i|
380
- {
381
- ctors.each |MethodDef b, Int j|
382
- {
383
- if (i > j && areParamsSame(a, b))
384
- err("Duplicate Java FFI constructor signatures: '$b.name' and '$a.name'", a.loc)
385
- }
386
- }
387
- }
388
-
389
- **
390
- ** Do the two methods have the exact same parameter types.
391
- **
392
- static Bool areParamsSame(CMethod a, CMethod b)
393
- {
394
- if (a.params.size != b.params.size) return false
395
- for (i:=0; i<a.params.size; ++i)
396
- {
397
- if (a.params[i].paramType != b.params[i].paramType)
398
- return false
399
- }
400
- return true
401
- }
402
-
403
- //////////////////////////////////////////////////////////////////////////
404
- // Coercion
405
- //////////////////////////////////////////////////////////////////////////
406
-
407
- **
408
- ** Return if we can make the actual type fit the expected
409
- ** type, potentially using a coercion.
410
- **
411
- Bool fits(CType actual, CType expected)
412
- {
413
- // use dummy expression and route to coerce code
414
- dummy := UnknownVarExpr(Loc("dummy"), null, "dummy") { ctype = actual }
415
- fits := true
416
- coerce(dummy, expected) |->| { fits=false }
417
- return fits
418
- }
419
-
420
- **
421
- ** Coerce expression to expected type. If not a type match
422
- ** then run the onErr function.
423
- **
424
- override Expr coerce(Expr expr, CType expected, |->| onErr)
425
- {
426
- // handle easy case
427
- actual := expr.ctype
428
- expected = expected.deref
429
- if (actual == expected) return expr
430
-
431
- // handle null literal
432
- if (expr.id === ExprId.nullLiteral && expected.isNullable)
433
- return expr
434
-
435
- // handle Fantom to Java primitives
436
- if (expected.pod == primitives)
437
- return coerceToPrimitive(expr, expected, onErr)
438
-
439
- // handle Java primitives to Fan
440
- if (actual.pod == primitives)
441
- return coerceFromPrimitive(expr, expected, onErr)
442
-
443
- // handle Java array to Fantom list
444
- if (actual.name[0] == '[')
445
- return coerceFromArray(expr, expected, onErr)
446
-
447
- // handle Fantom list to Java array
448
- if (expected.name[0] == '[')
449
- return coerceToArray(expr, expected, onErr)
450
-
451
- // handle sys::Func -> Java interface
452
- if (actual is FuncType && expected.isMixin && expected.toNonNullable is JavaType)
453
- return coerceFuncToInterface(expr, expected.toNonNullable, onErr)
454
-
455
- // handle special classes and interfaces for built-in Fantom
456
- // classes which actually map directly to Java built-in types
457
- if (actual.isBool && boolTypes.contains(expected.toNonNullable.signature)) return box(expr)
458
- if (actual.isInt && intTypes.contains(expected.toNonNullable.signature)) return box(expr)
459
- if (actual.isFloat && floatTypes.contains(expected.toNonNullable.signature)) return box(expr)
460
- if (actual.isDecimal && decimalTypes.contains(expected.toNonNullable.signature)) return expr
461
- if (actual.isStr && strTypes.contains(expected.toNonNullable.signature)) return expr
462
-
463
- // use normal Fantom coercion behavior
464
- return super.coerce(expr, expected, onErr)
465
- }
466
-
467
- **
468
- ** Ensure value type is boxed.
469
- **
470
- private Expr box(Expr expr)
471
- {
472
- if (expr.ctype.isVal)
473
- return TypeCheckExpr.coerce(expr, expr.ctype.toNullable)
474
- else
475
- return expr
476
- }
477
-
478
- **
479
- ** Coerce a fan expression to a Java primitive (other
480
- ** than the ones we support natively)
481
- **
482
- Expr coerceToPrimitive(Expr expr, JavaType expected, |->| onErr)
483
- {
484
- actual := expr.ctype
485
-
486
- // sys::Int (long) -> int, short, byte
487
- if (actual.isInt && expected.isPrimitiveIntLike)
488
- return TypeCheckExpr.coerce(expr, expected)
489
-
490
- // sys::Float (double) -> float
491
- if (actual.isFloat && expected.isPrimitiveFloat)
492
- return TypeCheckExpr.coerce(expr, expected)
493
-
494
- // no coercion - type error
495
- onErr()
496
- return expr
497
- }
498
-
499
- **
500
- ** Coerce a Java primitive to a Fantom type.
501
- **
502
- Expr coerceFromPrimitive(Expr expr, CType expected, |->| onErr)
503
- {
504
- actual := (JavaType)expr.ctype
505
-
506
- // int, short, byte -> sys::Int (long)
507
- if (actual.isPrimitiveIntLike)
508
- {
509
- if (expected.isInt || expected.isObj)
510
- return TypeCheckExpr.coerce(expr, expected)
511
- }
512
-
513
- // float -> sys::Float (float)
514
- if (actual.isPrimitiveFloat)
515
- {
516
- if (expected.isFloat || expected.isObj)
517
- return TypeCheckExpr.coerce(expr, expected)
518
- }
519
-
520
- // no coercion - type error
521
- onErr()
522
- return expr
523
- }
524
-
525
- **
526
- ** Coerce a Java array to a Fantom list.
527
- **
528
- Expr coerceFromArray(Expr expr, CType expected, |->| onErr)
529
- {
530
- actual := (JavaType)expr.ctype.toNonNullable
531
-
532
- // if expected is array type
533
- if (expected is JavaType && ((JavaType)expected).isArray)
534
- if (actual.arrayOf.fits(((JavaType)expected).arrayOf)) return expr
535
-
536
- // if expected is Obj
537
- if (expected.isObj) return arrayToList(expr, actual.inferredArrayOf)
538
-
539
- // if expected is list type
540
- if (expected.toNonNullable is ListType)
541
- {
542
- expectedOf := ((ListType)expected.toNonNullable).v
543
- if (actual.inferredArrayOf.fits(expectedOf)) return arrayToList(expr, expectedOf)
544
- }
545
-
546
- // no coercion available
547
- onErr()
548
- return expr
549
- }
550
-
551
- **
552
- ** Generate List.make(of, expr) where expr is Object[]
553
- **
554
- private Expr arrayToList(Expr expr, CType of)
555
- {
556
- loc := expr.loc
557
- ofExpr := LiteralExpr(loc, ExprId.typeLiteral, ns.typeType, of)
558
- call := CallExpr.makeWithMethod(loc, null, listMakeFromArray, [ofExpr, expr])
559
- call.synthetic = true
560
- return call
561
- }
562
-
563
- **
564
- ** Coerce a Fantom list to Java array.
565
- **
566
- Expr coerceToArray(Expr expr, CType expected, |->| onErr)
567
- {
568
- loc := expr.loc
569
- expectedOf := ((JavaType)expected.toNonNullable).inferredArrayOf
570
- actual := expr.ctype
571
-
572
- // if actual is list type
573
- if (actual.toNonNullable is ListType)
574
- {
575
- actualOf := ((ListType)actual.toNonNullable).v
576
- if (actualOf.fits(expectedOf))
577
- {
578
- // (Foo[])list.asArray(cls)
579
- clsLiteral := CallExpr.makeWithMethod(loc, null, JavaType.classLiteral(this, expectedOf))
580
- asArray := CallExpr.makeWithMethod(loc, expr, listAsArray, [clsLiteral])
581
- return TypeCheckExpr.coerce(asArray, expected)
582
- }
583
- }
584
-
585
- // no coercion available
586
- onErr()
587
- return expr
588
- }
589
-
590
- **
591
- ** Attempt to coerce a parameterized sys::Func expr to a Java
592
- ** interface if the interface supports exactly one matching method.
593
- **
594
- Expr coerceFuncToInterface(Expr expr, JavaType expected, |->| onErr)
595
- {
596
- // check if we have exactly one abstract method in the expected type
597
- loc := expr.loc
598
- abstracts := expected.methods.findAll |CMethod m->Bool| { return m.isAbstract }
599
- if (abstracts.size != 1) { onErr(); return expr }
600
- method := abstracts.first
601
-
602
- // check if we have a match
603
- FuncType funcType := (FuncType)expr.ctype
604
- if (!isFuncToInterfaceMatch(funcType, method)) { onErr(); return expr }
605
-
606
- // check if we've already generated a wrapper for this combo
607
- key := "${funcType.signature}+${method.qname}"
608
- ctor := funcWrappers[key]
609
- if (ctor == null)
610
- {
611
- ctor = generateFuncToInterfaceWrapper(expr.loc, funcType, expected, method)
612
- funcWrappers[key] = ctor
613
- }
614
-
615
- // replace expr with FuncWrapperX(expr)
616
- call := CallExpr.makeWithMethod(loc, null, ctor, [expr])
617
- call.synthetic = true
618
- return call
619
- }
620
-
621
- **
622
- ** Return if the specified function type can be used to implement
623
- ** the specified interface method.
624
- **
625
- Bool isFuncToInterfaceMatch(FuncType funcType, CMethod method)
626
- {
627
- // sanity check to map to callX method - can't handle more than 8 args
628
- if (method.params.size > 8) return false
629
-
630
- // check if method is match for function; first check is that
631
- // method must supply all the arguments required by the function
632
- if (funcType.params.size > method.params.size) return false
633
-
634
- // check that func return type fits method return
635
- retOk := method.returnType.isVoid || fits(funcType.ret, method.returnType)
636
- if (!retOk) return false
637
-
638
- // check all the method parameters fit the function parameters
639
- paramsOk := funcType.params.all |CType f, Int i->Bool| { return fits(f, method.params[i].paramType) }
640
- if (!paramsOk) return false
641
-
642
- return true
643
- }
644
-
645
- **
646
- ** Generate the wrapper which implements the specified expected interface
647
- ** and overrides the specified method which calls the function.
648
- **
649
- CMethod generateFuncToInterfaceWrapper(Loc loc, FuncType funcType, CType expected, CMethod method)
650
- {
651
- // Fantom: func typed as |Str|
652
- // Java: interface Foo { void bar(String) }
653
- // Result: FuncWrapperX(func)
654
- //
655
- // class FuncWrapperX : Foo
656
- // {
657
- // new make(Func f) { _func = f }
658
- // override Void bar(Str a) { _func.call(a) }
659
- // Func _func
660
- // }
661
-
662
- // generate FuncWrapper class
663
- name := "FuncWrapper" + funcWrappers.size
664
- cls := TypeDef(ns, loc, compiler.types[0].unit, name, FConst.Internal + FConst.Synthetic)
665
- cls.base = ns.objType
666
- cls.mixins = [expected]
667
- addTypeDef(cls)
668
-
669
- // generate FuncWrapper._func field
670
- field := FieldDef(loc, cls)
671
- ((SlotDef)field).name = "_func"
672
- ((DefNode)field).flags = FConst.Private + FConst.Storage + FConst.Synthetic
673
- field.fieldType = funcType
674
- cls.addSlot(field)
675
-
676
- // generate FuncWrapper.make constructor
677
- ctor := MethodDef(loc, cls, "make", FConst.Internal + FConst.Ctor + FConst.Synthetic)
678
- ctor.ret = ns.voidType
679
- ctor.paramDefs = [ParamDef(loc, funcType, "f")]
680
- ctor.code = Block.make(loc)
681
- ctor.code.stmts.add(BinaryExpr.makeAssign(
682
- FieldExpr(loc, ThisExpr(loc), field),
683
- UnknownVarExpr(loc, null, "f")).toStmt)
684
- ctor.code.stmts.add(ReturnStmt.make(loc))
685
- cls.addSlot(ctor)
686
-
687
- // generate FuncWrapper override of abstract method
688
- over := MethodDef(loc, cls, method.name, FConst.Public + FConst.Override + FConst.Synthetic)
689
- over.ret = method.returnType
690
- over.paramDefs = ParamDef[,]
691
- over.code = Block.make(loc)
692
- callArity := "call"
693
- call := CallExpr.makeWithMethod(loc, FieldExpr(loc, ThisExpr(loc), field), funcType.method(callArity))
694
- method.params.each |CParam param, Int i|
695
- {
696
- paramName := "p$i"
697
- over.params.add(ParamDef(loc, param.paramType, paramName))
698
- if (i < funcType.params.size)
699
- call.args.add(UnknownVarExpr(loc, null, paramName))
700
- }
701
- if (method.returnType.isVoid)
702
- over.code.stmts.add(call.toStmt).add(ReturnStmt(loc))
703
- else
704
- over.code.stmts.add(ReturnStmt(loc, call))
705
- cls.addSlot(over)
706
-
707
- // return the ctor which we use for coercion
708
- return ctor
709
- }
710
-
711
- //////////////////////////////////////////////////////////////////////////
712
- // Reflection
713
- //////////////////////////////////////////////////////////////////////////
714
-
715
- **
716
- ** Get a CMethod representation for 'List.make(Type, Object[])'
717
- **
718
- once CMethod listMakeFromArray()
719
- {
720
- return JavaMethod(
721
- this.ns.listType,
722
- "make",
723
- FConst.Public + FConst.Static,
724
- this.ns.listType.toNullable,
725
- [
726
- JavaParam("of", this.ns.typeType),
727
- JavaParam("array", objectArrayType)
728
- ])
729
- }
730
-
731
- **
732
- ** Get a CMethod representation for 'Object[] List.asArray()'
733
- **
734
- once CMethod listAsArray()
735
- {
736
- return JavaMethod(
737
- this.ns.listType,
738
- "asArray",
739
- FConst.Public,
740
- objectArrayType,
741
- [JavaParam("cls", classType)])
742
- }
743
-
744
- **
745
- ** Get a CType representation for 'java.lang.Class'
746
- **
747
- once JavaType classType()
748
- {
749
- return ns.resolveType("[java]java.lang::Class")
750
- }
751
-
752
- **
753
- ** Get a CType representation for 'java.lang.Object[]'
754
- **
755
- once JavaType objectArrayType()
756
- {
757
- return ns.resolveType("[java]java.lang::[Object")
758
- }
759
-
760
- //////////////////////////////////////////////////////////////////////////
761
- // Fields
762
- //////////////////////////////////////////////////////////////////////////
763
-
764
- const static Str[] boolTypes := Str[
765
- "[java]java.io::Serializable",
766
- "[java]java.lang::Comparable",
767
- ]
768
-
769
- const static Str[] intTypes := Str[
770
- "[java]java.lang::Number",
771
- "[java]java.io::Serializable",
772
- "[java]java.lang::Comparable",
773
- ]
774
-
775
- const static Str[] floatTypes := Str[
776
- "[java]java.lang::Number",
777
- "[java]java.io::Serializable",
778
- "[java]java.lang::Comparable",
779
- ]
780
-
781
- const static Str[] decimalTypes := Str[
782
- "[java]java.lang::Number",
783
- "[java]java.io::Serializable",
784
- "[java]java.lang::Comparable",
785
- ]
786
-
787
- const static Str[] strTypes := Str[
788
- "[java]java.io::Serializable",
789
- "[java]java.lang::CharSequence",
790
- "[java]java.lang::Comparable",
791
- ]
792
-
793
- JavaPrimitives primitives := JavaPrimitives(this)
794
- ClassPath cp
795
-
796
- private Str:CMethod funcWrappers := Str:CMethod[:] // funcType+method:ctor
797
-
798
- }
799
-
800
- **************************************************************************
801
- ** CallMatch
802
- **************************************************************************
803
-
804
- internal class CallMatch
805
- {
806
- CallExpr apply(CallExpr call)
807
- {
808
- call.args = args
809
- call.method = method
810
- call.ctype = method.isCtor ? method.parent : method.returnType
811
- return call
812
- }
813
-
814
- override Str toStr() { return method.signature }
815
-
816
- CMethod? method // matched method
817
- Expr[]? args // coerced arguments
818
- }