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,382 +0,0 @@
1
- % Copyright 2005 Brian Alliet
2
-
3
- \documentclass[11pt]{article}
4
- \usepackage{palatino}
5
- \usepackage{fullpage}
6
- \usepackage{parskip}
7
- \usepackage{lhs}
8
-
9
- \begin{document}
10
-
11
- \title{Sudoku Solver}
12
- \author{Brian Alliet}
13
- \maketitle
14
-
15
- \ignore{
16
- \begin{code}
17
- module Sudoku (
18
- Sudoku,
19
- makeSudoku, solve, eliminate, analyze, backtrack,
20
- main
21
- ) where
22
-
23
- import Array
24
- import Monad
25
- import List (union,intersperse,transpose,(\\),nub,nubBy)
26
- \end{code}
27
- }
28
-
29
- \section{Introduction}
30
-
31
- This Haskell module implements a solver for Sudoku~\footnote{http://en.wikipedia.org/wiki/Sudoku} puzzles. It can solve
32
- any Sudoku puzzle, even those that require backtracking.
33
-
34
- \section{Data Types}
35
-
36
- \begin{code}
37
- data CellState a = Known a | Unknown [a] | Impossible deriving Eq
38
- \end{code}
39
-
40
- Each cell in a Sudoku grid can be in one of three states: ``Known'' if it has a known correct value~\footnote{Actually
41
- this doesn't always means it is correct. While we are in the backtracking stage we make our guesses ``Known''.},
42
- ``Unknown'' if there is still more than one possible correct value, or ``Impossible'' if there is no value that can
43
- possibly fit the cell. Sudoku grids with ``Impossible'' cells are quickly discarded by the {\tt solve} function.
44
-
45
- \begin{code}
46
- type Coords = (Int,Int)
47
- type Grid a = Array Coords (CellState a)
48
- newtype Sudoku a = Sudoku { unSudoku :: Grid a } deriving Eq
49
- \end{code}
50
-
51
- We represent a Sudoku grid as an Array indexed by integer coordinates. We additionally define a newtype wrapper for the
52
- grid. The smart constructor, {\tt makeSudoku} verifies some invariants before creating the Sudoku value. All the public
53
- API functions operate on the Sudoku type.
54
-
55
- \begin{code}
56
- instance Show a => Show (Sudoku a) where showsPrec p = showParen (p>0) . showsGrid . unSudoku
57
- instance Show a => Show (CellState a) where showsPrec _ = showsCell
58
- \end{code}
59
-
60
- We define {\tt Show} instances for the above types.
61
-
62
- \section{Internal Functions}
63
-
64
- \begin{code}
65
- size :: Grid a -> Int
66
- size = (+1).fst.snd.bounds
67
- \end{code}
68
-
69
- {\tt size} returns the size (the width, height, and number of subboxes) for a Sudoku grid. We ensure Grid's are always
70
- square and indexed starting at $(0,0)$ so simply incrementing either of the array's upper bounds is correct.
71
-
72
- \begin{code}
73
- getRow,getCol,getBox :: Grid a -> Int -> [(Coords,CellState a)]
74
- getRow grid r = [let l = (r,c) in (l,grid!l)|c <- [0..size grid - 1]]
75
- getCol grid c = [let l = (r,c) in (l,grid!l)|r <- [0..size grid - 1]]
76
- getBox grid b = [let l = (r,c) in (l,grid!l)|r <- [boxR..boxR+boxN-1],c <- [boxC..boxC+boxN-1]]
77
- where
78
- boxN = intSqrt (size grid); boxR = b `quot` boxN * boxN; boxC = b `rem` boxN * boxN
79
-
80
- getBoxOf :: Grid a -> Coords -> [(Coords,CellState a)]
81
- getBoxOf grid (r,c) = grid `getBox` ((r `quot` boxN * boxN) + (c `quot` boxN))
82
- where boxN = intSqrt (size grid)
83
- \end{code}
84
-
85
- {\tt getRow}, {\tt getCol}, and {\tt getBox} return the coordinates and values of the cell in row, column, or box
86
- number {\tt n}, {\tt r}, or {\tt b}.
87
-
88
- \begin{code}
89
- getNeighbors :: Eq a => Grid a -> Coords -> [(Coords,CellState a)]
90
- getNeighbors grid l@(r,c) = filter ((/=l).fst)
91
- $ foldr (union.($grid)) []
92
- [(`getRow`r),(`getCol`c),(`getBoxOf`l)]
93
- \end{code}
94
-
95
- {\tt getNeighbors} returns the coordinates and values of all the neighbors of this cell.
96
-
97
- \begin{code}
98
- impossible :: Eq a => Grid a -> Coords -> [a]
99
- impossible grid l = map snd $ justKnowns $ grid `getNeighbors` l
100
- \end{code}
101
-
102
- {\tt impossible} returns a list of impossible values for a given cell. The impossible values consist of the values any
103
- ``Known'' neighbors.
104
-
105
- \begin{code}
106
- justUnknowns :: [(Coords,CellState a)] -> [(Coords,[a])]
107
- justUnknowns = foldr (\c -> case c of (p,Unknown xs) -> ((p,xs):); _ -> id) []
108
-
109
- justKnowns :: [(Coords,CellState a)] -> [(Coords,a)]
110
- justKnowns = foldr (\c -> case c of (p,Known x) -> ((p,x):); _ -> id) []
111
- \end{code}
112
-
113
- {\tt justUnknowns} and {\tt justKnowns} return only the Known or Unknown values (with the constructor stripped off)
114
- from a list of cells.
115
-
116
- \begin{code}
117
- updateGrid :: Grid a -> [(Coords,CellState a)] -> Maybe (Grid a)
118
- updateGrid _ [] = Nothing
119
- updateGrid grid xs = Just $ grid // nubBy (\(x,_) (y,_) -> x==y) xs
120
- \end{code}
121
-
122
- {\tt updateGrid} applies a set of updates to a grid and returns the new grid only if it was updated.
123
-
124
- \section{Public API}
125
-
126
- \begin{code}
127
- makeSudoku :: (Num a, Ord a, Enum a) => [[a]] -> Sudoku a
128
- makeSudoku xs
129
- | not (all ((==size).length) xs) = error "error not a square"
130
- | (intSqrt size)^(2::Int) /= size = error "error dims aren't perfect squares"
131
- | any (\x -> x < 0 || x > fromIntegral size) (concat xs) = error "value out of range"
132
- | otherwise = Sudoku (listArray ((0,0),(size-1,size-1)) states)
133
- where
134
- size = length xs
135
- states = map f (concat xs)
136
- f 0 = Unknown [1..fromIntegral size]
137
- f x = Known x
138
- \end{code}
139
-
140
- {\tt makeSudoku} makes a {\tt Sudoku} value from a list of numbers. The given matrix must be square and have dimensions
141
- that are a perfect square. The possible values for each cell range from 1 to the dimension of the square with ``0''
142
- representing unknown values.\footnote{The rest of the code doesn't depend on any of this weird ``0'' is unknown
143
- representation. In fact, it doesn't depend on numeric values at all. ``0'' is just used here because it makes
144
- representing grids in Haskell source code easier.}
145
-
146
- \begin{code}
147
- eliminate :: Eq a => Sudoku a -> Maybe (Sudoku a)
148
- eliminate (Sudoku grid) = fmap Sudoku $ updateGrid grid changes >>= sanitize
149
- where
150
- changes = concatMap findChange $ assocs grid
151
- findChange (l,Unknown xs)
152
- = map ((,) l)
153
- $ case filter (not.(`elem`impossible grid l)) xs of
154
- [] -> return Impossible
155
- [x] -> return $ Known x
156
- xs'
157
- | xs' /= xs -> return $ Unknown xs'
158
- | otherwise -> mzero
159
- findChange _ = mzero
160
- sanitize grid = return $ grid // [(l,Impossible) |
161
- (l,x) <- justKnowns changes, x `elem` impossible grid l]
162
- \end{code}
163
-
164
- The {\tt eliminate} phase tries to remove possible choices for ``Unknowns'' based on ``Known'' values in the same row,
165
- column, or box as the ``Unknown'' value. For each cell on the grid we find its ``neighbors'', that is, cells in the
166
- same row, column, or box. Out of those neighbors we get a list of all the ``Known'' values. We can eliminate all of
167
- these from our list of candidates for this cell. If we're lucky enough to eliminate all the candidates but one we have
168
- a new ``Known'' value. If we're unlucky enough to have eliminates {\bf all} the possible candidates we have a new
169
- ``Impossible'' value.
170
-
171
- After iterating though every cell we make one more pass looking for conflicting changes. {\tt sanitize} marks cells as
172
- ``Impossible'' if we have conflicting ``Known'' values.
173
-
174
- \begin{code}
175
- analyze :: Eq a => Sudoku a -> Maybe (Sudoku a)
176
- analyze (Sudoku grid) = fmap Sudoku $ updateGrid grid $ nub [u |
177
- f <- map ($grid) [getRow,getCol,getBox],
178
- n <- [0..size grid - 1],
179
- u <- unique (f n)]
180
- where
181
- unique xs = foldr f [] $ foldr (union.snd) [] unknowns \\ map snd (justKnowns xs)
182
- where
183
- unknowns = justUnknowns xs
184
- f c = case filter ((c`elem`).snd) unknowns of
185
- [(p,_)] -> ((p,Known c):)
186
- _ -> id
187
- \end{code}
188
-
189
- The {\tt analyze} phase tries to turn ``Unknowns'' into ``Knowns'' when a certain ``Unknown'' is the only cell that
190
- contains a value needed in a given row, column, or box. We apply each of the functions {\tt getRow}, {\tt getCol}, and
191
- {\tt getBox} to all the indices on the grid, apply {\tt unique} to each group, and update the array with the
192
- results. {\tt unique} gets a list of all the unknown cells in the group and finds all the unknown values in each of
193
- those cells. Each of these values are iterated though looking for a value that is only contained in one cell. If such a
194
- value is found the cell containing it must be that value.
195
-
196
- \begin{code}
197
- backtrack :: (MonadPlus m, Eq a) => Sudoku a -> m (Sudoku a)
198
- backtrack (Sudoku grid) = case (justUnknowns (assocs grid)) of
199
- [] -> return $ Sudoku grid
200
- ((p,xs):_) -> msum $ map (\x -> solve $ Sudoku $ grid // [(p,Known x)]) xs
201
- \end{code}
202
-
203
- Sometimes the above two phases still aren't enough to solve a puzzle. For these rare puzzles backtracking is required.
204
- We attempt to solve the puzzle by replacing the first ``Unknown'' value with each of the candidate values and solving
205
- the resulting puzzles. Hopefully at least one of our choices will result in a solvable puzzle.
206
-
207
- We could actually solve any puzzle using backtracking alone, although this would be very inefficient. The above
208
- functions simplify most puzzles enough that the backtracking phase has to do hardly any work.
209
-
210
- \begin{code}
211
- solve :: (MonadPlus m, Eq a) => Sudoku a -> m (Sudoku a)
212
- solve sudoku =
213
- case eliminate sudoku of
214
- Just new
215
- | any (==Impossible) (elems (unSudoku new))-> mzero
216
- | otherwise -> solve new
217
- Nothing -> case analyze sudoku of
218
- Just new -> solve new
219
- Nothing -> backtrack sudoku
220
- \end{code}
221
-
222
- {\tt solve} glues all the above phases together. First we run the {\tt eliminate} phase. If that found the puzzle to
223
- be unsolvable we abort immediately. If {\tt eliminate} changed the grid we go though the {\tt eliminate} phase again
224
- hoping to eliminate more. Once {\tt eliminate} can do no more work we move on to the {\tt analyze} phase. If this
225
- succeeds in doing some work we start over again with the {\tt eliminate} phase. Once {\tt analyze} can do no more work
226
- we have no choice but to resort to backtracking. (However in most cases backtracking won't actually do anything because
227
- the puzzle is already solved.)
228
-
229
- \begin{code}
230
- showsCell :: Show a => CellState a -> ShowS
231
- showsCell (Known x) = shows x
232
- showsCell (Impossible) = showChar 'X'
233
- showsCell (Unknown xs) = \rest -> ('(':)
234
- $ foldr id (')':rest)
235
- $ intersperse (showChar ' ')
236
- $ map shows xs
237
- \end{code}
238
-
239
- {\tt showCell} shows a cell.
240
-
241
- \begin{code}
242
- showsGrid :: Show a => Grid a -> ShowS
243
- showsGrid grid = showsTable [[grid!(r,c) | c <- [0..size grid-1]] | r <- [0..size grid-1]]
244
- \end{code}
245
-
246
- {\tt showGrid} show a grid.
247
-
248
- \begin{code}
249
- -- FEATURE: This is pretty inefficient
250
- showsTable :: Show a => [[a]] -> ShowS
251
- showsTable xs = (showChar '\n' .) $ showString $ unlines $ map (concat . intersperse " ") xs''
252
- where
253
- xs' = (map.map) show xs
254
- colWidths = map (max 2 . maximum . map length) (transpose xs')
255
- xs'' = map (zipWith (\n s -> s ++ (replicate (n - length s) ' ')) colWidths) xs'
256
- \end{code}
257
-
258
- {\tt showsTable} shows a table (or matrix). Every column has the same width so things line up.
259
-
260
- \begin{code}
261
- intSqrt :: Integral a => a -> a
262
- intSqrt n
263
- | n < 0 = error "intSqrt: negative n"
264
- | otherwise = f n
265
- where
266
- f x = if y < x then f y else x
267
- where y = (x + (n `quot` x)) `quot` 2
268
- \end{code}
269
-
270
- {\tt intSqrt} is Newton`s Iteration for finding integral square roots.
271
-
272
- \ignore{
273
- \begin{code}
274
- test :: Sudoku Int
275
- test = makeSudoku [
276
- [0,6,0,1,0,4,0,5,0],
277
- [0,0,8,3,0,5,6,0,0],
278
- [2,0,0,0,0,0,0,0,1],
279
- [8,0,0,4,0,7,0,0,6],
280
- [0,0,6,0,0,0,3,0,0],
281
- [7,0,0,9,0,1,0,0,4],
282
- [5,0,0,0,0,0,0,0,2],
283
- [0,0,7,2,0,6,9,0,0],
284
- [0,4,0,5,0,8,0,7,0]]
285
-
286
- test2 :: Sudoku Int
287
- test2 = makeSudoku [
288
- [0,7,0,0,0,0,8,0,0],
289
- [0,0,0,2,0,4,0,0,0],
290
- [0,0,6,0,0,0,0,3,0],
291
- [0,0,0,5,0,0,0,0,6],
292
- [9,0,8,0,0,2,0,4,0],
293
- [0,5,0,0,3,0,9,0,0],
294
- [0,0,2,0,8,0,0,6,0],
295
- [0,6,0,9,0,0,7,0,1],
296
- [4,0,0,0,0,3,0,0,0]]
297
-
298
- testSmall :: Sudoku Int
299
- testSmall = makeSudoku [
300
- [1,0,0,0,0,0,0,0,0],
301
- [0,0,2,7,4,0,0,0,0],
302
- [0,0,0,5,0,0,0,0,4],
303
- [0,3,0,0,0,0,0,0,0],
304
- [7,5,0,0,0,0,0,0,0],
305
- [0,0,0,0,0,9,6,0,0],
306
- [0,4,0,0,0,6,0,0,0],
307
- [0,0,0,0,0,0,0,7,1],
308
- [0,0,0,0,0,1,0,3,0]]
309
-
310
- testHard :: Sudoku Int
311
- testHard = makeSudoku [
312
- [0,0,0,8,0,2,0,0,0],
313
- [5,0,0,0,0,0,0,0,1],
314
- [0,0,6,0,5,0,3,0,0],
315
- [0,0,9,0,1,0,8,0,0],
316
- [1,0,0,0,0,0,0,0,2],
317
- [0,0,0,9,0,7,0,0,0],
318
- [0,6,1,0,3,0,7,8,0],
319
- [0,5,0,0,0,0,0,4,0],
320
- [0,7,2,0,4,0,1,5,0]]
321
-
322
- testHard2 :: Sudoku Int
323
- testHard2 = makeSudoku [
324
- [3,0,0,2,0,0,9,0,0],
325
- [0,0,0,0,0,0,0,0,5],
326
- [0,7,0,1,0,4,0,0,0],
327
- [0,0,9,0,0,0,8,0,0],
328
- [5,0,0,0,7,0,0,0,6],
329
- [0,0,1,0,0,0,2,0,0],
330
- [0,0,0,3,0,9,0,4,0],
331
- [8,0,0,0,0,0,0,0,0],
332
- [0,0,6,0,0,5,0,0,7]]
333
-
334
- testHW :: Sudoku Int
335
- testHW = makeSudoku [
336
- [0,0,0,1,0,0,7,0,2],
337
- [0,3,0,9,5,0,0,0,0],
338
- [0,0,1,0,0,2,0,0,3],
339
- [5,9,0,0,0,0,3,0,1],
340
- [0,2,0,0,0,0,0,7,0],
341
- [7,0,3,0,0,0,0,9,8],
342
- [8,0,0,2,0,0,1,0,0],
343
- [0,0,0,0,8,5,0,6,0],
344
- [6,0,5,0,0,9,0,0,0]]
345
-
346
- testTough :: Sudoku Int
347
- testTough = makeSudoku $ map (map read . words) $ lines $
348
- "8 3 0 0 0 0 0 4 6\n"++
349
- "0 2 0 1 0 4 0 3 0\n"++
350
- "0 0 0 0 0 0 0 0 0\n"++
351
- "0 0 2 9 0 6 5 0 0\n"++
352
- "1 4 0 0 0 0 0 2 3\n"++
353
- "0 0 5 4 0 3 1 0 0\n"++
354
- "0 0 0 0 0 0 0 0 0\n"++
355
- "0 6 0 3 0 8 0 7 0\n"++
356
- "9 5 0 0 0 0 0 6 2\n"
357
-
358
- testDiabolical :: Sudoku Int
359
- testDiabolical = makeSudoku $ map (map read . words) $ lines $
360
- "8 0 0 7 0 1 0 0 2\n"++
361
- "0 0 6 0 0 0 7 0 0\n"++
362
- "0 1 7 0 0 0 8 9 0\n"++
363
- "0 0 0 1 7 3 0 0 0\n"++
364
- "7 0 0 0 0 0 0 0 6\n"++
365
- "0 0 0 9 5 6 0 0 0\n"++
366
- "0 9 5 0 0 0 4 1 0\n"++
367
- "0 0 8 0 0 0 5 0 0\n"++
368
- "3 0 0 6 0 5 0 0 7\n"
369
-
370
- main :: IO ()
371
- main = do
372
- let
373
- solve' p = case solve p of
374
- [] -> fail $ "couldn't solve: " ++ show p
375
- sols -> return sols
376
- mapM_ (\p -> solve' p >>= putStrLn.show) [test,test2,testSmall,testHard,testHard2,testHW,testTough,testDiabolical]
377
- return ()
378
-
379
- \end{code}
380
- }
381
-
382
- \end{document}
@@ -1,30 +0,0 @@
1
- // See README.txt for information and build instructions.
2
-
3
- package tutorial;
4
-
5
- option java_package = "com.example.tutorial";
6
- option java_outer_classname = "AddressBookProtos";
7
-
8
- message Person {
9
- required string name = 1;
10
- required int32 id = 2; // Unique ID number for this person.
11
- optional string email = 3;
12
-
13
- enum PhoneType {
14
- MOBILE = 0;
15
- HOME = 1;
16
- WORK = 2;
17
- }
18
-
19
- message PhoneNumber {
20
- required string number = 1;
21
- optional PhoneType type = 2 [default = HOME];
22
- }
23
-
24
- repeated PhoneNumber phone = 4;
25
- }
26
-
27
- // Our address book file is just one of these.
28
- message AddressBook {
29
- repeated Person person = 1;
30
- }
@@ -1,608 +0,0 @@
1
- /*
2
- [The "BSD licence"]
3
- Copyright (c) 2005-2007 Terence Parr
4
- All rights reserved.
5
-
6
- Redistribution and use in source and binary forms, with or without
7
- modification, are permitted provided that the following conditions
8
- are met:
9
- 1. Redistributions of source code must retain the above copyright
10
- notice, this list of conditions and the following disclaimer.
11
- 2. Redistributions in binary form must reproduce the above copyright
12
- notice, this list of conditions and the following disclaimer in the
13
- documentation and/or other materials provided with the distribution.
14
- 3. The name of the author may not be used to endorse or promote products
15
- derived from this software without specific prior written permission.
16
-
17
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20
- IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22
- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
- */
28
-
29
- /** ANTLR v3 grammar written in ANTLR v3 with AST construction */
30
- grammar ANTLRv3;
31
-
32
- options {
33
- output=AST;
34
- ASTLabelType=CommonTree;
35
- }
36
-
37
- tokens {
38
- DOC_COMMENT;
39
- PARSER;
40
- LEXER;
41
- RULE;
42
- BLOCK;
43
- OPTIONAL;
44
- CLOSURE;
45
- POSITIVE_CLOSURE;
46
- SYNPRED;
47
- RANGE;
48
- CHAR_RANGE;
49
- EPSILON;
50
- ALT;
51
- EOR;
52
- EOB;
53
- EOA; // end of alt
54
- ID;
55
- ARG;
56
- ARGLIST;
57
- RET;
58
- LEXER_GRAMMAR;
59
- PARSER_GRAMMAR;
60
- TREE_GRAMMAR;
61
- COMBINED_GRAMMAR;
62
- INITACTION;
63
- LABEL; // $x used in rewrite rules
64
- TEMPLATE;
65
- SCOPE='scope';
66
- SEMPRED;
67
- GATED_SEMPRED; // {p}? =>
68
- SYN_SEMPRED; // (...) => it's a manually-specified synpred converted to sempred
69
- BACKTRACK_SEMPRED; // auto backtracking mode syn pred converted to sempred
70
- FRAGMENT='fragment';
71
- TREE_BEGIN='^(';
72
- ROOT='^';
73
- BANG='!';
74
- RANGE='..';
75
- REWRITE='->';
76
- }
77
-
78
- @members {
79
- int gtype;
80
- }
81
-
82
- grammarDef
83
- : DOC_COMMENT?
84
- ( 'lexer' {gtype=LEXER_GRAMMAR;} // pure lexer
85
- | 'parser' {gtype=PARSER_GRAMMAR;} // pure parser
86
- | 'tree' {gtype=TREE_GRAMMAR;} // a tree parser
87
- | {gtype=COMBINED_GRAMMAR;} // merged parser/lexer
88
- )
89
- g='grammar' id ';' optionsSpec? tokensSpec? attrScope* action*
90
- rule+
91
- EOF
92
- -> ^( {adaptor.create(gtype,$g)}
93
- id DOC_COMMENT? optionsSpec? tokensSpec? attrScope* action* rule+
94
- )
95
- ;
96
-
97
- tokensSpec
98
- : TOKENS tokenSpec+ '}' -> ^(TOKENS tokenSpec+)
99
- ;
100
-
101
- tokenSpec
102
- : TOKEN_REF
103
- ( '=' (lit=STRING_LITERAL|lit=CHAR_LITERAL) -> ^('=' TOKEN_REF $lit)
104
- | -> TOKEN_REF
105
- )
106
- ';'
107
- ;
108
-
109
- attrScope
110
- : 'scope' id ACTION -> ^('scope' id ACTION)
111
- ;
112
-
113
- /** Match stuff like @parser::members {int i;} */
114
- action
115
- : '@' (actionScopeName '::')? id ACTION -> ^('@' actionScopeName? id ACTION)
116
- ;
117
-
118
- /** Sometimes the scope names will collide with keywords; allow them as
119
- * ids for action scopes.
120
- */
121
- actionScopeName
122
- : id
123
- | l='lexer' -> ID[$l]
124
- | p='parser' -> ID[$p]
125
- ;
126
-
127
- optionsSpec
128
- : OPTIONS (option ';')+ '}' -> ^(OPTIONS option+)
129
- ;
130
-
131
- option
132
- : id '=' optionValue -> ^('=' id optionValue)
133
- ;
134
-
135
- optionValue
136
- : id
137
- | STRING_LITERAL
138
- | CHAR_LITERAL
139
- | INT
140
- | s='*' -> STRING_LITERAL[$s] // used for k=*
141
- ;
142
-
143
- rule
144
- scope {
145
- String name;
146
- }
147
- : DOC_COMMENT?
148
- ( modifier=('protected'|'public'|'private'|'fragment') )?
149
- id {$rule::name = $id.text;}
150
- '!'?
151
- ( arg=ARG_ACTION )?
152
- ( 'returns' rt=ARG_ACTION )?
153
- throwsSpec? optionsSpec? ruleScopeSpec? ruleAction*
154
- ':' altList ';'
155
- exceptionGroup?
156
- -> ^( RULE id {modifier!=null?adaptor.create(modifier):null} ^(ARG $arg)? ^(RET $rt)?
157
- optionsSpec? ruleScopeSpec? ruleAction*
158
- altList
159
- exceptionGroup?
160
- EOR["EOR"]
161
- )
162
- ;
163
-
164
- /** Match stuff like @init {int i;} */
165
- ruleAction
166
- : '@' id ACTION -> ^('@' id ACTION)
167
- ;
168
-
169
- throwsSpec
170
- : 'throws' id ( ',' id )* -> ^('throws' id+)
171
- ;
172
-
173
- ruleScopeSpec
174
- : 'scope' ACTION -> ^('scope' ACTION)
175
- | 'scope' id (',' id)* ';' -> ^('scope' id+)
176
- | 'scope' ACTION
177
- 'scope' id (',' id)* ';'
178
- -> ^('scope' ACTION id+ )
179
- ;
180
-
181
- block
182
- : lp='('
183
- ( (opts=optionsSpec)? ':' )?
184
- a1=alternative rewrite ( '|' a2=alternative rewrite )*
185
- rp=')'
186
- -> ^( BLOCK[$lp,"BLOCK"] optionsSpec? alternative+ EOB[$rp,"EOB"] )
187
- ;
188
-
189
- altList
190
- @init {
191
- // must create root manually as it's used by invoked rules in real antlr tool.
192
- // leave here to demonstrate use of {...} in rewrite rule
193
- // it's really BLOCK[firstToken,"BLOCK"]; set line/col to previous ( or : token.
194
- CommonTree blkRoot = (CommonTree)adaptor.create(BLOCK,input.LT(-1),"BLOCK");
195
- }
196
- : a1=alternative rewrite ( '|' a2=alternative rewrite )*
197
- -> ^( {blkRoot} (alternative rewrite?)+ EOB["EOB"] )
198
- ;
199
-
200
- alternative
201
- @init {
202
- Token firstToken = input.LT(1);
203
- Token prevToken = input.LT(-1); // either : or | I think
204
- }
205
- : element+ -> ^(ALT[firstToken,"ALT"] element+ EOA["EOA"])
206
- | -> ^(ALT[prevToken,"ALT"] EPSILON[prevToken,"EPSILON"] EOA["EOA"])
207
- ;
208
-
209
- exceptionGroup
210
- : ( exceptionHandler )+ ( finallyClause )?
211
- | finallyClause
212
- ;
213
-
214
- exceptionHandler
215
- : 'catch' ARG_ACTION ACTION -> ^('catch' ARG_ACTION ACTION)
216
- ;
217
-
218
- finallyClause
219
- : 'finally' ACTION -> ^('finally' ACTION)
220
- ;
221
-
222
- element
223
- : elementNoOptionSpec
224
- ;
225
-
226
- elementNoOptionSpec
227
- : id (labelOp='='|labelOp='+=') atom
228
- ( ebnfSuffix -> ^( ebnfSuffix ^(BLOCK["BLOCK"] ^(ALT["ALT"] ^($labelOp id atom) EOA["EOA"]) EOB["EOB"]))
229
- | -> ^($labelOp id atom)
230
- )
231
- | id (labelOp='='|labelOp='+=') block
232
- ( ebnfSuffix -> ^( ebnfSuffix ^(BLOCK["BLOCK"] ^(ALT["ALT"] ^($labelOp id block) EOA["EOA"]) EOB["EOB"]))
233
- | -> ^($labelOp id block)
234
- )
235
- | atom
236
- ( ebnfSuffix -> ^(BLOCK["BLOCK"] ^(ALT["ALT"] atom EOA["EOA"]) EOB["EOB"])
237
- | -> atom
238
- )
239
- | ebnf
240
- | ACTION
241
- | SEMPRED ( '=>' -> GATED_SEMPRED | -> SEMPRED )
242
- | treeSpec
243
- ;
244
-
245
- atom: range ( (op='^'|op='!') -> ^($op range) | -> range )
246
- | terminal
247
- | notSet ( (op='^'|op='!') -> ^($op notSet) | -> notSet )
248
- | RULE_REF ( arg=ARG_ACTION )? ( (op='^'|op='!') )?
249
- -> {$arg!=null&&op!=null}? ^($op RULE_REF $arg)
250
- -> {$arg!=null}? ^(RULE_REF $arg)
251
- -> {$op!=null}? ^($op RULE_REF)
252
- -> RULE_REF
253
- ;
254
-
255
- notSet
256
- : '~'
257
- ( notTerminal -> ^('~' notTerminal)
258
- | block -> ^('~' block)
259
- )
260
- ;
261
-
262
- treeSpec
263
- : '^(' element ( element )+ ')' -> ^(TREE_BEGIN element+)
264
- ;
265
-
266
- /** Matches ENBF blocks (and token sets via block rule) */
267
- ebnf
268
- @init {
269
- Token firstToken = input.LT(1);
270
- }
271
- @after {
272
- $ebnf.tree.getToken().setLine(firstToken.getLine());
273
- $ebnf.tree.getToken().setCharPositionInLine(firstToken.getCharPositionInLine());
274
- }
275
- : block {Token op=input.LT(1);}
276
- ( '?' -> ^(OPTIONAL[op] block)
277
- | '*' -> ^(CLOSURE[op] block)
278
- | '+' -> ^(POSITIVE_CLOSURE[op] block)
279
- | '^' -> ^('^' block)
280
- | '!' -> ^('!' block)
281
- | '=>' // syntactic predicate
282
- -> {gtype==COMBINED_GRAMMAR &&
283
- Character.isUpperCase($rule::name.charAt(0))}?
284
- // if lexer rule in combined, leave as pred for lexer
285
- ^(SYNPRED["=>"] block)
286
- // in real antlr tool, text for SYN_SEMPRED is predname
287
- -> SYN_SEMPRED
288
- | -> block
289
- )
290
- ;
291
-
292
- range!
293
- : c1=CHAR_LITERAL RANGE c2=CHAR_LITERAL -> ^(CHAR_RANGE[$c1,".."] $c1 $c2)
294
- ;
295
-
296
- terminal
297
- : ( CHAR_LITERAL -> CHAR_LITERAL
298
- // Args are only valid for lexer rules
299
- | TOKEN_REF
300
- ( ARG_ACTION -> ^(TOKEN_REF ARG_ACTION)
301
- | -> TOKEN_REF
302
- )
303
- | STRING_LITERAL -> STRING_LITERAL
304
- | '.' -> '.'
305
- )
306
- ( '^' -> ^('^' $terminal)
307
- | '!' -> ^('!' $terminal)
308
- )?
309
- ;
310
-
311
- notTerminal
312
- : CHAR_LITERAL
313
- | TOKEN_REF
314
- | STRING_LITERAL
315
- ;
316
-
317
- ebnfSuffix
318
- @init {
319
- Token op = input.LT(1);
320
- }
321
- : '?' -> OPTIONAL[op]
322
- | '*' -> CLOSURE[op]
323
- | '+' -> POSITIVE_CLOSURE[op]
324
- ;
325
-
326
-
327
-
328
- // R E W R I T E S Y N T A X
329
-
330
- rewrite
331
- @init {
332
- Token firstToken = input.LT(1);
333
- }
334
- : (rew+='->' preds+=SEMPRED predicated+=rewrite_alternative)*
335
- rew2='->' last=rewrite_alternative
336
- -> ^($rew $preds $predicated)* ^($rew2 $last)
337
- |
338
- ;
339
-
340
- rewrite_alternative
341
- : rewrite_template
342
- | rewrite_tree_alternative
343
- | /* empty rewrite */ -> ^(ALT["ALT"] EPSILON["EPSILON"] EOA["EOA"])
344
- ;
345
-
346
- rewrite_template_block
347
- : lp='(' rewrite_template ')' -> ^(BLOCK[$lp,"BLOCK"] rewrite_template EOB[$lp,"EOB"])
348
- ;
349
-
350
- rewrite_tree_block
351
- : lp='(' rewrite_tree_alternative ')'
352
- -> ^(BLOCK[$lp,"BLOCK"] rewrite_tree_alternative EOB[$lp,"EOB"])
353
- ;
354
-
355
- rewrite_tree_alternative
356
- : rewrite_tree_element+ -> ^(ALT["ALT"] rewrite_tree_element+ EOA["EOA"])
357
- ;
358
-
359
- rewrite_tree_element
360
- : rewrite_tree_atom
361
- | rewrite_tree_atom ebnfSuffix
362
- -> ^( ebnfSuffix ^(BLOCK["BLOCK"] ^(ALT["ALT"] rewrite_tree_atom EOA["EOA"]) EOB["EOB"]))
363
- | rewrite_tree
364
- ( ebnfSuffix
365
- -> ^(BLOCK["BLOCK"] ^(ALT["ALT"] rewrite_tree EOA["EOA"]) EOB["EOB"])
366
- | -> rewrite_tree
367
- )
368
- | rewrite_tree_ebnf
369
- ;
370
-
371
- rewrite_tree_atom
372
- : CHAR_LITERAL
373
- | TOKEN_REF ARG_ACTION? -> ^(TOKEN_REF ARG_ACTION?) // for imaginary nodes
374
- | RULE_REF
375
- | STRING_LITERAL
376
- | d='$' id -> LABEL[$d,$id.text] // reference to a label in a rewrite rule
377
- | ACTION
378
- ;
379
-
380
- rewrite_tree_ebnf
381
- @init {
382
- Token firstToken = input.LT(1);
383
- }
384
- @after {
385
- $rewrite_tree_ebnf.tree.getToken().setLine(firstToken.getLine());
386
- $rewrite_tree_ebnf.tree.getToken().setCharPositionInLine(firstToken.getCharPositionInLine());
387
- }
388
- : rewrite_tree_block ebnfSuffix -> ^(ebnfSuffix rewrite_tree_block)
389
- ;
390
-
391
- rewrite_tree
392
- : '^(' rewrite_tree_atom rewrite_tree_element* ')'
393
- -> ^(TREE_BEGIN rewrite_tree_atom rewrite_tree_element* )
394
- ;
395
-
396
- /** Build a tree for a template rewrite:
397
- ^(TEMPLATE (ID|ACTION) ^(ARGLIST ^(ARG ID ACTION) ...) )
398
- where ARGLIST is always there even if no args exist.
399
- ID can be "template" keyword. If first child is ACTION then it's
400
- an indirect template ref
401
-
402
- -> foo(a={...}, b={...})
403
- -> ({string-e})(a={...}, b={...}) // e evaluates to template name
404
- -> {%{$ID.text}} // create literal template from string (done in ActionTranslator)
405
- -> {st-expr} // st-expr evaluates to ST
406
- */
407
- rewrite_template
408
- : // -> template(a={...},...) "..." inline template
409
- {input.LT(1).getText().equals("template")}?
410
- id lp='(' rewrite_template_args ')'
411
- st=( DOUBLE_QUOTE_STRING_LITERAL | DOUBLE_ANGLE_STRING_LITERAL )
412
- -> ^(TEMPLATE[$lp,"TEMPLATE"] id rewrite_template_args $st)
413
-
414
- | // -> foo(a={...}, ...)
415
- rewrite_template_ref
416
-
417
- | // -> ({expr})(a={...}, ...)
418
- rewrite_indirect_template_head
419
-
420
- | // -> {...}
421
- ACTION
422
- ;
423
-
424
- /** -> foo(a={...}, ...) */
425
- rewrite_template_ref
426
- : id lp='(' rewrite_template_args ')'
427
- -> ^(TEMPLATE[$lp,"TEMPLATE"] id rewrite_template_args)
428
- ;
429
-
430
- /** -> ({expr})(a={...}, ...) */
431
- rewrite_indirect_template_head
432
- : lp='(' ACTION ')' '(' rewrite_template_args ')'
433
- -> ^(TEMPLATE[$lp,"TEMPLATE"] ACTION rewrite_template_args)
434
- ;
435
-
436
- rewrite_template_args
437
- : rewrite_template_arg (',' rewrite_template_arg)*
438
- -> ^(ARGLIST rewrite_template_arg+)
439
- | -> ARGLIST
440
- ;
441
-
442
- rewrite_template_arg
443
- : id '=' ACTION -> ^(ARG[$id.start] id ACTION)
444
- ;
445
-
446
- id : TOKEN_REF -> ID[$TOKEN_REF]
447
- | RULE_REF -> ID[$RULE_REF]
448
- ;
449
-
450
- // L E X I C A L R U L E S
451
-
452
- SL_COMMENT
453
- : '//'
454
- ( ' $ANTLR ' SRC // src directive
455
- | ~('\r'|'\n')*
456
- )
457
- '\r'? '\n'
458
- {$channel=HIDDEN;}
459
- ;
460
-
461
- ML_COMMENT
462
- : '/*' {if (input.LA(1)=='*') $type=DOC_COMMENT; else $channel=HIDDEN;} .* '*/'
463
- ;
464
-
465
- CHAR_LITERAL
466
- : '\'' LITERAL_CHAR '\''
467
- ;
468
-
469
- STRING_LITERAL
470
- : '\'' LITERAL_CHAR LITERAL_CHAR* '\''
471
- ;
472
-
473
- fragment
474
- LITERAL_CHAR
475
- : ESC
476
- | ~('\''|'\\')
477
- ;
478
-
479
- DOUBLE_QUOTE_STRING_LITERAL
480
- : '"' LITERAL_CHAR* '"'
481
- ;
482
-
483
- DOUBLE_ANGLE_STRING_LITERAL
484
- : '<<' .* '>>'
485
- ;
486
-
487
- fragment
488
- ESC : '\\'
489
- ( 'n'
490
- | 'r'
491
- | 't'
492
- | 'b'
493
- | 'f'
494
- | '"'
495
- | '\''
496
- | '\\'
497
- | '>'
498
- | 'u' XDIGIT XDIGIT XDIGIT XDIGIT
499
- | . // unknown, leave as it is
500
- )
501
- ;
502
-
503
- fragment
504
- XDIGIT :
505
- '0' .. '9'
506
- | 'a' .. 'f'
507
- | 'A' .. 'F'
508
- ;
509
-
510
- INT : '0'..'9'+
511
- ;
512
-
513
- ARG_ACTION
514
- : NESTED_ARG_ACTION
515
- ;
516
-
517
- fragment
518
- NESTED_ARG_ACTION :
519
- '['
520
- ( options {greedy=false; k=1;}
521
- : NESTED_ARG_ACTION
522
- | ACTION_STRING_LITERAL
523
- | ACTION_CHAR_LITERAL
524
- | .
525
- )*
526
- ']'
527
- {setText(getText().substring(1, getText().length()-1));}
528
- ;
529
-
530
- ACTION
531
- : NESTED_ACTION ( '?' {$type = SEMPRED;} )?
532
- ;
533
-
534
- fragment
535
- NESTED_ACTION :
536
- '{'
537
- ( options {greedy=false; k=3;}
538
- : NESTED_ACTION
539
- | SL_COMMENT
540
- | ML_COMMENT
541
- | ACTION_STRING_LITERAL
542
- | ACTION_CHAR_LITERAL
543
- | .
544
- )*
545
- '}'
546
- {$channel = DEFAULT_TOKEN_CHANNEL;}
547
- ;
548
-
549
- fragment
550
- ACTION_CHAR_LITERAL
551
- : '\'' (ACTION_ESC|~('\\'|'\'')) '\''
552
- ;
553
-
554
- fragment
555
- ACTION_STRING_LITERAL
556
- : '"' (ACTION_ESC|~('\\'|'"'))+ '"'
557
- ;
558
-
559
- fragment
560
- ACTION_ESC
561
- : '\\\''
562
- | '\\"'
563
- | '\\' ~('\''|'"')
564
- ;
565
-
566
- TOKEN_REF
567
- : 'A'..'Z' ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*
568
- ;
569
-
570
- RULE_REF
571
- : 'a'..'z' ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*
572
- ;
573
-
574
- /** Match the start of an options section. Don't allow normal
575
- * action processing on the {...} as it's not a action.
576
- */
577
- OPTIONS
578
- : 'options' WS_LOOP '{' {$channel=DEFAULT_TOKEN_CHANNEL;} // WS_LOOP sets channel
579
- ;
580
-
581
- TOKENS
582
- : 'tokens' WS_LOOP '{' {$channel=DEFAULT_TOKEN_CHANNEL;}
583
- ;
584
-
585
- /** Reset the file and line information; useful when the grammar
586
- * has been generated so that errors are shown relative to the
587
- * original file like the old C preprocessor used to do.
588
- */
589
- fragment
590
- SRC : 'src' ' ' file=ACTION_STRING_LITERAL ' ' line=INT {$channel=HIDDEN;}
591
- ;
592
-
593
- WS : ( ' '
594
- | '\t'
595
- | '\r'? '\n'
596
- )+
597
- {$channel=HIDDEN;}
598
- ;
599
-
600
- fragment
601
- WS_LOOP
602
- : ( WS
603
- | SL_COMMENT
604
- | ML_COMMENT
605
- )*
606
- {$channel=HIDDEN;}
607
- ;
608
-