pygments.rb-jruby 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/CHANGELOG.md +71 -0
  4. data/Gemfile +2 -0
  5. data/LICENSE +17 -0
  6. data/README.md +118 -0
  7. data/Rakefile +66 -0
  8. data/bench.rb +22 -0
  9. data/cache-lexers.rb +8 -0
  10. data/lexers +0 -0
  11. data/lib/pygments.rb +8 -0
  12. data/lib/pygments/lexer.rb +148 -0
  13. data/lib/pygments/mentos.py +351 -0
  14. data/lib/pygments/popen.rb +404 -0
  15. data/lib/pygments/version.rb +3 -0
  16. data/pygments.rb.gemspec +24 -0
  17. data/test/test_data.c +2581 -0
  18. data/test/test_data.py +514 -0
  19. data/test/test_data_generated +2582 -0
  20. data/test/test_pygments.rb +287 -0
  21. data/vendor/custom_lexers/github.py +565 -0
  22. data/vendor/pygments-main/AUTHORS +153 -0
  23. data/vendor/pygments-main/CHANGES +889 -0
  24. data/vendor/pygments-main/LICENSE +25 -0
  25. data/vendor/pygments-main/MANIFEST.in +6 -0
  26. data/vendor/pygments-main/Makefile +59 -0
  27. data/vendor/pygments-main/REVISION +1 -0
  28. data/vendor/pygments-main/TODO +15 -0
  29. data/vendor/pygments-main/docs/generate.py +472 -0
  30. data/vendor/pygments-main/docs/pygmentize.1 +94 -0
  31. data/vendor/pygments-main/docs/src/api.txt +270 -0
  32. data/vendor/pygments-main/docs/src/authors.txt +5 -0
  33. data/vendor/pygments-main/docs/src/changelog.txt +5 -0
  34. data/vendor/pygments-main/docs/src/cmdline.txt +147 -0
  35. data/vendor/pygments-main/docs/src/filterdevelopment.txt +70 -0
  36. data/vendor/pygments-main/docs/src/filters.txt +42 -0
  37. data/vendor/pygments-main/docs/src/formatterdevelopment.txt +169 -0
  38. data/vendor/pygments-main/docs/src/formatters.txt +48 -0
  39. data/vendor/pygments-main/docs/src/index.txt +69 -0
  40. data/vendor/pygments-main/docs/src/installation.txt +71 -0
  41. data/vendor/pygments-main/docs/src/integrate.txt +48 -0
  42. data/vendor/pygments-main/docs/src/java.txt +70 -0
  43. data/vendor/pygments-main/docs/src/lexerdevelopment.txt +603 -0
  44. data/vendor/pygments-main/docs/src/lexers.txt +67 -0
  45. data/vendor/pygments-main/docs/src/moinmoin.txt +39 -0
  46. data/vendor/pygments-main/docs/src/plugins.txt +93 -0
  47. data/vendor/pygments-main/docs/src/quickstart.txt +202 -0
  48. data/vendor/pygments-main/docs/src/rstdirective.txt +22 -0
  49. data/vendor/pygments-main/docs/src/styles.txt +143 -0
  50. data/vendor/pygments-main/docs/src/tokens.txt +349 -0
  51. data/vendor/pygments-main/docs/src/unicode.txt +49 -0
  52. data/vendor/pygments-main/external/autopygmentize +64 -0
  53. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +144 -0
  54. data/vendor/pygments-main/external/markdown-processor.py +67 -0
  55. data/vendor/pygments-main/external/moin-parser.py +112 -0
  56. data/vendor/pygments-main/external/pygments.bashcomp +38 -0
  57. data/vendor/pygments-main/external/rst-directive-old.py +77 -0
  58. data/vendor/pygments-main/external/rst-directive.py +83 -0
  59. data/vendor/pygments-main/ez_setup.py +276 -0
  60. data/vendor/pygments-main/pygmentize +7 -0
  61. data/vendor/pygments-main/pygments/__init__.py +91 -0
  62. data/vendor/pygments-main/pygments/cmdline.py +441 -0
  63. data/vendor/pygments-main/pygments/console.py +74 -0
  64. data/vendor/pygments-main/pygments/filter.py +74 -0
  65. data/vendor/pygments-main/pygments/filters/__init__.py +356 -0
  66. data/vendor/pygments-main/pygments/formatter.py +95 -0
  67. data/vendor/pygments-main/pygments/formatters/__init__.py +68 -0
  68. data/vendor/pygments-main/pygments/formatters/_mapping.py +92 -0
  69. data/vendor/pygments-main/pygments/formatters/bbcode.py +109 -0
  70. data/vendor/pygments-main/pygments/formatters/html.py +821 -0
  71. data/vendor/pygments-main/pygments/formatters/img.py +553 -0
  72. data/vendor/pygments-main/pygments/formatters/latex.py +378 -0
  73. data/vendor/pygments-main/pygments/formatters/other.py +115 -0
  74. data/vendor/pygments-main/pygments/formatters/rtf.py +136 -0
  75. data/vendor/pygments-main/pygments/formatters/svg.py +154 -0
  76. data/vendor/pygments-main/pygments/formatters/terminal.py +112 -0
  77. data/vendor/pygments-main/pygments/formatters/terminal256.py +222 -0
  78. data/vendor/pygments-main/pygments/lexer.py +765 -0
  79. data/vendor/pygments-main/pygments/lexers/__init__.py +240 -0
  80. data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1645 -0
  81. data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +232 -0
  82. data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +5172 -0
  83. data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +249 -0
  84. data/vendor/pygments-main/pygments/lexers/_mapping.py +354 -0
  85. data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +562 -0
  86. data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +3787 -0
  87. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +233 -0
  88. data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +557 -0
  89. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +40 -0
  90. data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +1072 -0
  91. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +360 -0
  92. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +13 -0
  93. data/vendor/pygments-main/pygments/lexers/agile.py +2290 -0
  94. data/vendor/pygments-main/pygments/lexers/asm.py +398 -0
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +3723 -0
  96. data/vendor/pygments-main/pygments/lexers/dalvik.py +104 -0
  97. data/vendor/pygments-main/pygments/lexers/dotnet.py +671 -0
  98. data/vendor/pygments-main/pygments/lexers/foxpro.py +428 -0
  99. data/vendor/pygments-main/pygments/lexers/functional.py +2731 -0
  100. data/vendor/pygments-main/pygments/lexers/github.py +565 -0
  101. data/vendor/pygments-main/pygments/lexers/hdl.py +356 -0
  102. data/vendor/pygments-main/pygments/lexers/jvm.py +1112 -0
  103. data/vendor/pygments-main/pygments/lexers/math.py +1918 -0
  104. data/vendor/pygments-main/pygments/lexers/other.py +3778 -0
  105. data/vendor/pygments-main/pygments/lexers/parsers.py +778 -0
  106. data/vendor/pygments-main/pygments/lexers/shell.py +424 -0
  107. data/vendor/pygments-main/pygments/lexers/special.py +100 -0
  108. data/vendor/pygments-main/pygments/lexers/sql.py +559 -0
  109. data/vendor/pygments-main/pygments/lexers/templates.py +1742 -0
  110. data/vendor/pygments-main/pygments/lexers/text.py +1893 -0
  111. data/vendor/pygments-main/pygments/lexers/web.py +4045 -0
  112. data/vendor/pygments-main/pygments/modeline.py +40 -0
  113. data/vendor/pygments-main/pygments/plugin.py +74 -0
  114. data/vendor/pygments-main/pygments/scanner.py +104 -0
  115. data/vendor/pygments-main/pygments/style.py +117 -0
  116. data/vendor/pygments-main/pygments/styles/__init__.py +70 -0
  117. data/vendor/pygments-main/pygments/styles/autumn.py +65 -0
  118. data/vendor/pygments-main/pygments/styles/borland.py +51 -0
  119. data/vendor/pygments-main/pygments/styles/bw.py +49 -0
  120. data/vendor/pygments-main/pygments/styles/colorful.py +81 -0
  121. data/vendor/pygments-main/pygments/styles/default.py +73 -0
  122. data/vendor/pygments-main/pygments/styles/emacs.py +72 -0
  123. data/vendor/pygments-main/pygments/styles/friendly.py +72 -0
  124. data/vendor/pygments-main/pygments/styles/fruity.py +42 -0
  125. data/vendor/pygments-main/pygments/styles/manni.py +75 -0
  126. data/vendor/pygments-main/pygments/styles/monokai.py +106 -0
  127. data/vendor/pygments-main/pygments/styles/murphy.py +80 -0
  128. data/vendor/pygments-main/pygments/styles/native.py +65 -0
  129. data/vendor/pygments-main/pygments/styles/pastie.py +75 -0
  130. data/vendor/pygments-main/pygments/styles/perldoc.py +69 -0
  131. data/vendor/pygments-main/pygments/styles/rrt.py +33 -0
  132. data/vendor/pygments-main/pygments/styles/tango.py +141 -0
  133. data/vendor/pygments-main/pygments/styles/trac.py +63 -0
  134. data/vendor/pygments-main/pygments/styles/vim.py +63 -0
  135. data/vendor/pygments-main/pygments/styles/vs.py +38 -0
  136. data/vendor/pygments-main/pygments/token.py +195 -0
  137. data/vendor/pygments-main/pygments/unistring.py +140 -0
  138. data/vendor/pygments-main/pygments/util.py +277 -0
  139. data/vendor/pygments-main/scripts/check_sources.py +242 -0
  140. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +32 -0
  141. data/vendor/pygments-main/scripts/epydoc.css +280 -0
  142. data/vendor/pygments-main/scripts/find_codetags.py +205 -0
  143. data/vendor/pygments-main/scripts/find_error.py +170 -0
  144. data/vendor/pygments-main/scripts/get_vimkw.py +43 -0
  145. data/vendor/pygments-main/scripts/pylintrc +301 -0
  146. data/vendor/pygments-main/scripts/reindent.py +291 -0
  147. data/vendor/pygments-main/scripts/vim2pygments.py +933 -0
  148. data/vendor/pygments-main/setup.cfg +7 -0
  149. data/vendor/pygments-main/setup.py +90 -0
  150. data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +37 -0
  151. data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +869 -0
  152. data/vendor/pygments-main/tests/dtds/HTML4.dcl +88 -0
  153. data/vendor/pygments-main/tests/dtds/HTML4.dtd +1092 -0
  154. data/vendor/pygments-main/tests/dtds/HTML4.soc +9 -0
  155. data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +195 -0
  156. data/vendor/pygments-main/tests/dtds/HTMLspec.ent +77 -0
  157. data/vendor/pygments-main/tests/dtds/HTMLsym.ent +241 -0
  158. data/vendor/pygments-main/tests/examplefiles/ANTLRv3.g +608 -0
  159. data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +209 -0
  160. data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +102 -0
  161. data/vendor/pygments-main/tests/examplefiles/BOM.js +1 -0
  162. data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +611 -0
  163. data/vendor/pygments-main/tests/examplefiles/Config.in.cache +1973 -0
  164. data/vendor/pygments-main/tests/examplefiles/Constants.mo +158 -0
  165. data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +411 -0
  166. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +578 -0
  167. data/vendor/pygments-main/tests/examplefiles/Errors.scala +18 -0
  168. data/vendor/pygments-main/tests/examplefiles/File.hy +174 -0
  169. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +66 -0
  170. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +104 -0
  171. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +671 -0
  172. data/vendor/pygments-main/tests/examplefiles/Intro.java +1660 -0
  173. data/vendor/pygments-main/tests/examplefiles/Makefile +1131 -0
  174. data/vendor/pygments-main/tests/examplefiles/Object.st +4394 -0
  175. data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +584 -0
  176. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +23 -0
  177. data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +378 -0
  178. data/vendor/pygments-main/tests/examplefiles/Sorting.mod +470 -0
  179. data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +382 -0
  180. data/vendor/pygments-main/tests/examplefiles/addressbook.proto +30 -0
  181. data/vendor/pygments-main/tests/examplefiles/antlr_throws +1 -0
  182. data/vendor/pygments-main/tests/examplefiles/apache2.conf +393 -0
  183. data/vendor/pygments-main/tests/examplefiles/as3_test.as +143 -0
  184. data/vendor/pygments-main/tests/examplefiles/as3_test2.as +46 -0
  185. data/vendor/pygments-main/tests/examplefiles/as3_test3.as +3 -0
  186. data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +27 -0
  187. data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +25 -0
  188. data/vendor/pygments-main/tests/examplefiles/badcase.java +2 -0
  189. data/vendor/pygments-main/tests/examplefiles/batchfile.bat +49 -0
  190. data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +308 -0
  191. data/vendor/pygments-main/tests/examplefiles/boot-9.scm +1557 -0
  192. data/vendor/pygments-main/tests/examplefiles/ca65_example +284 -0
  193. data/vendor/pygments-main/tests/examplefiles/cbmbas_example +9 -0
  194. data/vendor/pygments-main/tests/examplefiles/cells.ps +515 -0
  195. data/vendor/pygments-main/tests/examplefiles/ceval.c +2604 -0
  196. data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +13 -0
  197. data/vendor/pygments-main/tests/examplefiles/classes.dylan +125 -0
  198. data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +10 -0
  199. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +447 -0
  200. data/vendor/pygments-main/tests/examplefiles/database.pytb +20 -0
  201. data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +2461 -0
  202. data/vendor/pygments-main/tests/examplefiles/demo.ahk +181 -0
  203. data/vendor/pygments-main/tests/examplefiles/demo.cfm +38 -0
  204. data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +68 -0
  205. data/vendor/pygments-main/tests/examplefiles/dwarf.cw +17 -0
  206. data/vendor/pygments-main/tests/examplefiles/erl_session +10 -0
  207. data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +1 -0
  208. data/vendor/pygments-main/tests/examplefiles/evil_regex.js +48 -0
  209. data/vendor/pygments-main/tests/examplefiles/example.Rd +78 -0
  210. data/vendor/pygments-main/tests/examplefiles/example.bug +54 -0
  211. data/vendor/pygments-main/tests/examplefiles/example.c +2080 -0
  212. data/vendor/pygments-main/tests/examplefiles/example.ceylon +52 -0
  213. data/vendor/pygments-main/tests/examplefiles/example.clay +33 -0
  214. data/vendor/pygments-main/tests/examplefiles/example.cls +15 -0
  215. data/vendor/pygments-main/tests/examplefiles/example.cob +3556 -0
  216. data/vendor/pygments-main/tests/examplefiles/example.cpp +2363 -0
  217. data/vendor/pygments-main/tests/examplefiles/example.gs +106 -0
  218. data/vendor/pygments-main/tests/examplefiles/example.gst +7 -0
  219. data/vendor/pygments-main/tests/examplefiles/example.hx +142 -0
  220. data/vendor/pygments-main/tests/examplefiles/example.jag +48 -0
  221. data/vendor/pygments-main/tests/examplefiles/example.kt +47 -0
  222. data/vendor/pygments-main/tests/examplefiles/example.lagda +19 -0
  223. data/vendor/pygments-main/tests/examplefiles/example.lua +250 -0
  224. data/vendor/pygments-main/tests/examplefiles/example.monkey +152 -0
  225. data/vendor/pygments-main/tests/examplefiles/example.moo +26 -0
  226. data/vendor/pygments-main/tests/examplefiles/example.moon +629 -0
  227. data/vendor/pygments-main/tests/examplefiles/example.msc +43 -0
  228. data/vendor/pygments-main/tests/examplefiles/example.nim +1010 -0
  229. data/vendor/pygments-main/tests/examplefiles/example.ns2 +69 -0
  230. data/vendor/pygments-main/tests/examplefiles/example.p +34 -0
  231. data/vendor/pygments-main/tests/examplefiles/example.pas +2708 -0
  232. data/vendor/pygments-main/tests/examplefiles/example.prg +161 -0
  233. data/vendor/pygments-main/tests/examplefiles/example.rb +1852 -0
  234. data/vendor/pygments-main/tests/examplefiles/example.reg +19 -0
  235. data/vendor/pygments-main/tests/examplefiles/example.rexx +50 -0
  236. data/vendor/pygments-main/tests/examplefiles/example.rhtml +561 -0
  237. data/vendor/pygments-main/tests/examplefiles/example.rkt +95 -0
  238. data/vendor/pygments-main/tests/examplefiles/example.rpf +4 -0
  239. data/vendor/pygments-main/tests/examplefiles/example.sh-session +19 -0
  240. data/vendor/pygments-main/tests/examplefiles/example.shell-session +45 -0
  241. data/vendor/pygments-main/tests/examplefiles/example.sml +156 -0
  242. data/vendor/pygments-main/tests/examplefiles/example.snobol +15 -0
  243. data/vendor/pygments-main/tests/examplefiles/example.stan +108 -0
  244. data/vendor/pygments-main/tests/examplefiles/example.tea +34 -0
  245. data/vendor/pygments-main/tests/examplefiles/example.ts +28 -0
  246. data/vendor/pygments-main/tests/examplefiles/example.u +548 -0
  247. data/vendor/pygments-main/tests/examplefiles/example.weechatlog +9 -0
  248. data/vendor/pygments-main/tests/examplefiles/example.xhtml +376 -0
  249. data/vendor/pygments-main/tests/examplefiles/example.xtend +34 -0
  250. data/vendor/pygments-main/tests/examplefiles/example.yaml +302 -0
  251. data/vendor/pygments-main/tests/examplefiles/example2.aspx +29 -0
  252. data/vendor/pygments-main/tests/examplefiles/example2.msc +79 -0
  253. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +363 -0
  254. data/vendor/pygments-main/tests/examplefiles/example_file.fy +128 -0
  255. data/vendor/pygments-main/tests/examplefiles/firefox.mak +586 -0
  256. data/vendor/pygments-main/tests/examplefiles/flipflop.sv +19 -0
  257. data/vendor/pygments-main/tests/examplefiles/foo.sce +6 -0
  258. data/vendor/pygments-main/tests/examplefiles/format.ml +1213 -0
  259. data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +77 -0
  260. data/vendor/pygments-main/tests/examplefiles/function.mu +1 -0
  261. data/vendor/pygments-main/tests/examplefiles/functional.rst +1472 -0
  262. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +133 -0
  263. data/vendor/pygments-main/tests/examplefiles/genclass.clj +510 -0
  264. data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +193 -0
  265. data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +33 -0
  266. data/vendor/pygments-main/tests/examplefiles/glsl.frag +7 -0
  267. data/vendor/pygments-main/tests/examplefiles/glsl.vert +13 -0
  268. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +22 -0
  269. data/vendor/pygments-main/tests/examplefiles/hello.smali +40 -0
  270. data/vendor/pygments-main/tests/examplefiles/hello.sp +9 -0
  271. data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +1 -0
  272. data/vendor/pygments-main/tests/examplefiles/http_request_example +15 -0
  273. data/vendor/pygments-main/tests/examplefiles/http_response_example +29 -0
  274. data/vendor/pygments-main/tests/examplefiles/import.hs +4 -0
  275. data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +71 -0
  276. data/vendor/pygments-main/tests/examplefiles/intro.ik +24 -0
  277. data/vendor/pygments-main/tests/examplefiles/ints.php +10 -0
  278. data/vendor/pygments-main/tests/examplefiles/intsyn.fun +675 -0
  279. data/vendor/pygments-main/tests/examplefiles/intsyn.sig +286 -0
  280. data/vendor/pygments-main/tests/examplefiles/irb_heredoc +8 -0
  281. data/vendor/pygments-main/tests/examplefiles/irc.lsp +214 -0
  282. data/vendor/pygments-main/tests/examplefiles/java.properties +16 -0
  283. data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +28 -0
  284. data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +45 -0
  285. data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +713 -0
  286. data/vendor/pygments-main/tests/examplefiles/json.lasso +301 -0
  287. data/vendor/pygments-main/tests/examplefiles/json.lasso9 +213 -0
  288. data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +13 -0
  289. data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +47 -0
  290. data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +41 -0
  291. data/vendor/pygments-main/tests/examplefiles/logos_example.xm +28 -0
  292. data/vendor/pygments-main/tests/examplefiles/ltmain.sh +2849 -0
  293. data/vendor/pygments-main/tests/examplefiles/main.cmake +42 -0
  294. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +679 -0
  295. data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +3 -0
  296. data/vendor/pygments-main/tests/examplefiles/matlab_sample +30 -0
  297. data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +37 -0
  298. data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +455 -0
  299. data/vendor/pygments-main/tests/examplefiles/mg_sample.pro +73 -0
  300. data/vendor/pygments-main/tests/examplefiles/minehunt.qml +112 -0
  301. data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +4 -0
  302. data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +340 -0
  303. data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +38 -0
  304. data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +95 -0
  305. data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +96 -0
  306. data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +30 -0
  307. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +87 -0
  308. data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +118 -0
  309. data/vendor/pygments-main/tests/examplefiles/numbers.c +12 -0
  310. data/vendor/pygments-main/tests/examplefiles/objc_example.m +32 -0
  311. data/vendor/pygments-main/tests/examplefiles/objc_example2.m +24 -0
  312. data/vendor/pygments-main/tests/examplefiles/perl_misc +62 -0
  313. data/vendor/pygments-main/tests/examplefiles/perl_perl5db +998 -0
  314. data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +120 -0
  315. data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +856 -0
  316. data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +163 -0
  317. data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +567 -0
  318. data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +1223 -0
  319. data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +47 -0
  320. data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +10 -0
  321. data/vendor/pygments-main/tests/examplefiles/psql_session.txt +122 -0
  322. data/vendor/pygments-main/tests/examplefiles/py3_test.txt +2 -0
  323. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +4 -0
  324. data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +14 -0
  325. data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +2 -0
  326. data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +4 -0
  327. data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +234 -0
  328. data/vendor/pygments-main/tests/examplefiles/qsort.prolog +13 -0
  329. data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +38 -0
  330. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +280 -0
  331. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +2 -0
  332. data/vendor/pygments-main/tests/examplefiles/regex.js +22 -0
  333. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +427 -0
  334. data/vendor/pygments-main/tests/examplefiles/robotframework.txt +39 -0
  335. data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +11 -0
  336. data/vendor/pygments-main/tests/examplefiles/rust_example.rs +233 -0
  337. data/vendor/pygments-main/tests/examplefiles/scilab.sci +30 -0
  338. data/vendor/pygments-main/tests/examplefiles/session.dylan-console +9 -0
  339. data/vendor/pygments-main/tests/examplefiles/sibling.prolog +19 -0
  340. data/vendor/pygments-main/tests/examplefiles/simple.md +747 -0
  341. data/vendor/pygments-main/tests/examplefiles/smarty_example.html +209 -0
  342. data/vendor/pygments-main/tests/examplefiles/source.lgt +343 -0
  343. data/vendor/pygments-main/tests/examplefiles/sources.list +62 -0
  344. data/vendor/pygments-main/tests/examplefiles/sphere.pov +18 -0
  345. data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +27 -0
  346. data/vendor/pygments-main/tests/examplefiles/squid.conf +30 -0
  347. data/vendor/pygments-main/tests/examplefiles/string.jl +1031 -0
  348. data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +21 -0
  349. data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +3 -0
  350. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +1329 -0
  351. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +225 -0
  352. data/vendor/pygments-main/tests/examplefiles/test.R +153 -0
  353. data/vendor/pygments-main/tests/examplefiles/test.adb +211 -0
  354. data/vendor/pygments-main/tests/examplefiles/test.agda +102 -0
  355. data/vendor/pygments-main/tests/examplefiles/test.asy +131 -0
  356. data/vendor/pygments-main/tests/examplefiles/test.awk +121 -0
  357. data/vendor/pygments-main/tests/examplefiles/test.bas +29 -0
  358. data/vendor/pygments-main/tests/examplefiles/test.bb +95 -0
  359. data/vendor/pygments-main/tests/examplefiles/test.bmx +145 -0
  360. data/vendor/pygments-main/tests/examplefiles/test.boo +39 -0
  361. data/vendor/pygments-main/tests/examplefiles/test.bro +250 -0
  362. data/vendor/pygments-main/tests/examplefiles/test.cs +374 -0
  363. data/vendor/pygments-main/tests/examplefiles/test.css +54 -0
  364. data/vendor/pygments-main/tests/examplefiles/test.cu +36 -0
  365. data/vendor/pygments-main/tests/examplefiles/test.d +135 -0
  366. data/vendor/pygments-main/tests/examplefiles/test.dart +23 -0
  367. data/vendor/pygments-main/tests/examplefiles/test.dtd +89 -0
  368. data/vendor/pygments-main/tests/examplefiles/test.ebnf +31 -0
  369. data/vendor/pygments-main/tests/examplefiles/test.ec +605 -0
  370. data/vendor/pygments-main/tests/examplefiles/test.ecl +58 -0
  371. data/vendor/pygments-main/tests/examplefiles/test.eh +315 -0
  372. data/vendor/pygments-main/tests/examplefiles/test.erl +169 -0
  373. data/vendor/pygments-main/tests/examplefiles/test.evoque +33 -0
  374. data/vendor/pygments-main/tests/examplefiles/test.fan +818 -0
  375. data/vendor/pygments-main/tests/examplefiles/test.flx +57 -0
  376. data/vendor/pygments-main/tests/examplefiles/test.gdc +13 -0
  377. data/vendor/pygments-main/tests/examplefiles/test.groovy +97 -0
  378. data/vendor/pygments-main/tests/examplefiles/test.html +339 -0
  379. data/vendor/pygments-main/tests/examplefiles/test.ini +10 -0
  380. data/vendor/pygments-main/tests/examplefiles/test.java +653 -0
  381. data/vendor/pygments-main/tests/examplefiles/test.jsp +24 -0
  382. data/vendor/pygments-main/tests/examplefiles/test.maql +45 -0
  383. data/vendor/pygments-main/tests/examplefiles/test.mod +374 -0
  384. data/vendor/pygments-main/tests/examplefiles/test.moo +51 -0
  385. data/vendor/pygments-main/tests/examplefiles/test.myt +166 -0
  386. data/vendor/pygments-main/tests/examplefiles/test.nim +93 -0
  387. data/vendor/pygments-main/tests/examplefiles/test.opa +10 -0
  388. data/vendor/pygments-main/tests/examplefiles/test.p6 +252 -0
  389. data/vendor/pygments-main/tests/examplefiles/test.pas +743 -0
  390. data/vendor/pygments-main/tests/examplefiles/test.php +505 -0
  391. data/vendor/pygments-main/tests/examplefiles/test.plot +333 -0
  392. data/vendor/pygments-main/tests/examplefiles/test.ps1 +108 -0
  393. data/vendor/pygments-main/tests/examplefiles/test.pypylog +1839 -0
  394. data/vendor/pygments-main/tests/examplefiles/test.r3 +94 -0
  395. data/vendor/pygments-main/tests/examplefiles/test.rb +177 -0
  396. data/vendor/pygments-main/tests/examplefiles/test.rhtml +43 -0
  397. data/vendor/pygments-main/tests/examplefiles/test.scaml +8 -0
  398. data/vendor/pygments-main/tests/examplefiles/test.ssp +12 -0
  399. data/vendor/pygments-main/tests/examplefiles/test.tcsh +830 -0
  400. data/vendor/pygments-main/tests/examplefiles/test.vb +407 -0
  401. data/vendor/pygments-main/tests/examplefiles/test.vhdl +161 -0
  402. data/vendor/pygments-main/tests/examplefiles/test.xqy +138 -0
  403. data/vendor/pygments-main/tests/examplefiles/test.xsl +23 -0
  404. data/vendor/pygments-main/tests/examplefiles/test2.pypylog +120 -0
  405. data/vendor/pygments-main/tests/examplefiles/truncated.pytb +15 -0
  406. data/vendor/pygments-main/tests/examplefiles/type.lisp +1218 -0
  407. data/vendor/pygments-main/tests/examplefiles/underscore.coffee +603 -0
  408. data/vendor/pygments-main/tests/examplefiles/unicode.applescript +5 -0
  409. data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +11 -0
  410. data/vendor/pygments-main/tests/examplefiles/unix-io.lid +37 -0
  411. data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +3 -0
  412. data/vendor/pygments-main/tests/examplefiles/while.pov +13 -0
  413. data/vendor/pygments-main/tests/examplefiles/wiki.factor +384 -0
  414. data/vendor/pygments-main/tests/examplefiles/xml_example +1897 -0
  415. data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +798 -0
  416. data/vendor/pygments-main/tests/old_run.py +138 -0
  417. data/vendor/pygments-main/tests/run.py +49 -0
  418. data/vendor/pygments-main/tests/support.py +15 -0
  419. data/vendor/pygments-main/tests/support/tags +36 -0
  420. data/vendor/pygments-main/tests/test_basic_api.py +295 -0
  421. data/vendor/pygments-main/tests/test_clexer.py +31 -0
  422. data/vendor/pygments-main/tests/test_cmdline.py +105 -0
  423. data/vendor/pygments-main/tests/test_examplefiles.py +99 -0
  424. data/vendor/pygments-main/tests/test_html_formatter.py +178 -0
  425. data/vendor/pygments-main/tests/test_latex_formatter.py +55 -0
  426. data/vendor/pygments-main/tests/test_lexers_other.py +68 -0
  427. data/vendor/pygments-main/tests/test_perllexer.py +137 -0
  428. data/vendor/pygments-main/tests/test_regexlexer.py +47 -0
  429. data/vendor/pygments-main/tests/test_token.py +46 -0
  430. data/vendor/pygments-main/tests/test_using_api.py +40 -0
  431. data/vendor/pygments-main/tests/test_util.py +135 -0
  432. data/vendor/simplejson/.gitignore +10 -0
  433. data/vendor/simplejson/.travis.yml +5 -0
  434. data/vendor/simplejson/CHANGES.txt +291 -0
  435. data/vendor/simplejson/LICENSE.txt +19 -0
  436. data/vendor/simplejson/MANIFEST.in +5 -0
  437. data/vendor/simplejson/README.rst +19 -0
  438. data/vendor/simplejson/conf.py +179 -0
  439. data/vendor/simplejson/index.rst +628 -0
  440. data/vendor/simplejson/scripts/make_docs.py +18 -0
  441. data/vendor/simplejson/setup.py +104 -0
  442. data/vendor/simplejson/simplejson/__init__.py +510 -0
  443. data/vendor/simplejson/simplejson/_speedups.c +2745 -0
  444. data/vendor/simplejson/simplejson/decoder.py +425 -0
  445. data/vendor/simplejson/simplejson/encoder.py +567 -0
  446. data/vendor/simplejson/simplejson/ordered_dict.py +119 -0
  447. data/vendor/simplejson/simplejson/scanner.py +77 -0
  448. data/vendor/simplejson/simplejson/tests/__init__.py +67 -0
  449. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +55 -0
  450. data/vendor/simplejson/simplejson/tests/test_check_circular.py +30 -0
  451. data/vendor/simplejson/simplejson/tests/test_decimal.py +66 -0
  452. data/vendor/simplejson/simplejson/tests/test_decode.py +83 -0
  453. data/vendor/simplejson/simplejson/tests/test_default.py +9 -0
  454. data/vendor/simplejson/simplejson/tests/test_dump.py +67 -0
  455. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +46 -0
  456. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +32 -0
  457. data/vendor/simplejson/simplejson/tests/test_errors.py +34 -0
  458. data/vendor/simplejson/simplejson/tests/test_fail.py +91 -0
  459. data/vendor/simplejson/simplejson/tests/test_float.py +19 -0
  460. data/vendor/simplejson/simplejson/tests/test_indent.py +86 -0
  461. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +20 -0
  462. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +121 -0
  463. data/vendor/simplejson/simplejson/tests/test_pass1.py +76 -0
  464. data/vendor/simplejson/simplejson/tests/test_pass2.py +14 -0
  465. data/vendor/simplejson/simplejson/tests/test_pass3.py +20 -0
  466. data/vendor/simplejson/simplejson/tests/test_recursion.py +67 -0
  467. data/vendor/simplejson/simplejson/tests/test_scanstring.py +117 -0
  468. data/vendor/simplejson/simplejson/tests/test_separators.py +42 -0
  469. data/vendor/simplejson/simplejson/tests/test_speedups.py +20 -0
  470. data/vendor/simplejson/simplejson/tests/test_tuple.py +49 -0
  471. data/vendor/simplejson/simplejson/tests/test_unicode.py +109 -0
  472. data/vendor/simplejson/simplejson/tool.py +39 -0
  473. metadata +557 -0
