ruby_on_ruby 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (493) hide show
  1. data/.gitignore +18 -0
  2. data/.rvmrc +1 -0
  3. data/Gemfile +6 -0
  4. data/LICENSE +22 -0
  5. data/README.md +66 -0
  6. data/Rakefile +1 -0
  7. data/lib/ruby_on_ruby.rb +5 -0
  8. data/lib/ruby_on_ruby/console.rb +7 -0
  9. data/lib/ruby_on_ruby/context.rb +33 -0
  10. data/lib/ruby_on_ruby/file_loader.rb +31 -0
  11. data/lib/ruby_on_ruby/ruby_stream.rb +27 -0
  12. data/lib/ruby_on_ruby/version.rb +3 -0
  13. data/lib/rubyonruby.rb +1 -0
  14. data/ruby_in_ruby.gemspec +19 -0
  15. data/vendor/javascripts/emscripted-ruby/lib/.document +106 -0
  16. data/vendor/javascripts/emscripted-ruby/lib/English.rb +155 -0
  17. data/vendor/javascripts/emscripted-ruby/lib/Env.rb +18 -0
  18. data/vendor/javascripts/emscripted-ruby/lib/README +96 -0
  19. data/vendor/javascripts/emscripted-ruby/lib/abbrev.rb +103 -0
  20. data/vendor/javascripts/emscripted-ruby/lib/base64.rb +133 -0
  21. data/vendor/javascripts/emscripted-ruby/lib/benchmark.rb +572 -0
  22. data/vendor/javascripts/emscripted-ruby/lib/cgi-lib.rb +272 -0
  23. data/vendor/javascripts/emscripted-ruby/lib/cgi.rb +2308 -0
  24. data/vendor/javascripts/emscripted-ruby/lib/cgi/.document +2 -0
  25. data/vendor/javascripts/emscripted-ruby/lib/cgi/session.rb +498 -0
  26. data/vendor/javascripts/emscripted-ruby/lib/cgi/session/pstore.rb +111 -0
  27. data/vendor/javascripts/emscripted-ruby/lib/complex.rb +663 -0
  28. data/vendor/javascripts/emscripted-ruby/lib/csv.rb +992 -0
  29. data/vendor/javascripts/emscripted-ruby/lib/date.rb +1767 -0
  30. data/vendor/javascripts/emscripted-ruby/lib/date/format.rb +1190 -0
  31. data/vendor/javascripts/emscripted-ruby/lib/date2.rb +5 -0
  32. data/vendor/javascripts/emscripted-ruby/lib/debug.rb +947 -0
  33. data/vendor/javascripts/emscripted-ruby/lib/delegate.rb +337 -0
  34. data/vendor/javascripts/emscripted-ruby/lib/drb.rb +2 -0
  35. data/vendor/javascripts/emscripted-ruby/lib/drb/acl.rb +146 -0
  36. data/vendor/javascripts/emscripted-ruby/lib/drb/drb.rb +1782 -0
  37. data/vendor/javascripts/emscripted-ruby/lib/drb/eq.rb +16 -0
  38. data/vendor/javascripts/emscripted-ruby/lib/drb/extserv.rb +64 -0
  39. data/vendor/javascripts/emscripted-ruby/lib/drb/extservm.rb +89 -0
  40. data/vendor/javascripts/emscripted-ruby/lib/drb/gw.rb +122 -0
  41. data/vendor/javascripts/emscripted-ruby/lib/drb/invokemethod.rb +36 -0
  42. data/vendor/javascripts/emscripted-ruby/lib/drb/observer.rb +22 -0
  43. data/vendor/javascripts/emscripted-ruby/lib/drb/ssl.rb +190 -0
  44. data/vendor/javascripts/emscripted-ruby/lib/drb/timeridconv.rb +91 -0
  45. data/vendor/javascripts/emscripted-ruby/lib/drb/unix.rb +108 -0
  46. data/vendor/javascripts/emscripted-ruby/lib/e2mmap.rb +195 -0
  47. data/vendor/javascripts/emscripted-ruby/lib/erb.rb +880 -0
  48. data/vendor/javascripts/emscripted-ruby/lib/eregex.rb +37 -0
  49. data/vendor/javascripts/emscripted-ruby/lib/fileutils.rb +1591 -0
  50. data/vendor/javascripts/emscripted-ruby/lib/finalize.rb +193 -0
  51. data/vendor/javascripts/emscripted-ruby/lib/find.rb +79 -0
  52. data/vendor/javascripts/emscripted-ruby/lib/forwardable.rb +218 -0
  53. data/vendor/javascripts/emscripted-ruby/lib/ftools.rb +261 -0
  54. data/vendor/javascripts/emscripted-ruby/lib/generator.rb +418 -0
  55. data/vendor/javascripts/emscripted-ruby/lib/getoptlong.rb +621 -0
  56. data/vendor/javascripts/emscripted-ruby/lib/getopts.rb +127 -0
  57. data/vendor/javascripts/emscripted-ruby/lib/gserver.rb +253 -0
  58. data/vendor/javascripts/emscripted-ruby/lib/importenv.rb +33 -0
  59. data/vendor/javascripts/emscripted-ruby/lib/ipaddr.rb +814 -0
  60. data/vendor/javascripts/emscripted-ruby/lib/irb.rb +346 -0
  61. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/chws.rb +33 -0
  62. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/fork.rb +39 -0
  63. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/help.rb +34 -0
  64. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/load.rb +67 -0
  65. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/nop.rb +39 -0
  66. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/pushws.rb +39 -0
  67. data/vendor/javascripts/emscripted-ruby/lib/irb/cmd/subirb.rb +43 -0
  68. data/vendor/javascripts/emscripted-ruby/lib/irb/completion.rb +205 -0
  69. data/vendor/javascripts/emscripted-ruby/lib/irb/context.rb +255 -0
  70. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/change-ws.rb +62 -0
  71. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/history.rb +110 -0
  72. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/loader.rb +120 -0
  73. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/math-mode.rb +37 -0
  74. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/multi-irb.rb +241 -0
  75. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/save-history.rb +85 -0
  76. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/tracer.rb +61 -0
  77. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/use-loader.rb +65 -0
  78. data/vendor/javascripts/emscripted-ruby/lib/irb/ext/workspaces.rb +56 -0
  79. data/vendor/javascripts/emscripted-ruby/lib/irb/extend-command.rb +264 -0
  80. data/vendor/javascripts/emscripted-ruby/lib/irb/frame.rb +67 -0
  81. data/vendor/javascripts/emscripted-ruby/lib/irb/help.rb +33 -0
  82. data/vendor/javascripts/emscripted-ruby/lib/irb/init.rb +259 -0
  83. data/vendor/javascripts/emscripted-ruby/lib/irb/input-method.rb +120 -0
  84. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/error.rb +30 -0
  85. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/help-message +35 -0
  86. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/ja/error.rb +27 -0
  87. data/vendor/javascripts/emscripted-ruby/lib/irb/lc/ja/help-message +36 -0
  88. data/vendor/javascripts/emscripted-ruby/lib/irb/locale.rb +184 -0
  89. data/vendor/javascripts/emscripted-ruby/lib/irb/notifier.rb +145 -0
  90. data/vendor/javascripts/emscripted-ruby/lib/irb/output-method.rb +85 -0
  91. data/vendor/javascripts/emscripted-ruby/lib/irb/ruby-lex.rb +1149 -0
  92. data/vendor/javascripts/emscripted-ruby/lib/irb/ruby-token.rb +273 -0
  93. data/vendor/javascripts/emscripted-ruby/lib/irb/slex.rb +285 -0
  94. data/vendor/javascripts/emscripted-ruby/lib/irb/version.rb +16 -0
  95. data/vendor/javascripts/emscripted-ruby/lib/irb/workspace.rb +107 -0
  96. data/vendor/javascripts/emscripted-ruby/lib/irb/ws-for-case-2.rb +15 -0
  97. data/vendor/javascripts/emscripted-ruby/lib/irb/xmp.rb +86 -0
  98. data/vendor/javascripts/emscripted-ruby/lib/jcode.rb +220 -0
  99. data/vendor/javascripts/emscripted-ruby/lib/logger.rb +703 -0
  100. data/vendor/javascripts/emscripted-ruby/lib/mailread.rb +62 -0
  101. data/vendor/javascripts/emscripted-ruby/lib/mathn.rb +308 -0
  102. data/vendor/javascripts/emscripted-ruby/lib/matrix.rb +1278 -0
  103. data/vendor/javascripts/emscripted-ruby/lib/mkmf.rb +1811 -0
  104. data/vendor/javascripts/emscripted-ruby/lib/monitor.rb +352 -0
  105. data/vendor/javascripts/emscripted-ruby/lib/mutex_m.rb +122 -0
  106. data/vendor/javascripts/emscripted-ruby/lib/net/ftp.rb +927 -0
  107. data/vendor/javascripts/emscripted-ruby/lib/net/http.rb +2277 -0
  108. data/vendor/javascripts/emscripted-ruby/lib/net/https.rb +173 -0
  109. data/vendor/javascripts/emscripted-ruby/lib/net/imap.rb +3371 -0
  110. data/vendor/javascripts/emscripted-ruby/lib/net/pop.rb +999 -0
  111. data/vendor/javascripts/emscripted-ruby/lib/net/protocol.rb +392 -0
  112. data/vendor/javascripts/emscripted-ruby/lib/net/smtp.rb +1014 -0
  113. data/vendor/javascripts/emscripted-ruby/lib/net/telnet.rb +756 -0
  114. data/vendor/javascripts/emscripted-ruby/lib/observer.rb +192 -0
  115. data/vendor/javascripts/emscripted-ruby/lib/open-uri.rb +678 -0
  116. data/vendor/javascripts/emscripted-ruby/lib/open3.rb +101 -0
  117. data/vendor/javascripts/emscripted-ruby/lib/optparse.rb +1790 -0
  118. data/vendor/javascripts/emscripted-ruby/lib/optparse/date.rb +17 -0
  119. data/vendor/javascripts/emscripted-ruby/lib/optparse/shellwords.rb +6 -0
  120. data/vendor/javascripts/emscripted-ruby/lib/optparse/time.rb +10 -0
  121. data/vendor/javascripts/emscripted-ruby/lib/optparse/uri.rb +6 -0
  122. data/vendor/javascripts/emscripted-ruby/lib/optparse/version.rb +70 -0
  123. data/vendor/javascripts/emscripted-ruby/lib/ostruct.rb +146 -0
  124. data/vendor/javascripts/emscripted-ruby/lib/parsearg.rb +87 -0
  125. data/vendor/javascripts/emscripted-ruby/lib/parsedate.rb +53 -0
  126. data/vendor/javascripts/emscripted-ruby/lib/pathname.rb +1062 -0
  127. data/vendor/javascripts/emscripted-ruby/lib/ping.rb +64 -0
  128. data/vendor/javascripts/emscripted-ruby/lib/pp.rb +654 -0
  129. data/vendor/javascripts/emscripted-ruby/lib/prettyprint.rb +896 -0
  130. data/vendor/javascripts/emscripted-ruby/lib/profile.rb +6 -0
  131. data/vendor/javascripts/emscripted-ruby/lib/profiler.rb +59 -0
  132. data/vendor/javascripts/emscripted-ruby/lib/pstore.rb +395 -0
  133. data/vendor/javascripts/emscripted-ruby/lib/racc/parser.rb +442 -0
  134. data/vendor/javascripts/emscripted-ruby/lib/rational.rb +564 -0
  135. data/vendor/javascripts/emscripted-ruby/lib/readbytes.rb +41 -0
  136. data/vendor/javascripts/emscripted-ruby/lib/resolv-replace.rb +62 -0
  137. data/vendor/javascripts/emscripted-ruby/lib/resolv.rb +2210 -0
  138. data/vendor/javascripts/emscripted-ruby/lib/rexml/attlistdecl.rb +62 -0
  139. data/vendor/javascripts/emscripted-ruby/lib/rexml/attribute.rb +185 -0
  140. data/vendor/javascripts/emscripted-ruby/lib/rexml/cdata.rb +67 -0
  141. data/vendor/javascripts/emscripted-ruby/lib/rexml/child.rb +96 -0
  142. data/vendor/javascripts/emscripted-ruby/lib/rexml/comment.rb +80 -0
  143. data/vendor/javascripts/emscripted-ruby/lib/rexml/doctype.rb +271 -0
  144. data/vendor/javascripts/emscripted-ruby/lib/rexml/document.rb +208 -0
  145. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/attlistdecl.rb +10 -0
  146. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/dtd.rb +51 -0
  147. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/elementdecl.rb +17 -0
  148. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/entitydecl.rb +56 -0
  149. data/vendor/javascripts/emscripted-ruby/lib/rexml/dtd/notationdecl.rb +39 -0
  150. data/vendor/javascripts/emscripted-ruby/lib/rexml/element.rb +1227 -0
  151. data/vendor/javascripts/emscripted-ruby/lib/rexml/encoding.rb +71 -0
  152. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/CP-1252.rb +103 -0
  153. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/EUC-JP.rb +35 -0
  154. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ICONV.rb +22 -0
  155. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ISO-8859-1.rb +7 -0
  156. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/ISO-8859-15.rb +72 -0
  157. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/SHIFT-JIS.rb +37 -0
  158. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/SHIFT_JIS.rb +1 -0
  159. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UNILE.rb +34 -0
  160. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/US-ASCII.rb +30 -0
  161. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UTF-16.rb +35 -0
  162. data/vendor/javascripts/emscripted-ruby/lib/rexml/encodings/UTF-8.rb +18 -0
  163. data/vendor/javascripts/emscripted-ruby/lib/rexml/entity.rb +165 -0
  164. data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/default.rb +109 -0
  165. data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/pretty.rb +137 -0
  166. data/vendor/javascripts/emscripted-ruby/lib/rexml/formatters/transitive.rb +56 -0
  167. data/vendor/javascripts/emscripted-ruby/lib/rexml/functions.rb +382 -0
  168. data/vendor/javascripts/emscripted-ruby/lib/rexml/instruction.rb +70 -0
  169. data/vendor/javascripts/emscripted-ruby/lib/rexml/light/node.rb +196 -0
  170. data/vendor/javascripts/emscripted-ruby/lib/rexml/namespace.rb +47 -0
  171. data/vendor/javascripts/emscripted-ruby/lib/rexml/node.rb +75 -0
  172. data/vendor/javascripts/emscripted-ruby/lib/rexml/output.rb +24 -0
  173. data/vendor/javascripts/emscripted-ruby/lib/rexml/parent.rb +166 -0
  174. data/vendor/javascripts/emscripted-ruby/lib/rexml/parseexception.rb +51 -0
  175. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/baseparser.rb +503 -0
  176. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/lightparser.rb +60 -0
  177. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/pullparser.rb +196 -0
  178. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/sax2parser.rb +238 -0
  179. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/streamparser.rb +46 -0
  180. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/treeparser.rb +97 -0
  181. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/ultralightparser.rb +56 -0
  182. data/vendor/javascripts/emscripted-ruby/lib/rexml/parsers/xpathparser.rb +698 -0
  183. data/vendor/javascripts/emscripted-ruby/lib/rexml/quickpath.rb +266 -0
  184. data/vendor/javascripts/emscripted-ruby/lib/rexml/rexml.rb +32 -0
  185. data/vendor/javascripts/emscripted-ruby/lib/rexml/sax2listener.rb +97 -0
  186. data/vendor/javascripts/emscripted-ruby/lib/rexml/source.rb +251 -0
  187. data/vendor/javascripts/emscripted-ruby/lib/rexml/streamlistener.rb +92 -0
  188. data/vendor/javascripts/emscripted-ruby/lib/rexml/syncenumerator.rb +33 -0
  189. data/vendor/javascripts/emscripted-ruby/lib/rexml/text.rb +344 -0
  190. data/vendor/javascripts/emscripted-ruby/lib/rexml/undefinednamespaceexception.rb +8 -0
  191. data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/relaxng.rb +559 -0
  192. data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/validation.rb +155 -0
  193. data/vendor/javascripts/emscripted-ruby/lib/rexml/validation/validationexception.rb +9 -0
  194. data/vendor/javascripts/emscripted-ruby/lib/rexml/xmldecl.rb +119 -0
  195. data/vendor/javascripts/emscripted-ruby/lib/rexml/xmltokens.rb +18 -0
  196. data/vendor/javascripts/emscripted-ruby/lib/rexml/xpath.rb +66 -0
  197. data/vendor/javascripts/emscripted-ruby/lib/rexml/xpath_parser.rb +792 -0
  198. data/vendor/javascripts/emscripted-ruby/lib/rinda/rinda.rb +283 -0
  199. data/vendor/javascripts/emscripted-ruby/lib/rinda/ring.rb +271 -0
  200. data/vendor/javascripts/emscripted-ruby/lib/rinda/tuplespace.rb +642 -0
  201. data/vendor/javascripts/emscripted-ruby/lib/rss.rb +19 -0
  202. data/vendor/javascripts/emscripted-ruby/lib/rss/0.9.rb +428 -0
  203. data/vendor/javascripts/emscripted-ruby/lib/rss/1.0.rb +452 -0
  204. data/vendor/javascripts/emscripted-ruby/lib/rss/2.0.rb +111 -0
  205. data/vendor/javascripts/emscripted-ruby/lib/rss/atom.rb +749 -0
  206. data/vendor/javascripts/emscripted-ruby/lib/rss/content.rb +31 -0
  207. data/vendor/javascripts/emscripted-ruby/lib/rss/content/1.0.rb +10 -0
  208. data/vendor/javascripts/emscripted-ruby/lib/rss/content/2.0.rb +12 -0
  209. data/vendor/javascripts/emscripted-ruby/lib/rss/converter.rb +162 -0
  210. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore.rb +161 -0
  211. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/1.0.rb +13 -0
  212. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/2.0.rb +13 -0
  213. data/vendor/javascripts/emscripted-ruby/lib/rss/dublincore/atom.rb +17 -0
  214. data/vendor/javascripts/emscripted-ruby/lib/rss/image.rb +193 -0
  215. data/vendor/javascripts/emscripted-ruby/lib/rss/itunes.rb +410 -0
  216. data/vendor/javascripts/emscripted-ruby/lib/rss/maker.rb +44 -0
  217. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/0.9.rb +467 -0
  218. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/1.0.rb +434 -0
  219. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/2.0.rb +223 -0
  220. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/atom.rb +172 -0
  221. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/base.rb +868 -0
  222. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/content.rb +21 -0
  223. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/dublincore.rb +124 -0
  224. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/entry.rb +163 -0
  225. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/feed.rb +429 -0
  226. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/image.rb +111 -0
  227. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/itunes.rb +242 -0
  228. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/slash.rb +33 -0
  229. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/syndication.rb +18 -0
  230. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/taxonomy.rb +118 -0
  231. data/vendor/javascripts/emscripted-ruby/lib/rss/maker/trackback.rb +61 -0
  232. data/vendor/javascripts/emscripted-ruby/lib/rss/parser.rb +541 -0
  233. data/vendor/javascripts/emscripted-ruby/lib/rss/rexmlparser.rb +54 -0
  234. data/vendor/javascripts/emscripted-ruby/lib/rss/rss.rb +1312 -0
  235. data/vendor/javascripts/emscripted-ruby/lib/rss/slash.rb +49 -0
  236. data/vendor/javascripts/emscripted-ruby/lib/rss/syndication.rb +67 -0
  237. data/vendor/javascripts/emscripted-ruby/lib/rss/taxonomy.rb +145 -0
  238. data/vendor/javascripts/emscripted-ruby/lib/rss/trackback.rb +288 -0
  239. data/vendor/javascripts/emscripted-ruby/lib/rss/utils.rb +111 -0
  240. data/vendor/javascripts/emscripted-ruby/lib/rss/xml-stylesheet.rb +105 -0
  241. data/vendor/javascripts/emscripted-ruby/lib/rss/xml.rb +71 -0
  242. data/vendor/javascripts/emscripted-ruby/lib/rss/xmlparser.rb +93 -0
  243. data/vendor/javascripts/emscripted-ruby/lib/rss/xmlscanner.rb +121 -0
  244. data/vendor/javascripts/emscripted-ruby/lib/rubyunit.rb +6 -0
  245. data/vendor/javascripts/emscripted-ruby/lib/runit/assert.rb +73 -0
  246. data/vendor/javascripts/emscripted-ruby/lib/runit/cui/testrunner.rb +51 -0
  247. data/vendor/javascripts/emscripted-ruby/lib/runit/error.rb +9 -0
  248. data/vendor/javascripts/emscripted-ruby/lib/runit/testcase.rb +45 -0
  249. data/vendor/javascripts/emscripted-ruby/lib/runit/testresult.rb +44 -0
  250. data/vendor/javascripts/emscripted-ruby/lib/runit/testsuite.rb +26 -0
  251. data/vendor/javascripts/emscripted-ruby/lib/runit/topublic.rb +8 -0
  252. data/vendor/javascripts/emscripted-ruby/lib/scanf.rb +702 -0
  253. data/vendor/javascripts/emscripted-ruby/lib/securerandom.rb +137 -0
  254. data/vendor/javascripts/emscripted-ruby/lib/set.rb +1233 -0
  255. data/vendor/javascripts/emscripted-ruby/lib/shell.rb +269 -0
  256. data/vendor/javascripts/emscripted-ruby/lib/shell/builtin-command.rb +154 -0
  257. data/vendor/javascripts/emscripted-ruby/lib/shell/command-processor.rb +592 -0
  258. data/vendor/javascripts/emscripted-ruby/lib/shell/error.rb +26 -0
  259. data/vendor/javascripts/emscripted-ruby/lib/shell/filter.rb +110 -0
  260. data/vendor/javascripts/emscripted-ruby/lib/shell/process-controller.rb +260 -0
  261. data/vendor/javascripts/emscripted-ruby/lib/shell/system-command.rb +168 -0
  262. data/vendor/javascripts/emscripted-ruby/lib/shell/version.rb +16 -0
  263. data/vendor/javascripts/emscripted-ruby/lib/shellwords.rb +172 -0
  264. data/vendor/javascripts/emscripted-ruby/lib/singleton.rb +360 -0
  265. data/vendor/javascripts/emscripted-ruby/lib/soap/attachment.rb +107 -0
  266. data/vendor/javascripts/emscripted-ruby/lib/soap/baseData.rb +942 -0
  267. data/vendor/javascripts/emscripted-ruby/lib/soap/element.rb +258 -0
  268. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/aspDotNetHandler.rb +213 -0
  269. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/handler.rb +100 -0
  270. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/literalHandler.rb +226 -0
  271. data/vendor/javascripts/emscripted-ruby/lib/soap/encodingstyle/soapHandler.rb +582 -0
  272. data/vendor/javascripts/emscripted-ruby/lib/soap/generator.rb +268 -0
  273. data/vendor/javascripts/emscripted-ruby/lib/soap/header/handler.rb +57 -0
  274. data/vendor/javascripts/emscripted-ruby/lib/soap/header/handlerset.rb +70 -0
  275. data/vendor/javascripts/emscripted-ruby/lib/soap/header/simplehandler.rb +44 -0
  276. data/vendor/javascripts/emscripted-ruby/lib/soap/httpconfigloader.rb +119 -0
  277. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping.rb +10 -0
  278. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/factory.rb +355 -0
  279. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/mapping.rb +381 -0
  280. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/registry.rb +541 -0
  281. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/rubytypeFactory.rb +475 -0
  282. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/typeMap.rb +50 -0
  283. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/wsdlencodedregistry.rb +280 -0
  284. data/vendor/javascripts/emscripted-ruby/lib/soap/mapping/wsdlliteralregistry.rb +418 -0
  285. data/vendor/javascripts/emscripted-ruby/lib/soap/marshal.rb +59 -0
  286. data/vendor/javascripts/emscripted-ruby/lib/soap/mimemessage.rb +240 -0
  287. data/vendor/javascripts/emscripted-ruby/lib/soap/netHttpClient.rb +190 -0
  288. data/vendor/javascripts/emscripted-ruby/lib/soap/parser.rb +251 -0
  289. data/vendor/javascripts/emscripted-ruby/lib/soap/processor.rb +66 -0
  290. data/vendor/javascripts/emscripted-ruby/lib/soap/property.rb +333 -0
  291. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/cgistub.rb +206 -0
  292. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/driver.rb +254 -0
  293. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/element.rb +325 -0
  294. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/httpserver.rb +129 -0
  295. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/proxy.rb +497 -0
  296. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/router.rb +594 -0
  297. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/rpc.rb +25 -0
  298. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/soaplet.rb +162 -0
  299. data/vendor/javascripts/emscripted-ruby/lib/soap/rpc/standaloneServer.rb +43 -0
  300. data/vendor/javascripts/emscripted-ruby/lib/soap/soap.rb +140 -0
  301. data/vendor/javascripts/emscripted-ruby/lib/soap/streamHandler.rb +229 -0
  302. data/vendor/javascripts/emscripted-ruby/lib/soap/wsdlDriver.rb +575 -0
  303. data/vendor/javascripts/emscripted-ruby/lib/sync.rb +311 -0
  304. data/vendor/javascripts/emscripted-ruby/lib/tempfile.rb +209 -0
  305. data/vendor/javascripts/emscripted-ruby/lib/test/unit.rb +280 -0
  306. data/vendor/javascripts/emscripted-ruby/lib/test/unit/assertionfailederror.rb +14 -0
  307. data/vendor/javascripts/emscripted-ruby/lib/test/unit/assertions.rb +622 -0
  308. data/vendor/javascripts/emscripted-ruby/lib/test/unit/autorunner.rb +220 -0
  309. data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector.rb +43 -0
  310. data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector/dir.rb +107 -0
  311. data/vendor/javascripts/emscripted-ruby/lib/test/unit/collector/objectspace.rb +34 -0
  312. data/vendor/javascripts/emscripted-ruby/lib/test/unit/error.rb +56 -0
  313. data/vendor/javascripts/emscripted-ruby/lib/test/unit/failure.rb +51 -0
  314. data/vendor/javascripts/emscripted-ruby/lib/test/unit/testcase.rb +160 -0
  315. data/vendor/javascripts/emscripted-ruby/lib/test/unit/testresult.rb +80 -0
  316. data/vendor/javascripts/emscripted-ruby/lib/test/unit/testsuite.rb +76 -0
  317. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/console/testrunner.rb +127 -0
  318. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/fox/testrunner.rb +268 -0
  319. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/gtk/testrunner.rb +416 -0
  320. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/gtk2/testrunner.rb +465 -0
  321. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/testrunnermediator.rb +68 -0
  322. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/testrunnerutilities.rb +46 -0
  323. data/vendor/javascripts/emscripted-ruby/lib/test/unit/ui/tk/testrunner.rb +260 -0
  324. data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/backtracefilter.rb +40 -0
  325. data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/observable.rb +90 -0
  326. data/vendor/javascripts/emscripted-ruby/lib/test/unit/util/procwrapper.rb +48 -0
  327. data/vendor/javascripts/emscripted-ruby/lib/thread.rb +479 -0
  328. data/vendor/javascripts/emscripted-ruby/lib/thwait.rb +169 -0
  329. data/vendor/javascripts/emscripted-ruby/lib/time.rb +797 -0
  330. data/vendor/javascripts/emscripted-ruby/lib/timeout.rb +122 -0
  331. data/vendor/javascripts/emscripted-ruby/lib/tmpdir.rb +130 -0
  332. data/vendor/javascripts/emscripted-ruby/lib/tracer.rb +167 -0
  333. data/vendor/javascripts/emscripted-ruby/lib/tsort.rb +290 -0
  334. data/vendor/javascripts/emscripted-ruby/lib/un.rb +235 -0
  335. data/vendor/javascripts/emscripted-ruby/lib/uri.rb +29 -0
  336. data/vendor/javascripts/emscripted-ruby/lib/uri/common.rb +611 -0
  337. data/vendor/javascripts/emscripted-ruby/lib/uri/ftp.rb +198 -0
  338. data/vendor/javascripts/emscripted-ruby/lib/uri/generic.rb +1122 -0
  339. data/vendor/javascripts/emscripted-ruby/lib/uri/http.rb +100 -0
  340. data/vendor/javascripts/emscripted-ruby/lib/uri/https.rb +20 -0
  341. data/vendor/javascripts/emscripted-ruby/lib/uri/ldap.rb +190 -0
  342. data/vendor/javascripts/emscripted-ruby/lib/uri/ldaps.rb +12 -0
  343. data/vendor/javascripts/emscripted-ruby/lib/uri/mailto.rb +266 -0
  344. data/vendor/javascripts/emscripted-ruby/lib/weakref.rb +100 -0
  345. data/vendor/javascripts/emscripted-ruby/lib/webrick.rb +29 -0
  346. data/vendor/javascripts/emscripted-ruby/lib/webrick/accesslog.rb +67 -0
  347. data/vendor/javascripts/emscripted-ruby/lib/webrick/cgi.rb +257 -0
  348. data/vendor/javascripts/emscripted-ruby/lib/webrick/compat.rb +15 -0
  349. data/vendor/javascripts/emscripted-ruby/lib/webrick/config.rb +97 -0
  350. data/vendor/javascripts/emscripted-ruby/lib/webrick/cookie.rb +110 -0
  351. data/vendor/javascripts/emscripted-ruby/lib/webrick/htmlutils.rb +25 -0
  352. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth.rb +45 -0
  353. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/authenticator.rb +79 -0
  354. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/basicauth.rb +65 -0
  355. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/digestauth.rb +343 -0
  356. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htdigest.rb +91 -0
  357. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htgroup.rb +61 -0
  358. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/htpasswd.rb +83 -0
  359. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpauth/userdb.rb +29 -0
  360. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpproxy.rb +254 -0
  361. data/vendor/javascripts/emscripted-ruby/lib/webrick/httprequest.rb +365 -0
  362. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpresponse.rb +327 -0
  363. data/vendor/javascripts/emscripted-ruby/lib/webrick/https.rb +63 -0
  364. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpserver.rb +210 -0
  365. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet.rb +22 -0
  366. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/abstract.rb +71 -0
  367. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/cgi_runner.rb +47 -0
  368. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/cgihandler.rb +108 -0
  369. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/erbhandler.rb +54 -0
  370. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/filehandler.rb +435 -0
  371. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpservlet/prochandler.rb +33 -0
  372. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpstatus.rb +126 -0
  373. data/vendor/javascripts/emscripted-ruby/lib/webrick/httputils.rb +399 -0
  374. data/vendor/javascripts/emscripted-ruby/lib/webrick/httpversion.rb +49 -0
  375. data/vendor/javascripts/emscripted-ruby/lib/webrick/log.rb +88 -0
  376. data/vendor/javascripts/emscripted-ruby/lib/webrick/server.rb +200 -0
  377. data/vendor/javascripts/emscripted-ruby/lib/webrick/ssl.rb +126 -0
  378. data/vendor/javascripts/emscripted-ruby/lib/webrick/utils.rb +100 -0
  379. data/vendor/javascripts/emscripted-ruby/lib/webrick/version.rb +13 -0
  380. data/vendor/javascripts/emscripted-ruby/lib/wsdl/binding.rb +65 -0
  381. data/vendor/javascripts/emscripted-ruby/lib/wsdl/data.rb +64 -0
  382. data/vendor/javascripts/emscripted-ruby/lib/wsdl/definitions.rb +250 -0
  383. data/vendor/javascripts/emscripted-ruby/lib/wsdl/documentation.rb +32 -0
  384. data/vendor/javascripts/emscripted-ruby/lib/wsdl/import.rb +80 -0
  385. data/vendor/javascripts/emscripted-ruby/lib/wsdl/importer.rb +38 -0
  386. data/vendor/javascripts/emscripted-ruby/lib/wsdl/info.rb +39 -0
  387. data/vendor/javascripts/emscripted-ruby/lib/wsdl/message.rb +54 -0
  388. data/vendor/javascripts/emscripted-ruby/lib/wsdl/operation.rb +130 -0
  389. data/vendor/javascripts/emscripted-ruby/lib/wsdl/operationBinding.rb +108 -0
  390. data/vendor/javascripts/emscripted-ruby/lib/wsdl/param.rb +85 -0
  391. data/vendor/javascripts/emscripted-ruby/lib/wsdl/parser.rb +163 -0
  392. data/vendor/javascripts/emscripted-ruby/lib/wsdl/part.rb +52 -0
  393. data/vendor/javascripts/emscripted-ruby/lib/wsdl/port.rb +84 -0
  394. data/vendor/javascripts/emscripted-ruby/lib/wsdl/portType.rb +73 -0
  395. data/vendor/javascripts/emscripted-ruby/lib/wsdl/service.rb +61 -0
  396. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/address.rb +40 -0
  397. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/binding.rb +49 -0
  398. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/body.rb +56 -0
  399. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/cgiStubCreator.rb +76 -0
  400. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/classDefCreator.rb +314 -0
  401. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/classDefCreatorSupport.rb +126 -0
  402. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/clientSkeltonCreator.rb +78 -0
  403. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/complexType.rb +161 -0
  404. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/data.rb +42 -0
  405. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/definitions.rb +149 -0
  406. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/driverCreator.rb +95 -0
  407. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/element.rb +28 -0
  408. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/fault.rb +56 -0
  409. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/header.rb +86 -0
  410. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/headerfault.rb +56 -0
  411. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/mappingRegistryCreator.rb +92 -0
  412. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/methodDefCreator.rb +228 -0
  413. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/operation.rb +122 -0
  414. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/servantSkeltonCreator.rb +67 -0
  415. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/standaloneServerStubCreator.rb +85 -0
  416. data/vendor/javascripts/emscripted-ruby/lib/wsdl/soap/wsdl2ruby.rb +176 -0
  417. data/vendor/javascripts/emscripted-ruby/lib/wsdl/types.rb +43 -0
  418. data/vendor/javascripts/emscripted-ruby/lib/wsdl/wsdl.rb +23 -0
  419. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/all.rb +69 -0
  420. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/annotation.rb +34 -0
  421. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/any.rb +56 -0
  422. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/attribute.rb +127 -0
  423. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/choice.rb +69 -0
  424. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/complexContent.rb +92 -0
  425. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/complexType.rb +139 -0
  426. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/content.rb +96 -0
  427. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/data.rb +80 -0
  428. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/element.rb +154 -0
  429. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/enumeration.rb +36 -0
  430. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/import.rb +65 -0
  431. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/importer.rb +87 -0
  432. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/include.rb +54 -0
  433. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/length.rb +35 -0
  434. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/parser.rb +166 -0
  435. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/pattern.rb +36 -0
  436. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/schema.rb +143 -0
  437. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/sequence.rb +69 -0
  438. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleContent.rb +65 -0
  439. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleExtension.rb +54 -0
  440. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleRestriction.rb +73 -0
  441. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/simpleType.rb +73 -0
  442. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/unique.rb +34 -0
  443. data/vendor/javascripts/emscripted-ruby/lib/wsdl/xmlSchema/xsd2ruby.rb +107 -0
  444. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/.document +1 -0
  445. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/README.txt +31 -0
  446. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/base64.rb +81 -0
  447. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/client.rb +624 -0
  448. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/config.rb +40 -0
  449. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/create.rb +290 -0
  450. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/datetime.rb +142 -0
  451. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/httpserver.rb +178 -0
  452. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/marshal.rb +76 -0
  453. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/parser.rb +813 -0
  454. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/server.rb +780 -0
  455. data/vendor/javascripts/emscripted-ruby/lib/xmlrpc/utils.rb +165 -0
  456. data/vendor/javascripts/emscripted-ruby/lib/xsd/charset.rb +187 -0
  457. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen.rb +12 -0
  458. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/classdef.rb +203 -0
  459. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/commentdef.rb +34 -0
  460. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/gensupport.rb +166 -0
  461. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/methoddef.rb +63 -0
  462. data/vendor/javascripts/emscripted-ruby/lib/xsd/codegen/moduledef.rb +191 -0
  463. data/vendor/javascripts/emscripted-ruby/lib/xsd/datatypes.rb +1269 -0
  464. data/vendor/javascripts/emscripted-ruby/lib/xsd/datatypes1999.rb +20 -0
  465. data/vendor/javascripts/emscripted-ruby/lib/xsd/iconvcharset.rb +33 -0
  466. data/vendor/javascripts/emscripted-ruby/lib/xsd/mapping.rb +42 -0
  467. data/vendor/javascripts/emscripted-ruby/lib/xsd/namedelements.rb +95 -0
  468. data/vendor/javascripts/emscripted-ruby/lib/xsd/ns.rb +140 -0
  469. data/vendor/javascripts/emscripted-ruby/lib/xsd/qname.rb +78 -0
  470. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser.rb +61 -0
  471. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/parser.rb +96 -0
  472. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/rexmlparser.rb +54 -0
  473. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/xmlparser.rb +50 -0
  474. data/vendor/javascripts/emscripted-ruby/lib/xsd/xmlparser/xmlscanner.rb +147 -0
  475. data/vendor/javascripts/emscripted-ruby/lib/yaml.rb +440 -0
  476. data/vendor/javascripts/emscripted-ruby/lib/yaml/baseemitter.rb +247 -0
  477. data/vendor/javascripts/emscripted-ruby/lib/yaml/basenode.rb +216 -0
  478. data/vendor/javascripts/emscripted-ruby/lib/yaml/constants.rb +45 -0
  479. data/vendor/javascripts/emscripted-ruby/lib/yaml/dbm.rb +111 -0
  480. data/vendor/javascripts/emscripted-ruby/lib/yaml/encoding.rb +33 -0
  481. data/vendor/javascripts/emscripted-ruby/lib/yaml/error.rb +34 -0
  482. data/vendor/javascripts/emscripted-ruby/lib/yaml/loader.rb +14 -0
  483. data/vendor/javascripts/emscripted-ruby/lib/yaml/rubytypes.rb +408 -0
  484. data/vendor/javascripts/emscripted-ruby/lib/yaml/store.rb +43 -0
  485. data/vendor/javascripts/emscripted-ruby/lib/yaml/stream.rb +40 -0
  486. data/vendor/javascripts/emscripted-ruby/lib/yaml/stringio.rb +83 -0
  487. data/vendor/javascripts/emscripted-ruby/lib/yaml/syck.rb +19 -0
  488. data/vendor/javascripts/emscripted-ruby/lib/yaml/tag.rb +91 -0
  489. data/vendor/javascripts/emscripted-ruby/lib/yaml/types.rb +192 -0
  490. data/vendor/javascripts/emscripted-ruby/lib/yaml/yamlnode.rb +54 -0
  491. data/vendor/javascripts/emscripted-ruby/lib/yaml/ypath.rb +52 -0
  492. data/vendor/javascripts/emscripted-ruby/ruby.closure.js +7201 -0
  493. metadata +554 -0