@@ -0,0 +1,58 @@
1
+ /*##############################################################################
2
+
3
+ Copyright (C) 2011 HPCC Systems.
4
+
5
+ All rights reserved. This program is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Affero General Public License as
7
+ published by the Free Software Foundation, either version 3 of the
8
+ License, or (at your option) any later version.
9
+
10
+ This program is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Affero General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Affero General Public License
16
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ ############################################################################## */
18
+
19
+ #option ('slidingJoins', true);
20
+
21
+ namesRecord :=
22
+ RECORD
23
+ string20 surname;
24
+ string10 forename;
25
+ integer2 age;
26
+ integer2 dadAge;
27
+ integer2 mumAge;
28
+ END;
29
+
30
+ namesRecord2 :=
31
+ record
32
+ string10 extra;
33
+ namesRecord;
34
+ end;
35
+
36
+ namesTable := dataset('x',namesRecord,FLAT);
37
+ namesTable2 := dataset('y',namesRecord2,FLAT);
38
+
39
+ integer2 aveAgeL(namesRecord l) := (l.dadAge+l.mumAge)/2;
40
+ integer2 aveAgeR(namesRecord2 r) := (r.dadAge+r.mumAge)/2;
41
+
42
+ // Standard join on a function of left and right
43
+ output(join(namesTable, namesTable2, aveAgeL(left) = aveAgeR(right)));
44
+
45
+ //Several simple examples of sliding join syntax
46
+ output(join(namesTable, namesTable2, left.age >= right.age - 10 and left.age <= right.age +10));
47
+ output(join(namesTable, namesTable2, left.age between right.age - 10 and right.age +10));
48
+ output(join(namesTable, namesTable2, left.age between right.age + 10 and right.age +30));
49
+ output(join(namesTable, namesTable2, left.age between (right.age + 20) - 10 and (right.age +20) + 10));
50
+ output(join(namesTable, namesTable2, aveAgeL(left) between aveAgeR(right)+10 and aveAgeR(right)+40));
51
+
52
+ //Same, but on strings. Also includes age to ensure sort is done by non-sliding before sliding.
53
+ output(join(namesTable, namesTable2, left.surname between right.surname[1..10]+'AAAAAAAAAA' and right.surname[1..10]+'ZZZZZZZZZZ' and left.age=right.age));
54
+ output(join(namesTable, namesTable2, left.surname between right.surname[1..10]+'AAAAAAAAAA' and right.surname[1..10]+'ZZZZZZZZZZ' and left.age=right.age,all));
55
+
56
+ //This should not generate a self join
57
+ output(join(namesTable, namesTable, left.age between right.age - 10 and right.age +10));
58
+
@@ -0,0 +1,315 @@
1
+ /* A Bison parser, made by GNU Bison 2.0. */
2
+
3
+ /* Skeleton parser for Yacc-like parsing with Bison,
4
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
5
+
6
+ This program is free software; you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation; either version 2, or (at your option)
9
+ any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330,
19
+ Boston, MA 02111-1307, USA. */
20
+
21
+ /* As a special exception, when this file is copied by Bison into a
22
+ Bison output file, you may use that output file without restriction.
23
+ This special exception was added by the Free Software Foundation
24
+ in version 1.24 of Bison. */
25
+
26
+ /* Tokens. */
27
+ #ifndef YYTOKENTYPE
28
+ # define YYTOKENTYPE
29
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
30
+ know about them. */
31
+ enum yytokentype {
32
+ IDENTIFIER = 258,
33
+ CONSTANT = 259,
34
+ STRING_LITERAL = 260,
35
+ SIZEOF = 261,
36
+ PTR_OP = 262,
37
+ INC_OP = 263,
38
+ DEC_OP = 264,
39
+ LEFT_OP = 265,
40
+ RIGHT_OP = 266,
41
+ LE_OP = 267,
42
+ GE_OP = 268,
43
+ EQ_OP = 269,
44
+ NE_OP = 270,
45
+ AND_OP = 271,
46
+ OR_OP = 272,
47
+ MUL_ASSIGN = 273,
48
+ DIV_ASSIGN = 274,
49
+ MOD_ASSIGN = 275,
50
+ ADD_ASSIGN = 276,
51
+ SUB_ASSIGN = 277,
52
+ LEFT_ASSIGN = 278,
53
+ RIGHT_ASSIGN = 279,
54
+ AND_ASSIGN = 280,
55
+ XOR_ASSIGN = 281,
56
+ OR_ASSIGN = 282,
57
+ TYPE_NAME = 283,
58
+ TYPEDEF = 284,
59
+ EXTERN = 285,
60
+ STATIC = 286,
61
+ AUTO = 287,
62
+ REGISTER = 288,
63
+ CHAR = 289,
64
+ SHORT = 290,
65
+ INT = 291,
66
+ UINT = 292,
67
+ INT64 = 293,
68
+ LONG = 294,
69
+ SIGNED = 295,
70
+ UNSIGNED = 296,
71
+ FLOAT = 297,
72
+ DOUBLE = 298,
73
+ CONST = 299,
74
+ VOLATILE = 300,
75
+ VOID = 301,
76
+ VALIST = 302,
77
+ STRUCT = 303,
78
+ UNION = 304,
79
+ ENUM = 305,
80
+ ELLIPSIS = 306,
81
+ CASE = 307,
82
+ DEFAULT = 308,
83
+ IF = 309,
84
+ SWITCH = 310,
85
+ WHILE = 311,
86
+ DO = 312,
87
+ FOR = 313,
88
+ GOTO = 314,
89
+ CONTINUE = 315,
90
+ BREAK = 316,
91
+ RETURN = 317,
92
+ IFX = 318,
93
+ ELSE = 319,
94
+ CLASS = 320,
95
+ THISCLASS = 321,
96
+ CLASS_NAME = 322,
97
+ PROPERTY = 323,
98
+ SETPROP = 324,
99
+ GETPROP = 325,
100
+ NEWOP = 326,
101
+ RENEW = 327,
102
+ DELETE = 328,
103
+ EXT_DECL = 329,
104
+ EXT_STORAGE = 330,
105
+ IMPORT = 331,
106
+ DEFINE = 332,
107
+ VIRTUAL = 333,
108
+ EXT_ATTRIB = 334,
109
+ PUBLIC = 335,
110
+ PRIVATE = 336,
111
+ TYPED_OBJECT = 337,
112
+ ANY_OBJECT = 338,
113
+ _INCREF = 339,
114
+ EXTENSION = 340,
115
+ ASM = 341,
116
+ TYPEOF = 342,
117
+ WATCH = 343,
118
+ STOPWATCHING = 344,
119
+ FIREWATCHERS = 345,
120
+ WATCHABLE = 346,
121
+ CLASS_DESIGNER = 347,
122
+ CLASS_NO_EXPANSION = 348,
123
+ CLASS_FIXED = 349,
124
+ ISPROPSET = 350,
125
+ CLASS_DEFAULT_PROPERTY = 351,
126
+ PROPERTY_CATEGORY = 352,
127
+ CLASS_DATA = 353,
128
+ CLASS_PROPERTY = 354,
129
+ SUBCLASS = 355,
130
+ NAMESPACE = 356,
131
+ NEW0OP = 357,
132
+ RENEW0 = 358,
133
+ VAARG = 359,
134
+ DBTABLE = 360,
135
+ DBFIELD = 361,
136
+ DBINDEX = 362,
137
+ DATABASE_OPEN = 363
138
+ };
139
+ #endif
140
+ #define IDENTIFIER 258
141
+ #define CONSTANT 259
142
+ #define STRING_LITERAL 260
143
+ #define SIZEOF 261
144
+ #define PTR_OP 262
145
+ #define INC_OP 263
146
+ #define DEC_OP 264
147
+ #define LEFT_OP 265
148
+ #define RIGHT_OP 266
149
+ #define LE_OP 267
150
+ #define GE_OP 268
151
+ #define EQ_OP 269
152
+ #define NE_OP 270
153
+ #define AND_OP 271
154
+ #define OR_OP 272
155
+ #define MUL_ASSIGN 273
156
+ #define DIV_ASSIGN 274
157
+ #define MOD_ASSIGN 275
158
+ #define ADD_ASSIGN 276
159
+ #define SUB_ASSIGN 277
160
+ #define LEFT_ASSIGN 278
161
+ #define RIGHT_ASSIGN 279
162
+ #define AND_ASSIGN 280
163
+ #define XOR_ASSIGN 281
164
+ #define OR_ASSIGN 282
165
+ #define TYPE_NAME 283
166
+ #define TYPEDEF 284
167
+ #define EXTERN 285
168
+ #define STATIC 286
169
+ #define AUTO 287
170
+ #define REGISTER 288
171
+ #define CHAR 289
172
+ #define SHORT 290
173
+ #define INT 291
174
+ #define UINT 292
175
+ #define INT64 293
176
+ #define LONG 294
177
+ #define SIGNED 295
178
+ #define UNSIGNED 296
179
+ #define FLOAT 297
180
+ #define DOUBLE 298
181
+ #define CONST 299
182
+ #define VOLATILE 300
183
+ #define VOID 301
184
+ #define VALIST 302
185
+ #define STRUCT 303
186
+ #define UNION 304
187
+ #define ENUM 305
188
+ #define ELLIPSIS 306
189
+ #define CASE 307
190
+ #define DEFAULT 308
191
+ #define IF 309
192
+ #define SWITCH 310
193
+ #define WHILE 311
194
+ #define DO 312
195
+ #define FOR 313
196
+ #define GOTO 314
197
+ #define CONTINUE 315
198
+ #define BREAK 316
199
+ #define RETURN 317
200
+ #define IFX 318
201
+ #define ELSE 319
202
+ #define CLASS 320
203
+ #define THISCLASS 321
204
+ #define CLASS_NAME 322
205
+ #define PROPERTY 323
206
+ #define SETPROP 324
207
+ #define GETPROP 325
208
+ #define NEWOP 326
209
+ #define RENEW 327
210
+ #define DELETE 328
211
+ #define EXT_DECL 329
212
+ #define EXT_STORAGE 330
213
+ #define IMPORT 331
214
+ #define DEFINE 332
215
+ #define VIRTUAL 333
216
+ #define EXT_ATTRIB 334
217
+ #define PUBLIC 335
218
+ #define PRIVATE 336
219
+ #define TYPED_OBJECT 337
220
+ #define ANY_OBJECT 338
221
+ #define _INCREF 339
222
+ #define EXTENSION 340
223
+ #define ASM 341
224
+ #define TYPEOF 342
225
+ #define WATCH 343
226
+ #define STOPWATCHING 344
227
+ #define FIREWATCHERS 345
228
+ #define WATCHABLE 346
229
+ #define CLASS_DESIGNER 347
230
+ #define CLASS_NO_EXPANSION 348
231
+ #define CLASS_FIXED 349
232
+ #define ISPROPSET 350
233
+ #define CLASS_DEFAULT_PROPERTY 351
234
+ #define PROPERTY_CATEGORY 352
235
+ #define CLASS_DATA 353
236
+ #define CLASS_PROPERTY 354
237
+ #define SUBCLASS 355
238
+ #define NAMESPACE 356
239
+ #define NEW0OP 357
240
+ #define RENEW0 358
241
+ #define VAARG 359
242
+ #define DBTABLE 360
243
+ #define DBFIELD 361
244
+ #define DBINDEX 362
245
+ #define DATABASE_OPEN 363
246
+
247
+
248
+
249
+
250
+ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
251
+ #line 42 "grammar.y"
252
+ typedef union YYSTYPE {
253
+ SpecifierType specifierType;
254
+ int i;
255
+ AccessMode declMode;
256
+ Identifier id;
257
+ Expression exp;
258
+ Specifier specifier;
259
+ OldList * list;
260
+ Enumerator enumerator;
261
+ Declarator declarator;
262
+ Pointer pointer;
263
+ Initializer initializer;
264
+ InitDeclarator initDeclarator;
265
+ TypeName typeName;
266
+ Declaration declaration;
267
+ Statement stmt;
268
+ FunctionDefinition function;
269
+ External external;
270
+ Context context;
271
+ AsmField asmField;
272
+
273
+ Instantiation instance;
274
+ MembersInit membersInit;
275
+ MemberInit memberInit;
276
+ ClassFunction classFunction;
277
+ ClassDefinition _class;
278
+ ClassDef classDef;
279
+ PropertyDef prop;
280
+ char * string;
281
+ Symbol symbol;
282
+ PropertyWatch propertyWatch;
283
+ TemplateParameter templateParameter;
284
+ TemplateArgument templateArgument;
285
+ TemplateDatatype templateDatatype;
286
+
287
+ DBTableEntry dbtableEntry;
288
+ DBIndexItem dbindexItem;
289
+ DBTableDef dbtableDef;
290
+ } YYSTYPE;
291
+ /* Line 1318 of yacc.c. */
292
+ #line 293 "grammar.eh"
293
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
294
+ # define YYSTYPE_IS_DECLARED 1
295
+ # define YYSTYPE_IS_TRIVIAL 1
296
+ #endif
297
+
298
+ extern YYSTYPE yylval;
299
+
300
+ #if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
301
+ typedef struct YYLTYPE
302
+ {
303
+ int first_line;
304
+ int first_column;
305
+ int last_line;
306
+ int last_column;
307
+ } YYLTYPE;
308
+ # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
309
+ # define YYLTYPE_IS_DECLARED 1
310
+ # define YYLTYPE_IS_TRIVIAL 1
311
+ #endif
312
+
313
+ extern YYLTYPE yylloc;
314
+
315
+
@@ -0,0 +1,169 @@
1
+ -module(test).
2
+ -export([listen/1,
3
+ handle_client/1,
4
+ maintain_clients/1,
5
+ start/1,
6
+ stop/0,
7
+ controller/1]).
8
+
9
+ -author("jerith").
10
+
11
+ -define(TCP_OPTIONS,[list, {packet, 0}, {active, false}, {reuseaddr, true}]).
12
+
13
+ -record(player, {name=none, socket, mode}).
14
+
15
+ %% To allow incoming connections, we need to listen on a TCP port.
16
+ %% This is also the entry point for our server as a whole, so it
17
+ %% starts the client_manager process and gives it a name so the rest
18
+ %% of the code can get to it easily.
19
+
20
+ listen(Port) ->
21
+ {ok, LSocket} = gen_tcp:listen(Port, ?TCP_OPTIONS),
22
+ register(client_manager, spawn(?MODULE, maintain_clients, [[]])),
23
+ do_accept(LSocket).
24
+
25
+ %% Accepting a connection gives us a connection socket with the
26
+ %% newly-connected client on the other end. Since we want to accept
27
+ %% more than one client, we spawn a new process for each and then wait
28
+ %% for another connection on our listening socket.
29
+
30
+ do_accept(LSocket) ->
31
+ case gen_tcp:accept(LSocket) of
32
+ {ok, Socket} ->
33
+ spawn(?MODULE, handle_client, [Socket]),
34
+ client_manager ! {connect, Socket};
35
+ {error, Reason} ->
36
+ io:format("Socket accept error: ~s~n", [Reason])
37
+ end,
38
+ do_accept(LSocket).
39
+
40
+ %% All the client-socket process needs to do is wait for data and
41
+ %% forward it to the client_manager process which decides what to do
42
+ %% with it. If the client disconnects, we let client_manager know and
43
+ %% then quietly go away.
44
+
45
+ handle_client(Socket) ->
46
+ case gen_tcp:recv(Socket, 0) of
47
+ {ok, Data} ->
48
+ client_manager ! {data, Socket, Data},
49
+ handle_client(Socket);
50
+ {error, closed} ->
51
+ client_manager ! {disconnect, Socket}
52
+ end.
53
+
54
+ %% This is the main loop of the client_manager process. It maintains
55
+ %% the list of "players" and calls the handler for client input.
56
+
57
+ maintain_clients(Players) ->
58
+ io:format("Players:~n", []),
59
+ lists:foreach(fun(P) -> io:format(">>> ~w~n", [P]) end, Players),
60
+ receive
61
+ {connect, Socket} ->
62
+ Player = #player{socket=Socket, mode=connect},
63
+ send_prompt(Player),
64
+ io:format("client connected: ~w~n", [Player]),
65
+ NewPlayers = [Player | Players];
66
+ {disconnect, Socket} ->
67
+ Player = find_player(Socket, Players),
68
+ io:format("client disconnected: ~w~n", [Player]),
69
+ NewPlayers = lists:delete(Player, Players);
70
+ {data, Socket, Data} ->
71
+ Player = find_player(Socket, Players),
72
+ NewPlayers = parse_data(Player, Players, Data),
73
+ NewPlayer = find_player(Socket, NewPlayers),
74
+ send_prompt(NewPlayer)
75
+ end,
76
+ maintain_clients(NewPlayers).
77
+
78
+ %% find_player is a utility function to get a player record associated
79
+ %% with a particular socket out of the player list.
80
+
81
+ find_player(Socket, Players) ->
82
+ {value, Player} = lists:keysearch(Socket, #player.socket, Players),
83
+ Player.
84
+
85
+ %% delete_player returns the player list without the given player. It
86
+ %% deletes the player from the list based on the socket rather than
87
+ %% the whole record because the list might hold a different version.
88
+
89
+ delete_player(Player, Players) ->
90
+ lists:keydelete(Player#player.socket, #player.socket, Players).
91
+
92
+ %% Sends an appropriate prompt to the player. Currently the only
93
+ %% prompt we send is the initial "Name: " when the player connects.
94
+
95
+ send_prompt(Player) ->
96
+ case Player#player.mode of
97
+ connect ->
98
+ gen_tcp:send(Player#player.socket, "Name: ");
99
+ active ->
100
+ ok
101
+ end.
102
+
103
+ %% Sends the given data to all players in active mode.
104
+
105
+ send_to_active(Prefix, Players, Data) ->
106
+ ActivePlayers = lists:filter(fun(P) -> P#player.mode == active end,
107
+ Players),
108
+ lists:foreach(fun(P) -> gen_tcp:send(P#player.socket, Prefix ++ Data) end,
109
+ ActivePlayers),
110
+ ok.
111
+
112
+ %% We don't really do much parsing, but that will probably change as
113
+ %% more features are added. Currently this handles naming the player
114
+ %% when he first connects and treats everything else as a message to
115
+ %% send.
116
+
117
+ parse_data(Player, Players, Data) ->
118
+ case Player#player.mode of
119
+ active ->
120
+ send_to_active(Player#player.name ++ ": ",
121
+ delete_player(Player, Players), Data),
122
+ Players;
123
+ connect ->
124
+ UPlayer = Player#player{name=bogostrip(Data), mode=active},
125
+ [UPlayer | delete_player(Player, Players)]
126
+ end.
127
+
128
+ %% Utility methods to clean up the name before we apply it. Called
129
+ %% bogostrip rather than strip because it returns the first continuous
130
+ %% block of non-matching characters rather stripping matching
131
+ %% characters off the front and back.
132
+
133
+ bogostrip(String) ->
134
+ bogostrip(String, "\r\n\t ").
135
+
136
+ bogostrip(String, Chars) ->
137
+ LStripped = string:substr(String, string:span(String, Chars)+1),
138
+ string:substr(LStripped, 1, string:cspan(LStripped, Chars)).
139
+
140
+ %% Here we have some extra code to test other bits of pygments' Erlang
141
+ %% lexer.
142
+
143
+ get_timestamp() ->
144
+ {{Year,Month,Day},{Hour,Min,Sec}} = erlang:universaltime(),
145
+ lists:flatten(io_lib:format(
146
+ "~4.10.0B-~2.10.0B-~2.10.0BT~2.10.0B:~2.10.0B:~2.10.0BZ",
147
+ [Year, Month, Day, Hour, Min, Sec])).
148
+
149
+ a_binary() ->
150
+ << 100:16/integer, 16#7f >>.
151
+
152
+ a_list_comprehension() ->
153
+ [X*2 || X <- [1,2,3]].
154
+
155
+ map(Fun, [H|T]) ->
156
+ [Fun(H) | map(Fun, T)];
157
+
158
+ map(Fun, []) ->
159
+ [].
160
+
161
+ %% pmap, just because it's cool.
162
+
163
+ pmap(F, L) ->
164
+ Parent = self(),
165
+ [receive {Pid, Result} ->
166
+ Result
167
+ end || Pid <- [spawn(fun() ->
168
+ Parent ! {self(), F(X)}
169
+ end) || X <- L]].