@@ -0,0 +1,46 @@
1
+ module REXML
2
+ module Parsers
3
+ class StreamParser
4
+ def initialize source, listener
5
+ @listener = listener
6
+ @parser = BaseParser.new( source )
7
+ end
8
+
9
+ def add_listener( listener )
10
+ @parser.add_listener( listener )
11
+ end
12
+
13
+ def parse
14
+ # entity string
15
+ while true
16
+ event = @parser.pull
17
+ case event[0]
18
+ when :end_document
19
+ return
20
+ when :start_element
21
+ attrs = event[2].each do |n, v|
22
+ event[2][n] = @parser.unnormalize( v )
23
+ end
24
+ @listener.tag_start( event[1], attrs )
25
+ when :end_element
26
+ @listener.tag_end( event[1] )
27
+ when :text
28
+ normalized = @parser.unnormalize( event[1] )
29
+ @listener.text( normalized )
30
+ when :processing_instruction
31
+ @listener.instruction( *event[1,2] )
32
+ when :start_doctype
33
+ @listener.doctype( *event[1..-1] )
34
+ when :end_doctype
35
+ # FIXME: remove this condition for milestone:3.2
36
+ @listener.doctype_end if @listener.respond_to? :doctype_end
37
+ when :comment, :attlistdecl, :cdata, :xmldecl, :elementdecl
38
+ @listener.send( event[0].to_s, *event[1..-1] )
39
+ when :entitydecl, :notationdecl
40
+ @listener.send( event[0].to_s, event[1..-1] )
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,97 @@
1
+ require 'rexml/validation/validationexception'
2
+ require 'rexml/undefinednamespaceexception'
3
+
4
+ module REXML
5
+ module Parsers
6
+ class TreeParser
7
+ def initialize( source, build_context = Document.new )
8
+ @build_context = build_context
9
+ @parser = Parsers::BaseParser.new( source )
10
+ end
11
+
12
+ def add_listener( listener )
13
+ @parser.add_listener( listener )
14
+ end
15
+
16
+ def parse
17
+ tag_stack = []
18
+ in_doctype = false
19
+ entities = nil
20
+ begin
21
+ while true
22
+ event = @parser.pull
23
+ #STDERR.puts "TREEPARSER GOT #{event.inspect}"
24
+ case event[0]
25
+ when :end_document
26
+ unless tag_stack.empty?
27
+ #raise ParseException.new("No close tag for #{tag_stack.inspect}")
28
+ raise ParseException.new("No close tag for #{@build_context.xpath}")
29
+ end
30
+ return
31
+ when :start_element
32
+ tag_stack.push(event[1])
33
+ el = @build_context = @build_context.add_element( event[1], event[2] )
34
+ when :end_element
35
+ tag_stack.pop
36
+ @build_context = @build_context.parent
37
+ when :text
38
+ if not in_doctype
39
+ if @build_context[-1].instance_of? Text
40
+ @build_context[-1] << event[1]
41
+ else
42
+ @build_context.add(
43
+ Text.new(event[1], @build_context.whitespace, nil, true)
44
+ ) unless (
45
+ @build_context.ignore_whitespace_nodes and
46
+ event[1].strip.size==0
47
+ )
48
+ end
49
+ end
50
+ when :comment
51
+ c = Comment.new( event[1] )
52
+ @build_context.add( c )
53
+ when :cdata
54
+ c = CData.new( event[1] )
55
+ @build_context.add( c )
56
+ when :processing_instruction
57
+ @build_context.add( Instruction.new( event[1], event[2] ) )
58
+ when :end_doctype
59
+ in_doctype = false
60
+ entities.each { |k,v| entities[k] = @build_context.entities[k].value }
61
+ @build_context = @build_context.parent
62
+ when :start_doctype
63
+ doctype = DocType.new( event[1..-1], @build_context )
64
+ @build_context = doctype
65
+ entities = {}
66
+ in_doctype = true
67
+ when :attlistdecl
68
+ n = AttlistDecl.new( event[1..-1] )
69
+ @build_context.add( n )
70
+ when :externalentity
71
+ n = ExternalEntity.new( event[1] )
72
+ @build_context.add( n )
73
+ when :elementdecl
74
+ n = ElementDecl.new( event[1] )
75
+ @build_context.add(n)
76
+ when :entitydecl
77
+ entities[ event[1] ] = event[2] unless event[2] =~ /PUBLIC|SYSTEM/
78
+ @build_context.add(Entity.new(event))
79
+ when :notationdecl
80
+ n = NotationDecl.new( *event[1..-1] )
81
+ @build_context.add( n )
82
+ when :xmldecl
83
+ x = XMLDecl.new( event[1], event[2], event[3] )
84
+ @build_context.add( x )
85
+ end
86
+ end
87
+ rescue REXML::Validation::ValidationException
88
+ raise
89
+ rescue REXML::UndefinedNamespaceException
90
+ raise
91
+ rescue
92
+ raise ParseException.new( $!.message, @parser.source, @parser, $! )
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,56 @@
1
+ require 'rexml/parsers/streamparser'
2
+ require 'rexml/parsers/baseparser'
3
+
4
+ module REXML
5
+ module Parsers
6
+ class UltraLightParser
7
+ def initialize stream
8
+ @stream = stream
9
+ @parser = REXML::Parsers::BaseParser.new( stream )
10
+ end
11
+
12
+ def add_listener( listener )
13
+ @parser.add_listener( listener )
14
+ end
15
+
16
+ def rewind
17
+ @stream.rewind
18
+ @parser.stream = @stream
19
+ end
20
+
21
+ def parse
22
+ root = context = []
23
+ while true
24
+ event = @parser.pull
25
+ case event[0]
26
+ when :end_document
27
+ break
28
+ when :end_doctype
29
+ context = context[1]
30
+ when :start_element, :doctype
31
+ context << event
32
+ event[1,0] = [context]
33
+ context = event
34
+ when :end_element
35
+ context = context[1]
36
+ else
37
+ context << event
38
+ end
39
+ end
40
+ root
41
+ end
42
+ end
43
+
44
+ # An element is an array. The array contains:
45
+ # 0 The parent element
46
+ # 1 The tag name
47
+ # 2 A hash of attributes
48
+ # 3..-1 The child elements
49
+ # An element is an array of size > 3
50
+ # Text is a String
51
+ # PIs are [ :processing_instruction, target, data ]
52
+ # Comments are [ :comment, data ]
53
+ # DocTypes are DocType structs
54
+ # The root is an array with XMLDecls, Text, DocType, Array, Text
55
+ end
56
+ end
@@ -0,0 +1,698 @@
1
+ require 'rexml/namespace'
2
+ require 'rexml/xmltokens'
3
+
4
+ module REXML
5
+ module Parsers
6
+ # You don't want to use this class. Really. Use XPath, which is a wrapper
7
+ # for this class. Believe me. You don't want to poke around in here.
8
+ # There is strange, dark magic at work in this code. Beware. Go back! Go
9
+ # back while you still can!
10
+ class XPathParser
11
+ include XMLTokens
12
+ LITERAL = /^'([^']*)'|^"([^"]*)"/u
13
+
14
+ def namespaces=( namespaces )
15
+ Functions::namespace_context = namespaces
16
+ @namespaces = namespaces
17
+ end
18
+
19
+ def parse path
20
+ path.gsub!(/([\(\[])\s+/, '\1') # Strip ignorable spaces
21
+ path.gsub!( /\s+([\]\)])/, '\1' )
22
+ parsed = []
23
+ path = OrExpr(path, parsed)
24
+ parsed
25
+ end
26
+
27
+ def predicate path
28
+ parsed = []
29
+ Predicate( "[#{path}]", parsed )
30
+ parsed
31
+ end
32
+
33
+ def abbreviate( path )
34
+ path = path.kind_of?(String) ? parse( path ) : path
35
+ string = ""
36
+ document = false
37
+ while path.size > 0
38
+ op = path.shift
39
+ case op
40
+ when :node
41
+ when :attribute
42
+ string << "/" if string.size > 0
43
+ string << "@"
44
+ when :child
45
+ string << "/" if string.size > 0
46
+ when :descendant_or_self
47
+ string << "/"
48
+ when :self
49
+ string << "."
50
+ when :parent
51
+ string << ".."
52
+ when :any
53
+ string << "*"
54
+ when :text
55
+ string << "text()"
56
+ when :following, :following_sibling,
57
+ :ancestor, :ancestor_or_self, :descendant,
58
+ :namespace, :preceding, :preceding_sibling
59
+ string << "/" unless string.size == 0
60
+ string << op.to_s.tr("_", "-")
61
+ string << "::"
62
+ when :qname
63
+ prefix = path.shift
64
+ name = path.shift
65
+ string << prefix+":" if prefix.size > 0
66
+ string << name
67
+ when :predicate
68
+ string << '['
69
+ string << predicate_to_string( path.shift ) {|x| abbreviate( x ) }
70
+ string << ']'
71
+ when :document
72
+ document = true
73
+ when :function
74
+ string << path.shift
75
+ string << "( "
76
+ string << predicate_to_string( path.shift[0] ) {|x| abbreviate( x )}
77
+ string << " )"
78
+ when :literal
79
+ string << %Q{ "#{path.shift}" }
80
+ else
81
+ string << "/" unless string.size == 0
82
+ string << "UNKNOWN("
83
+ string << op.inspect
84
+ string << ")"
85
+ end
86
+ end
87
+ string = "/"+string if document
88
+ return string
89
+ end
90
+
91
+ def expand( path )
92
+ path = path.kind_of?(String) ? parse( path ) : path
93
+ string = ""
94
+ document = false
95
+ while path.size > 0
96
+ op = path.shift
97
+ case op
98
+ when :node
99
+ string << "node()"
100
+ when :attribute, :child, :following, :following_sibling,
101
+ :ancestor, :ancestor_or_self, :descendant, :descendant_or_self,
102
+ :namespace, :preceding, :preceding_sibling, :self, :parent
103
+ string << "/" unless string.size == 0
104
+ string << op.to_s.tr("_", "-")
105
+ string << "::"
106
+ when :any
107
+ string << "*"
108
+ when :qname
109
+ prefix = path.shift
110
+ name = path.shift
111
+ string << prefix+":" if prefix.size > 0
112
+ string << name
113
+ when :predicate
114
+ string << '['
115
+ string << predicate_to_string( path.shift ) { |x| expand(x) }
116
+ string << ']'
117
+ when :document
118
+ document = true
119
+ else
120
+ string << "/" unless string.size == 0
121
+ string << "UNKNOWN("
122
+ string << op.inspect
123
+ string << ")"
124
+ end
125
+ end
126
+ string = "/"+string if document
127
+ return string
128
+ end
129
+
130
+ def predicate_to_string( path, &block )
131
+ string = ""
132
+ case path[0]
133
+ when :and, :or, :mult, :plus, :minus, :neq, :eq, :lt, :gt, :lteq, :gteq, :div, :mod, :union
134
+ op = path.shift
135
+ case op
136
+ when :eq
137
+ op = "="
138
+ when :lt
139
+ op = "<"
140
+ when :gt
141
+ op = ">"
142
+ when :lteq
143
+ op = "<="
144
+ when :gteq
145
+ op = ">="
146
+ when :neq
147
+ op = "!="
148
+ when :union
149
+ op = "|"
150
+ end
151
+ left = predicate_to_string( path.shift, &block )
152
+ right = predicate_to_string( path.shift, &block )
153
+ string << " "
154
+ string << left
155
+ string << " "
156
+ string << op.to_s
157
+ string << " "
158
+ string << right
159
+ string << " "
160
+ when :function
161
+ path.shift
162
+ name = path.shift
163
+ string << name
164
+ string << "( "
165
+ string << predicate_to_string( path.shift, &block )
166
+ string << " )"
167
+ when :literal
168
+ path.shift
169
+ string << " "
170
+ string << path.shift.inspect
171
+ string << " "
172
+ else
173
+ string << " "
174
+ string << yield( path )
175
+ string << " "
176
+ end
177
+ return string.squeeze(" ")
178
+ end
179
+
180
+ private
181
+ #LocationPath
182
+ # | RelativeLocationPath
183
+ # | '/' RelativeLocationPath?
184
+ # | '//' RelativeLocationPath
185
+ def LocationPath path, parsed
186
+ #puts "LocationPath '#{path}'"
187
+ path = path.strip
188
+ if path[0] == ?/
189
+ parsed << :document
190
+ if path[1] == ?/
191
+ parsed << :descendant_or_self
192
+ parsed << :node
193
+ path = path[2..-1]
194
+ else
195
+ path = path[1..-1]
196
+ end
197
+ end
198
+ #puts parsed.inspect
199
+ return RelativeLocationPath( path, parsed ) if path.size > 0
200
+ end
201
+
202
+ #RelativeLocationPath
203
+ # | Step
204
+ # | (AXIS_NAME '::' | '@' | '') AxisSpecifier
205
+ # NodeTest
206
+ # Predicate
207
+ # | '.' | '..' AbbreviatedStep
208
+ # | RelativeLocationPath '/' Step
209
+ # | RelativeLocationPath '//' Step
210
+ AXIS = /^(ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self)::/
211
+ def RelativeLocationPath path, parsed
212
+ #puts "RelativeLocationPath #{path}"
213
+ while path.size > 0
214
+ # (axis or @ or <child::>) nodetest predicate >
215
+ # OR > / Step
216
+ # (. or ..) >
217
+ if path[0] == ?.
218
+ if path[1] == ?.
219
+ parsed << :parent
220
+ parsed << :node
221
+ path = path[2..-1]
222
+ else
223
+ parsed << :self
224
+ parsed << :node
225
+ path = path[1..-1]
226
+ end
227
+ else
228
+ if path[0] == ?@
229
+ #puts "ATTRIBUTE"
230
+ parsed << :attribute
231
+ path = path[1..-1]
232
+ # Goto Nodetest
233
+ elsif path =~ AXIS
234
+ parsed << $1.tr('-','_').intern
235
+ path = $'
236
+ # Goto Nodetest
237
+ else
238
+ parsed << :child
239
+ end
240
+
241
+ #puts "NODETESTING '#{path}'"
242
+ n = []
243
+ path = NodeTest( path, n)
244
+ #puts "NODETEST RETURNED '#{path}'"
245
+
246
+ if path[0] == ?[
247
+ path = Predicate( path, n )
248
+ end
249
+
250
+ parsed.concat(n)
251
+ end
252
+
253
+ if path.size > 0
254
+ if path[0] == ?/
255
+ if path[1] == ?/
256
+ parsed << :descendant_or_self
257
+ parsed << :node
258
+ path = path[2..-1]
259
+ else
260
+ path = path[1..-1]
261
+ end
262
+ else
263
+ return path
264
+ end
265
+ end
266
+ end
267
+ return path
268
+ end
269
+
270
+ # Returns a 1-1 map of the nodeset
271
+ # The contents of the resulting array are either:
272
+ # true/false, if a positive match
273
+ # String, if a name match
274
+ #NodeTest
275
+ # | ('*' | NCNAME ':' '*' | QNAME) NameTest
276
+ # | NODE_TYPE '(' ')' NodeType
277
+ # | PI '(' LITERAL ')' PI
278
+ # | '[' expr ']' Predicate
279
+ NCNAMETEST= /^(#{NCNAME_STR}):\*/u
280
+ QNAME = Namespace::NAMESPLIT
281
+ NODE_TYPE = /^(comment|text|node)\(\s*\)/m
282
+ PI = /^processing-instruction\(/
283
+ def NodeTest path, parsed
284
+ #puts "NodeTest with #{path}"
285
+ res = nil
286
+ case path
287
+ when /^\*/
288
+ path = $'
289
+ parsed << :any
290
+ when NODE_TYPE
291
+ type = $1
292
+ path = $'
293
+ parsed << type.tr('-', '_').intern
294
+ when PI
295
+ path = $'
296
+ literal = nil
297
+ if path !~ /^\s*\)/
298
+ path =~ LITERAL
299
+ literal = $1
300
+ path = $'
301
+ raise ParseException.new("Missing ')' after processing instruction") if path[0] != ?)
302
+ path = path[1..-1]
303
+ end
304
+ parsed << :processing_instruction
305
+ parsed << (literal || '')
306
+ when NCNAMETEST
307
+ #puts "NCNAMETEST"
308
+ prefix = $1
309
+ path = $'
310
+ parsed << :namespace
311
+ parsed << prefix
312
+ when QNAME
313
+ #puts "QNAME"
314
+ prefix = $1
315
+ name = $2
316
+ path = $'
317
+ prefix = "" unless prefix
318
+ parsed << :qname
319
+ parsed << prefix
320
+ parsed << name
321
+ end
322
+ return path
323
+ end
324
+
325
+ # Filters the supplied nodeset on the predicate(s)
326
+ def Predicate path, parsed
327
+ #puts "PREDICATE with #{path}"
328
+ return nil unless path[0] == ?[
329
+ predicates = []
330
+ while path[0] == ?[
331
+ path, expr = get_group(path)
332
+ predicates << expr[1..-2] if expr
333
+ end
334
+ #puts "PREDICATES = #{predicates.inspect}"
335
+ predicates.each{ |expr|
336
+ #puts "ORING #{expr}"
337
+ preds = []
338
+ parsed << :predicate
339
+ parsed << preds
340
+ OrExpr(expr, preds)
341
+ }
342
+ #puts "PREDICATES = #{predicates.inspect}"
343
+ path
344
+ end
345
+
346
+ # The following return arrays of true/false, a 1-1 mapping of the
347
+ # supplied nodeset, except for axe(), which returns a filtered
348
+ # nodeset
349
+
350
+ #| OrExpr S 'or' S AndExpr
351
+ #| AndExpr
352
+ def OrExpr path, parsed
353
+ #puts "OR >>> #{path}"
354
+ n = []
355
+ rest = AndExpr( path, n )
356
+ #puts "OR <<< #{rest}"
357
+ if rest != path
358
+ while rest =~ /^\s*( or )/
359
+ n = [ :or, n, [] ]
360
+ rest = AndExpr( $', n[-1] )
361
+ end
362
+ end
363
+ if parsed.size == 0 and n.size != 0
364
+ parsed.replace(n)
365
+ elsif n.size > 0
366
+ parsed << n
367
+ end
368
+ rest
369
+ end
370
+
371
+ #| AndExpr S 'and' S EqualityExpr
372
+ #| EqualityExpr
373
+ def AndExpr path, parsed
374
+ #puts "AND >>> #{path}"
375
+ n = []
376
+ rest = EqualityExpr( path, n )
377
+ #puts "AND <<< #{rest}"
378
+ if rest != path
379
+ while rest =~ /^\s*( and )/
380
+ n = [ :and, n, [] ]
381
+ #puts "AND >>> #{rest}"
382
+ rest = EqualityExpr( $', n[-1] )
383
+ #puts "AND <<< #{rest}"
384
+ end
385
+ end
386
+ if parsed.size == 0 and n.size != 0
387
+ parsed.replace(n)
388
+ elsif n.size > 0
389
+ parsed << n
390
+ end
391
+ rest
392
+ end
393
+
394
+ #| EqualityExpr ('=' | '!=') RelationalExpr
395
+ #| RelationalExpr
396
+ def EqualityExpr path, parsed
397
+ #puts "EQUALITY >>> #{path}"
398
+ n = []
399
+ rest = RelationalExpr( path, n )
400
+ #puts "EQUALITY <<< #{rest}"
401
+ if rest != path
402
+ while rest =~ /^\s*(!?=)\s*/
403
+ if $1[0] == ?!
404
+ n = [ :neq, n, [] ]
405
+ else
406
+ n = [ :eq, n, [] ]
407
+ end
408
+ rest = RelationalExpr( $', n[-1] )
409
+ end
410
+ end
411
+ if parsed.size == 0 and n.size != 0
412
+ parsed.replace(n)
413
+ elsif n.size > 0
414
+ parsed << n
415
+ end
416
+ rest
417
+ end
418
+
419
+ #| RelationalExpr ('<' | '>' | '<=' | '>=') AdditiveExpr
420
+ #| AdditiveExpr
421
+ def RelationalExpr path, parsed
422
+ #puts "RELATION >>> #{path}"
423
+ n = []
424
+ rest = AdditiveExpr( path, n )
425
+ #puts "RELATION <<< #{rest}"
426
+ if rest != path
427
+ while rest =~ /^\s*([<>]=?)\s*/
428
+ if $1[0] == ?<
429
+ sym = "lt"
430
+ else
431
+ sym = "gt"
432
+ end
433
+ sym << "eq" if $1[-1] == ?=
434
+ n = [ sym.intern, n, [] ]
435
+ rest = AdditiveExpr( $', n[-1] )
436
+ end
437
+ end
438
+ if parsed.size == 0 and n.size != 0
439
+ parsed.replace(n)
440
+ elsif n.size > 0
441
+ parsed << n
442
+ end
443
+ rest
444
+ end
445
+
446
+ #| AdditiveExpr ('+' | S '-') MultiplicativeExpr
447
+ #| MultiplicativeExpr
448
+ def AdditiveExpr path, parsed
449
+ #puts "ADDITIVE >>> #{path}"
450
+ n = []
451
+ rest = MultiplicativeExpr( path, n )
452
+ #puts "ADDITIVE <<< #{rest}"
453
+ if rest != path
454
+ while rest =~ /^\s*(\+| -)\s*/
455
+ if $1[0] == ?+
456
+ n = [ :plus, n, [] ]
457
+ else
458
+ n = [ :minus, n, [] ]
459
+ end
460
+ rest = MultiplicativeExpr( $', n[-1] )
461
+ end
462
+ end
463
+ if parsed.size == 0 and n.size != 0
464
+ parsed.replace(n)
465
+ elsif n.size > 0
466
+ parsed << n
467
+ end
468
+ rest
469
+ end
470
+
471
+ #| MultiplicativeExpr ('*' | S ('div' | 'mod') S) UnaryExpr
472
+ #| UnaryExpr
473
+ def MultiplicativeExpr path, parsed
474
+ #puts "MULT >>> #{path}"
475
+ n = []
476
+ rest = UnaryExpr( path, n )
477
+ #puts "MULT <<< #{rest}"
478
+ if rest != path
479
+ while rest =~ /^\s*(\*| div | mod )\s*/
480
+ if $1[0] == ?*
481
+ n = [ :mult, n, [] ]
482
+ elsif $1.include?( "div" )
483
+ n = [ :div, n, [] ]
484
+ else
485
+ n = [ :mod, n, [] ]
486
+ end
487
+ rest = UnaryExpr( $', n[-1] )
488
+ end
489
+ end
490
+ if parsed.size == 0 and n.size != 0
491
+ parsed.replace(n)
492
+ elsif n.size > 0
493
+ parsed << n
494
+ end
495
+ rest
496
+ end
497
+
498
+ #| '-' UnaryExpr
499
+ #| UnionExpr
500
+ def UnaryExpr path, parsed
501
+ path =~ /^(\-*)/
502
+ path = $'
503
+ if $1 and (($1.size % 2) != 0)
504
+ mult = -1
505
+ else
506
+ mult = 1
507
+ end
508
+ parsed << :neg if mult < 0
509
+
510
+ #puts "UNARY >>> #{path}"
511
+ n = []
512
+ path = UnionExpr( path, n )
513
+ #puts "UNARY <<< #{path}"
514
+ parsed.concat( n )
515
+ path
516
+ end
517
+
518
+ #| UnionExpr '|' PathExpr
519
+ #| PathExpr
520
+ def UnionExpr path, parsed
521
+ #puts "UNION >>> #{path}"
522
+ n = []
523
+ rest = PathExpr( path, n )
524
+ #puts "UNION <<< #{rest}"
525
+ if rest != path
526
+ while rest =~ /^\s*(\|)\s*/
527
+ n = [ :union, n, [] ]
528
+ rest = PathExpr( $', n[-1] )
529
+ end
530
+ end
531
+ if parsed.size == 0 and n.size != 0
532
+ parsed.replace( n )
533
+ elsif n.size > 0
534
+ parsed << n
535
+ end
536
+ rest
537
+ end
538
+
539
+ #| LocationPath
540
+ #| FilterExpr ('/' | '//') RelativeLocationPath
541
+ def PathExpr path, parsed
542
+ path =~ /^\s*/
543
+ path = $'
544
+ #puts "PATH >>> #{path}"
545
+ n = []
546
+ rest = FilterExpr( path, n )
547
+ #puts "PATH <<< '#{rest}'"
548
+ if rest != path
549
+ if rest and rest[0] == ?/
550
+ return RelativeLocationPath(rest, n)
551
+ end
552
+ end
553
+ #puts "BEFORE WITH '#{rest}'"
554
+ rest = LocationPath(rest, n) if rest =~ /\A[\/\.\@\[\w_*]/
555
+ parsed.concat(n)
556
+ return rest
557
+ end
558
+
559
+ #| FilterExpr Predicate
560
+ #| PrimaryExpr
561
+ def FilterExpr path, parsed
562
+ #puts "FILTER >>> #{path}"
563
+ n = []
564
+ path = PrimaryExpr( path, n )
565
+ #puts "FILTER <<< #{path}"
566
+ path = Predicate(path, n) if path and path[0] == ?[
567
+ #puts "FILTER <<< #{path}"
568
+ parsed.concat(n)
569
+ path
570
+ end
571
+
572
+ #| VARIABLE_REFERENCE
573
+ #| '(' expr ')'
574
+ #| LITERAL
575
+ #| NUMBER
576
+ #| FunctionCall
577
+ VARIABLE_REFERENCE = /^\$(#{NAME_STR})/u
578
+ NUMBER = /^(\d*\.?\d+)/
579
+ NT = /^comment|text|processing-instruction|node$/
580
+ def PrimaryExpr path, parsed
581
+ arry = []
582
+ case path
583
+ when VARIABLE_REFERENCE
584
+ varname = $1
585
+ path = $'
586
+ parsed << :variable
587
+ parsed << varname
588
+ #arry << @variables[ varname ]
589
+ when /^(\w[-\w]*)(?:\()/
590
+ #puts "PrimaryExpr :: Function >>> #$1 -- '#$''"
591
+ fname = $1
592
+ tmp = $'
593
+ #puts "#{fname} =~ #{NT.inspect}"
594
+ return path if fname =~ NT
595
+ path = tmp
596
+ parsed << :function
597
+ parsed << fname
598
+ path = FunctionCall(path, parsed)
599
+ when NUMBER
600
+ #puts "LITERAL or NUMBER: #$1"
601
+ varname = $1.nil? ? $2 : $1
602
+ path = $'
603
+ parsed << :literal
604
+ parsed << (varname.include?('.') ? varname.to_f : varname.to_i)
605
+ when LITERAL
606
+ #puts "LITERAL or NUMBER: #$1"
607
+ varname = $1.nil? ? $2 : $1
608
+ path = $'
609
+ parsed << :literal
610
+ parsed << varname
611
+ when /^\(/ #/
612
+ path, contents = get_group(path)
613
+ contents = contents[1..-2]
614
+ n = []
615
+ OrExpr( contents, n )
616
+ parsed.concat(n)
617
+ end
618
+ path
619
+ end
620
+
621
+ #| FUNCTION_NAME '(' ( expr ( ',' expr )* )? ')'
622
+ def FunctionCall rest, parsed
623
+ path, arguments = parse_args(rest)
624
+ argset = []
625
+ for argument in arguments
626
+ args = []
627
+ OrExpr( argument, args )
628
+ argset << args
629
+ end
630
+ parsed << argset
631
+ path
632
+ end
633
+
634
+ # get_group( '[foo]bar' ) -> ['bar', '[foo]']
635
+ def get_group string
636
+ ind = 0
637
+ depth = 0
638
+ st = string[0,1]
639
+ en = (st == "(" ? ")" : "]")
640
+ begin
641
+ case string[ind,1]
642
+ when st
643
+ depth += 1
644
+ when en
645
+ depth -= 1
646
+ end
647
+ ind += 1
648
+ end while depth > 0 and ind < string.length
649
+ return nil unless depth==0
650
+ [string[ind..-1], string[0..ind-1]]
651
+ end
652
+
653
+ def parse_args( string )
654
+ arguments = []
655
+ ind = 0
656
+ inquot = false
657
+ inapos = false
658
+ depth = 1
659
+ begin
660
+ case string[ind]
661
+ when ?"
662
+ inquot = !inquot unless inapos
663
+ when ?'
664
+ inapos = !inapos unless inquot
665
+ else
666
+ unless inquot or inapos
667
+ case string[ind]
668
+ when ?(
669
+ depth += 1
670
+ if depth == 1
671
+ string = string[1..-1]
672
+ ind -= 1
673
+ end
674
+ when ?)
675
+ depth -= 1
676
+ if depth == 0
677
+ s = string[0,ind].strip
678
+ arguments << s unless s == ""
679
+ string = string[ind+1..-1]
680
+ end
681
+ when ?,
682
+ if depth == 1
683
+ s = string[0,ind].strip
684
+ arguments << s unless s == ""
685
+ string = string[ind+1..-1]
686
+ ind = -1
687
+ end
688
+ end
689
+ end
690
+ end
691
+ ind += 1
692
+ end while depth > 0 and ind < string.length
693
+ return nil unless depth==0
694
+ [string,arguments]
695
+ end
696
+ end
697
+ end
698
+ end