maglev-database-explorer 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (688) hide show
  1. data/MIT-LICENSE +21 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +40 -0
  4. data/app/assets/javascripts/maglev-database-explorer/application.js +17 -0
  5. data/app/assets/javascripts/maglev_database_explorer/def.js +2 -0
  6. data/app/assets/stylesheets/maglev-database-explorer/application.css +13 -0
  7. data/app/assets/stylesheets/maglev_database_explorer/def.css +4 -0
  8. data/app/controllers/maglev_database_explorer/application_controller.rb +4 -0
  9. data/app/controllers/maglev_database_explorer/code_controller.rb +101 -0
  10. data/app/controllers/maglev_database_explorer/object_controller.rb +60 -0
  11. data/app/controllers/maglev_database_explorer/object_explorer_controller.rb +9 -0
  12. data/app/helpers/maglev_database_explorer/application_helper.rb +4 -0
  13. data/app/views/layouts/maglev-database-explorer/application.html.erb +14 -0
  14. data/app/views/maglev_database_explorer/object_explorer/_workspace.html.erb +28 -0
  15. data/app/views/maglev_database_explorer/object_explorer/index.html.erb +92 -0
  16. data/config/routes.rb +15 -0
  17. data/lib/maglev-database-explorer.rb +17 -0
  18. data/lib/maglev-database-explorer/code_evaluation.rb +36 -0
  19. data/lib/maglev-database-explorer/database_views.rb +29 -0
  20. data/lib/maglev-database-explorer/database_views/abstract_dictionary.rb +69 -0
  21. data/lib/maglev-database-explorer/database_views/abstract_exception.rb +25 -0
  22. data/lib/maglev-database-explorer/database_views/array.rb +28 -0
  23. data/lib/maglev-database-explorer/database_views/boolean.rb +12 -0
  24. data/lib/maglev-database-explorer/database_views/class.rb +46 -0
  25. data/lib/maglev-database-explorer/database_views/exception.rb +3 -0
  26. data/lib/maglev-database-explorer/database_views/execblock.rb +5 -0
  27. data/lib/maglev-database-explorer/database_views/fixnum.rb +5 -0
  28. data/lib/maglev-database-explorer/database_views/float.rb +6 -0
  29. data/lib/maglev-database-explorer/database_views/globals.rb +2 -0
  30. data/lib/maglev-database-explorer/database_views/gsnmethod.rb +29 -0
  31. data/lib/maglev-database-explorer/database_views/hash.rb +5 -0
  32. data/lib/maglev-database-explorer/database_views/maglev_record.rb +43 -0
  33. data/lib/maglev-database-explorer/database_views/module.rb +104 -0
  34. data/lib/maglev-database-explorer/database_views/nilclass.rb +6 -0
  35. data/lib/maglev-database-explorer/database_views/object.rb +77 -0
  36. data/lib/maglev-database-explorer/database_views/proc.rb +4 -0
  37. data/lib/maglev-database-explorer/database_views/repository.rb +4 -0
  38. data/lib/maglev-database-explorer/database_views/ruby_workspace.rb +6 -0
  39. data/lib/maglev-database-explorer/database_views/smalltalk_classes.rb +35 -0
  40. data/lib/maglev-database-explorer/database_views/smalltalk_classes.st +60 -0
  41. data/lib/maglev-database-explorer/database_views/string.rb +27 -0
  42. data/lib/maglev-database-explorer/database_views/symbol.rb +33 -0
  43. data/lib/maglev-database-explorer/database_views/system.rb +48 -0
  44. data/lib/maglev-database-explorer/database_views/thread.rb +101 -0
  45. data/lib/maglev-database-explorer/debug_server.rb +22 -0
  46. data/lib/maglev-database-explorer/engine.rb +23 -0
  47. data/lib/maglev-database-explorer/engine_symlinks.rb +19 -0
  48. data/lib/maglev-database-explorer/halt.rb +33 -0
  49. data/lib/maglev-database-explorer/ruby_workspace.rb +31 -0
  50. data/lib/maglev-database-explorer/version.rb +3 -0
  51. data/lib/tasks/maglev-database-explorer_tasks.rake +4 -0
  52. data/public/LICENSE +35 -0
  53. data/public/amber/CHANGELOG +65 -0
  54. data/public/amber/LICENSE +22 -0
  55. data/public/amber/Makefile +53 -0
  56. data/public/amber/README.md +30 -0
  57. data/public/amber/bin/amber +3 -0
  58. data/public/amber/bin/amberc +352 -0
  59. data/public/amber/bin/nodecompile.js +33 -0
  60. data/public/amber/bin/server +3 -0
  61. data/public/amber/bin/server.bat +3 -0
  62. data/public/amber/css/amber-normalize.css +468 -0
  63. data/public/amber/css/amber-normalize.less +501 -0
  64. data/public/amber/css/amber.css +539 -0
  65. data/public/amber/css/documentation.css +84 -0
  66. data/public/amber/css/profstef.css +75 -0
  67. data/public/amber/css/style.css +313 -0
  68. data/public/amber/documentation.html +37 -0
  69. data/public/amber/examples/Makefile +23 -0
  70. data/public/amber/examples/README +4 -0
  71. data/public/amber/examples/android/helloamber/AndroidManifest.xml +19 -0
  72. data/public/amber/examples/android/helloamber/HelloAmber.st +13 -0
  73. data/public/amber/examples/android/helloamber/Makefile +56 -0
  74. data/public/amber/examples/android/helloamber/README.md +80 -0
  75. data/public/amber/examples/android/helloamber/ant.properties +17 -0
  76. data/public/amber/examples/android/helloamber/assets/index.html +15 -0
  77. data/public/amber/examples/android/helloamber/assets/jquery-1.7.2.min.js +4 -0
  78. data/public/amber/examples/android/helloamber/build.xml +83 -0
  79. data/public/amber/examples/android/helloamber/local.properties +10 -0
  80. data/public/amber/examples/android/helloamber/proguard-project.txt +20 -0
  81. data/public/amber/examples/android/helloamber/project.properties +14 -0
  82. data/public/amber/examples/android/helloamber/res/layout/main.xml +6 -0
  83. data/public/amber/examples/android/helloamber/res/values/strings.xml +4 -0
  84. data/public/amber/examples/android/helloamber/src/org/amberlang/android/helloamber/HelloAmber.java +59 -0
  85. data/public/amber/examples/myproject/index.html +16 -0
  86. data/public/amber/examples/nodejs/README +9 -0
  87. data/public/amber/examples/nodejs/benchfib/Benchfib.st +124 -0
  88. data/public/amber/examples/nodejs/benchfib/Makefile +8 -0
  89. data/public/amber/examples/nodejs/benchfib/benchfib +1 -0
  90. data/public/amber/examples/nodejs/hello/Hello.st +9 -0
  91. data/public/amber/examples/nodejs/hello/Makefile +8 -0
  92. data/public/amber/examples/nodejs/hello/README +13 -0
  93. data/public/amber/examples/nodejs/hello/hello +1 -0
  94. data/public/amber/examples/nodejs/meta/Makefile +8 -0
  95. data/public/amber/examples/nodejs/meta/MyScript.st +27 -0
  96. data/public/amber/examples/nodejs/meta/meta +1 -0
  97. data/public/amber/examples/nodejs/pystone/Makefile +8 -0
  98. data/public/amber/examples/nodejs/pystone/Pystone.st +306 -0
  99. data/public/amber/examples/nodejs/pystone/pystone +1 -0
  100. data/public/amber/examples/nodejs/trivialserver/Makefile +8 -0
  101. data/public/amber/examples/nodejs/trivialserver/TrivialServer.st +51 -0
  102. data/public/amber/examples/nodejs/trivialserver/trivial +1 -0
  103. data/public/amber/examples/presentation/esug2011/images/asterix.png +0 -0
  104. data/public/amber/examples/presentation/esug2011/images/background_box.png +0 -0
  105. data/public/amber/examples/presentation/esug2011/images/background_header.png +0 -0
  106. data/public/amber/examples/presentation/esug2011/images/balloon.jpg +0 -0
  107. data/public/amber/examples/presentation/esug2011/images/balloon_header.png +0 -0
  108. data/public/amber/examples/presentation/esug2011/images/devices.jpg +0 -0
  109. data/public/amber/examples/presentation/esug2011/images/enyo.png +0 -0
  110. data/public/amber/examples/presentation/esug2011/images/ide_star_wars.png +0 -0
  111. data/public/amber/examples/presentation/esug2011/images/nodejs.png +0 -0
  112. data/public/amber/examples/presentation/esug2011/images/terminal.png +0 -0
  113. data/public/amber/examples/presentation/esug2011/images/webos.png +0 -0
  114. data/public/amber/examples/presentation/fosdem2012/images/amber.png +0 -0
  115. data/public/amber/examples/presentation/fosdem2012/images/ambrhino.jpg +0 -0
  116. data/public/amber/examples/presentation/fosdem2012/images/nodejs.png +0 -0
  117. data/public/amber/examples/presentation/fosdem2012/images/pharo.png +0 -0
  118. data/public/amber/examples/presentation/fosdem2012/images/php.gif +0 -0
  119. data/public/amber/examples/presentation/fosdem2012/images/rails.png +0 -0
  120. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-next.png +0 -0
  121. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-prev.png +0 -0
  122. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/closedhand.cur +0 -0
  123. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/openhand.cur +0 -0
  124. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-back.png +0 -0
  125. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-forward.png +0 -0
  126. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow.png +0 -0
  127. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.css +100 -0
  128. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.js +1232 -0
  129. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.min.js +13 -0
  130. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.easing.1.3.js +38 -0
  131. data/public/amber/examples/presentation/index.html +17 -0
  132. data/public/amber/examples/presentation/js/Presentation.deploy.js +1922 -0
  133. data/public/amber/examples/presentation/js/Presentation.js +2712 -0
  134. data/public/amber/examples/presentation/st/Presentation.st +1996 -0
  135. data/public/amber/examples/trysmalltalk/index.html +18 -0
  136. data/public/amber/examples/trysmalltalk/js/TrySmalltalk.deploy.js +837 -0
  137. data/public/amber/examples/trysmalltalk/js/TrySmalltalk.js +1206 -0
  138. data/public/amber/examples/trysmalltalk/st/TrySmalltalk.st +964 -0
  139. data/public/amber/examples/twitterwall/css/twitterwall.css +19 -0
  140. data/public/amber/examples/twitterwall/index.html +35 -0
  141. data/public/amber/examples/twitterwall/js/TwitterWall.deploy.js +116 -0
  142. data/public/amber/examples/twitterwall/js/TwitterWall.js +146 -0
  143. data/public/amber/examples/twitterwall/st/TwitterWall.st +91 -0
  144. data/public/amber/examples/webos/README +11 -0
  145. data/public/amber/examples/webos/eris/DuckQwaq.wav +0 -0
  146. data/public/amber/examples/webos/eris/EnyoAmber.st +36 -0
  147. data/public/amber/examples/webos/eris/Eris.css +0 -0
  148. data/public/amber/examples/webos/eris/Eris.st +86 -0
  149. data/public/amber/examples/webos/eris/Makefile +37 -0
  150. data/public/amber/examples/webos/eris/README +3 -0
  151. data/public/amber/examples/webos/eris/appinfo.json +10 -0
  152. data/public/amber/examples/webos/eris/depends.js +4 -0
  153. data/public/amber/examples/webos/eris/index.html +12 -0
  154. data/public/amber/examples/webos/helloamber/EnyoAmber.st +36 -0
  155. data/public/amber/examples/webos/helloamber/HelloAmber.st +86 -0
  156. data/public/amber/examples/webos/helloamber/Makefile +38 -0
  157. data/public/amber/examples/webos/helloamber/README +5 -0
  158. data/public/amber/examples/webos/helloamber/appinfo.json +10 -0
  159. data/public/amber/examples/webos/helloamber/depends.js +3 -0
  160. data/public/amber/examples/webos/helloamber/index.html +12 -0
  161. data/public/amber/favicon.ico +0 -0
  162. data/public/amber/images/amber.png +0 -0
  163. data/public/amber/images/amber.svg +706 -0
  164. data/public/amber/images/amber_small.png +0 -0
  165. data/public/amber/images/off.amber.png +0 -0
  166. data/public/amber/images/off.png +0 -0
  167. data/public/amber/images/offHover.amber.png +0 -0
  168. data/public/amber/images/offHover.png +0 -0
  169. data/public/amber/images/presentation.png +0 -0
  170. data/public/amber/images/profstef.png +0 -0
  171. data/public/amber/images/sprite.amber.png +0 -0
  172. data/public/amber/images/sprite.png +0 -0
  173. data/public/amber/images/tinylogo.amber.png +0 -0
  174. data/public/amber/images/tinylogo.png +0 -0
  175. data/public/amber/images/twitterwall.png +0 -0
  176. data/public/amber/index.html +55 -0
  177. data/public/amber/js/Additional-Examples.deploy.js +15 -0
  178. data/public/amber/js/Additional-Examples.js +21 -0
  179. data/public/amber/js/Benchfib.deploy.js +132 -0
  180. data/public/amber/js/Benchfib.js +167 -0
  181. data/public/amber/js/Canvas.deploy.js +2446 -0
  182. data/public/amber/js/Canvas.js +3547 -0
  183. data/public/amber/js/Compiler-Tests.deploy.js +97 -0
  184. data/public/amber/js/Compiler-Tests.js +137 -0
  185. data/public/amber/js/Compiler.deploy.js +1877 -0
  186. data/public/amber/js/Compiler.js +2622 -0
  187. data/public/amber/js/Documentation.deploy.js +961 -0
  188. data/public/amber/js/Documentation.js +1376 -0
  189. data/public/amber/js/Examples.deploy.js +53 -0
  190. data/public/amber/js/Examples.js +73 -0
  191. data/public/amber/js/IDE.deploy.js +3557 -0
  192. data/public/amber/js/IDE.js +5002 -0
  193. data/public/amber/js/Kernel-Announcements.deploy.js +107 -0
  194. data/public/amber/js/Kernel-Announcements.js +152 -0
  195. data/public/amber/js/Kernel-Classes.deploy.js +774 -0
  196. data/public/amber/js/Kernel-Classes.js +1095 -0
  197. data/public/amber/js/Kernel-Collections.deploy.js +3121 -0
  198. data/public/amber/js/Kernel-Collections.js +4427 -0
  199. data/public/amber/js/Kernel-Exceptions.deploy.js +244 -0
  200. data/public/amber/js/Kernel-Exceptions.js +349 -0
  201. data/public/amber/js/Kernel-Methods.deploy.js +573 -0
  202. data/public/amber/js/Kernel-Methods.js +807 -0
  203. data/public/amber/js/Kernel-Objects.deploy.js +2877 -0
  204. data/public/amber/js/Kernel-Objects.js +4107 -0
  205. data/public/amber/js/Kernel-Tests.deploy.js +1513 -0
  206. data/public/amber/js/Kernel-Tests.js +2053 -0
  207. data/public/amber/js/Kernel-Transcript.deploy.js +142 -0
  208. data/public/amber/js/Kernel-Transcript.js +202 -0
  209. data/public/amber/js/Maglev-Core.deploy.js +2967 -0
  210. data/public/amber/js/Maglev-Core.js +4202 -0
  211. data/public/amber/js/Maglev-Database-Explorer.deploy.js +4426 -0
  212. data/public/amber/js/Maglev-Database-Explorer.js +6162 -0
  213. data/public/amber/js/Maglev-Vendor.deploy.js +350 -0
  214. data/public/amber/js/Maglev-Vendor.js +465 -0
  215. data/public/amber/js/README.md +5 -0
  216. data/public/amber/js/SUnit.deploy.js +351 -0
  217. data/public/amber/js/SUnit.js +501 -0
  218. data/public/amber/js/amber.js +273 -0
  219. data/public/amber/js/boot.js +602 -0
  220. data/public/amber/js/compat.js +22 -0
  221. data/public/amber/js/init.js +9 -0
  222. data/public/amber/js/lib/CodeMirror/LICENSE +19 -0
  223. data/public/amber/js/lib/CodeMirror/active-line.js +39 -0
  224. data/public/amber/js/lib/CodeMirror/amber.css +21 -0
  225. data/public/amber/js/lib/CodeMirror/codemirror.css +67 -0
  226. data/public/amber/js/lib/CodeMirror/codemirror.js +2144 -0
  227. data/public/amber/js/lib/CodeMirror/smalltalk.js +134 -0
  228. data/public/amber/js/lib/jQuery/jquery-1.4.4.min.js +167 -0
  229. data/public/amber/js/lib/jQuery/jquery-1.6.4.min.js +4 -0
  230. data/public/amber/js/lib/jQuery/jquery-ui-1.8.16.custom.min.js +791 -0
  231. data/public/amber/js/lib/jQuery/jquery.textarea.js +267 -0
  232. data/public/amber/js/lib/peg-0.6.2.min.js +2 -0
  233. data/public/amber/js/lib/showdown.js +419 -0
  234. data/public/amber/js/parser.js +4222 -0
  235. data/public/amber/js/parser.pegjs +223 -0
  236. data/public/amber/learn.html +40 -0
  237. data/public/amber/repl/Makefile +8 -0
  238. data/public/amber/repl/REPL.js +124 -0
  239. data/public/amber/repl/REPL.st +56 -0
  240. data/public/amber/repl/amber.js +18085 -0
  241. data/public/amber/server/FileServer.st +576 -0
  242. data/public/amber/server/Makefile +8 -0
  243. data/public/amber/server/server.js +13049 -0
  244. data/public/amber/st/Benchfib.st +124 -0
  245. data/public/amber/st/Canvas.st +968 -0
  246. data/public/amber/st/Compiler-Tests.st +471 -0
  247. data/public/amber/st/Compiler.st +1445 -0
  248. data/public/amber/st/Documentation.st +758 -0
  249. data/public/amber/st/Examples.st +38 -0
  250. data/public/amber/st/IDE.st +2404 -0
  251. data/public/amber/st/Kernel-Announcements.st +61 -0
  252. data/public/amber/st/Kernel-Classes.st +462 -0
  253. data/public/amber/st/Kernel-Collections.st +1611 -0
  254. data/public/amber/st/Kernel-Exceptions.st +124 -0
  255. data/public/amber/st/Kernel-Methods.st +291 -0
  256. data/public/amber/st/Kernel-Objects.st +1587 -0
  257. data/public/amber/st/Kernel-Tests.st +953 -0
  258. data/public/amber/st/Kernel-Transcript.st +70 -0
  259. data/public/amber/st/Maglev-Core.st +1659 -0
  260. data/public/amber/st/Maglev-Database-Explorer.st +3085 -0
  261. data/public/amber/st/Maglev-Vendor.st +213 -0
  262. data/public/amber/st/Makefile +104 -0
  263. data/public/amber/st/README.md +4 -0
  264. data/public/amber/st/SUnit.st +172 -0
  265. data/public/css/bootstrap-combined.no-icons.min.css +731 -0
  266. data/public/css/bootstrap.css +6811 -0
  267. data/public/css/jquery-ui.min.css +5 -0
  268. data/public/css/smalltalk_code.css +42 -0
  269. data/public/css/style.css +209 -0
  270. data/public/images/maglev-logo.gif +0 -0
  271. data/public/images/rails_tiny.png +0 -0
  272. data/public/images/ruby.png +0 -0
  273. data/public/images/ruby_smalltalk_bridge.png +0 -0
  274. data/public/images/smalltalk.png +0 -0
  275. data/public/libs/bootstrap.min.js +7 -0
  276. data/public/libs/codemirror/CONTRIBUTING.md +72 -0
  277. data/public/libs/codemirror/LICENSE +23 -0
  278. data/public/libs/codemirror/README.md +11 -0
  279. data/public/libs/codemirror/addon/dialog/dialog.css +32 -0
  280. data/public/libs/codemirror/addon/dialog/dialog.js +80 -0
  281. data/public/libs/codemirror/addon/display/placeholder.js +54 -0
  282. data/public/libs/codemirror/addon/edit/closebrackets.js +54 -0
  283. data/public/libs/codemirror/addon/edit/closetag.js +86 -0
  284. data/public/libs/codemirror/addon/edit/continuecomment.js +44 -0
  285. data/public/libs/codemirror/addon/edit/continuelist.js +25 -0
  286. data/public/libs/codemirror/addon/edit/matchbrackets.js +82 -0
  287. data/public/libs/codemirror/addon/fold/brace-fold.js +31 -0
  288. data/public/libs/codemirror/addon/fold/foldcode.js +32 -0
  289. data/public/libs/codemirror/addon/fold/indent-fold.js +11 -0
  290. data/public/libs/codemirror/addon/fold/xml-fold.js +64 -0
  291. data/public/libs/codemirror/addon/hint/html-hint.js +582 -0
  292. data/public/libs/codemirror/addon/hint/javascript-hint.js +142 -0
  293. data/public/libs/codemirror/addon/hint/pig-hint.js +117 -0
  294. data/public/libs/codemirror/addon/hint/python-hint.js +93 -0
  295. data/public/libs/codemirror/addon/hint/show-hint.css +38 -0
  296. data/public/libs/codemirror/addon/hint/show-hint.js +180 -0
  297. data/public/libs/codemirror/addon/hint/xml-hint.js +118 -0
  298. data/public/libs/codemirror/addon/lint/javascript-lint.js +127 -0
  299. data/public/libs/codemirror/addon/lint/json-lint.js +14 -0
  300. data/public/libs/codemirror/addon/lint/lint.css +96 -0
  301. data/public/libs/codemirror/addon/lint/lint.js +197 -0
  302. data/public/libs/codemirror/addon/mode/loadmode.js +51 -0
  303. data/public/libs/codemirror/addon/mode/multiplex.js +95 -0
  304. data/public/libs/codemirror/addon/mode/overlay.js +59 -0
  305. data/public/libs/codemirror/addon/runmode/colorize.js +29 -0
  306. data/public/libs/codemirror/addon/runmode/runmode-standalone.js +130 -0
  307. data/public/libs/codemirror/addon/runmode/runmode.js +52 -0
  308. data/public/libs/codemirror/addon/runmode/runmode.node.js +89 -0
  309. data/public/libs/codemirror/addon/search/match-highlighter.js +60 -0
  310. data/public/libs/codemirror/addon/search/search.js +131 -0
  311. data/public/libs/codemirror/addon/search/searchcursor.js +133 -0
  312. data/public/libs/codemirror/addon/selection/active-line.js +39 -0
  313. data/public/libs/codemirror/addon/selection/mark-selection.js +34 -0
  314. data/public/libs/codemirror/bin/compress +91 -0
  315. data/public/libs/codemirror/bin/lint +11 -0
  316. data/public/libs/codemirror/demo/activeline.html +70 -0
  317. data/public/libs/codemirror/demo/bidi.html +61 -0
  318. data/public/libs/codemirror/demo/btree.html +87 -0
  319. data/public/libs/codemirror/demo/buffers.html +98 -0
  320. data/public/libs/codemirror/demo/changemode.html +50 -0
  321. data/public/libs/codemirror/demo/closebrackets.html +63 -0
  322. data/public/libs/codemirror/demo/closetag.html +37 -0
  323. data/public/libs/codemirror/demo/complete.html +70 -0
  324. data/public/libs/codemirror/demo/emacs.html +60 -0
  325. data/public/libs/codemirror/demo/folding.html +69 -0
  326. data/public/libs/codemirror/demo/fullscreen.html +147 -0
  327. data/public/libs/codemirror/demo/html5complete.html +92 -0
  328. data/public/libs/codemirror/demo/indentwrap.html +49 -0
  329. data/public/libs/codemirror/demo/lint.html +90 -0
  330. data/public/libs/codemirror/demo/loadmode.html +40 -0
  331. data/public/libs/codemirror/demo/marker.html +59 -0
  332. data/public/libs/codemirror/demo/markselection.html +36 -0
  333. data/public/libs/codemirror/demo/matchhighlighter.html +38 -0
  334. data/public/libs/codemirror/demo/multiplex.html +60 -0
  335. data/public/libs/codemirror/demo/mustache.html +59 -0
  336. data/public/libs/codemirror/demo/placeholder.html +36 -0
  337. data/public/libs/codemirror/demo/preview.html +76 -0
  338. data/public/libs/codemirror/demo/resize.html +49 -0
  339. data/public/libs/codemirror/demo/runmode.html +50 -0
  340. data/public/libs/codemirror/demo/search.html +85 -0
  341. data/public/libs/codemirror/demo/spanaffectswrapping_shim.html +73 -0
  342. data/public/libs/codemirror/demo/theme.html +89 -0
  343. data/public/libs/codemirror/demo/variableheight.html +52 -0
  344. data/public/libs/codemirror/demo/vim.html +65 -0
  345. data/public/libs/codemirror/demo/visibletabs.html +53 -0
  346. data/public/libs/codemirror/demo/widget.html +74 -0
  347. data/public/libs/codemirror/demo/xmlcomplete.html +81 -0
  348. data/public/libs/codemirror/doc/baboon.png +0 -0
  349. data/public/libs/codemirror/doc/baboon_vector.svg +153 -0
  350. data/public/libs/codemirror/doc/compress.html +200 -0
  351. data/public/libs/codemirror/doc/docs.css +167 -0
  352. data/public/libs/codemirror/doc/internals.html +505 -0
  353. data/public/libs/codemirror/doc/manual.html +1897 -0
  354. data/public/libs/codemirror/doc/modes.html +94 -0
  355. data/public/libs/codemirror/doc/oldrelease.html +492 -0
  356. data/public/libs/codemirror/doc/realworld.html +100 -0
  357. data/public/libs/codemirror/doc/reporting.html +60 -0
  358. data/public/libs/codemirror/doc/upgrade_v2.2.html +98 -0
  359. data/public/libs/codemirror/doc/upgrade_v3.html +227 -0
  360. data/public/libs/codemirror/index.html +487 -0
  361. data/public/libs/codemirror/keymap/emacs.js +30 -0
  362. data/public/libs/codemirror/keymap/vim.js +3044 -0
  363. data/public/libs/codemirror/lib/codemirror.css +253 -0
  364. data/public/libs/codemirror/lib/codemirror.js +5585 -0
  365. data/public/libs/codemirror/mode/apl/apl.js +160 -0
  366. data/public/libs/codemirror/mode/apl/index.html +61 -0
  367. data/public/libs/codemirror/mode/asterisk/asterisk.js +183 -0
  368. data/public/libs/codemirror/mode/asterisk/index.html +142 -0
  369. data/public/libs/codemirror/mode/clike/clike.js +302 -0
  370. data/public/libs/codemirror/mode/clike/index.html +103 -0
  371. data/public/libs/codemirror/mode/clike/scala.html +767 -0
  372. data/public/libs/codemirror/mode/clojure/clojure.js +222 -0
  373. data/public/libs/codemirror/mode/clojure/index.html +76 -0
  374. data/public/libs/codemirror/mode/coffeescript/LICENSE +22 -0
  375. data/public/libs/codemirror/mode/coffeescript/coffeescript.js +346 -0
  376. data/public/libs/codemirror/mode/coffeescript/index.html +728 -0
  377. data/public/libs/codemirror/mode/commonlisp/commonlisp.js +101 -0
  378. data/public/libs/codemirror/mode/commonlisp/index.html +165 -0
  379. data/public/libs/codemirror/mode/css/css.js +567 -0
  380. data/public/libs/codemirror/mode/css/index.html +58 -0
  381. data/public/libs/codemirror/mode/css/scss.html +145 -0
  382. data/public/libs/codemirror/mode/css/scss_test.js +80 -0
  383. data/public/libs/codemirror/mode/css/test.js +113 -0
  384. data/public/libs/codemirror/mode/d/d.js +205 -0
  385. data/public/libs/codemirror/mode/d/index.html +262 -0
  386. data/public/libs/codemirror/mode/diff/diff.js +32 -0
  387. data/public/libs/codemirror/mode/diff/index.html +105 -0
  388. data/public/libs/codemirror/mode/ecl/ecl.js +192 -0
  389. data/public/libs/codemirror/mode/ecl/index.html +39 -0
  390. data/public/libs/codemirror/mode/erlang/erlang.js +463 -0
  391. data/public/libs/codemirror/mode/erlang/index.html +64 -0
  392. data/public/libs/codemirror/mode/gas/gas.js +326 -0
  393. data/public/libs/codemirror/mode/gas/index.html +57 -0
  394. data/public/libs/codemirror/mode/gfm/gfm.js +96 -0
  395. data/public/libs/codemirror/mode/gfm/index.html +74 -0
  396. data/public/libs/codemirror/mode/gfm/test.js +112 -0
  397. data/public/libs/codemirror/mode/go/go.js +165 -0
  398. data/public/libs/codemirror/mode/go/index.html +74 -0
  399. data/public/libs/codemirror/mode/groovy/groovy.js +210 -0
  400. data/public/libs/codemirror/mode/groovy/index.html +73 -0
  401. data/public/libs/codemirror/mode/haskell/haskell.js +242 -0
  402. data/public/libs/codemirror/mode/haskell/index.html +62 -0
  403. data/public/libs/codemirror/mode/haxe/haxe.js +429 -0
  404. data/public/libs/codemirror/mode/haxe/index.html +90 -0
  405. data/public/libs/codemirror/mode/htmlembedded/htmlembedded.js +73 -0
  406. data/public/libs/codemirror/mode/htmlembedded/index.html +49 -0
  407. data/public/libs/codemirror/mode/htmlmixed/htmlmixed.js +104 -0
  408. data/public/libs/codemirror/mode/htmlmixed/index.html +73 -0
  409. data/public/libs/codemirror/mode/http/http.js +98 -0
  410. data/public/libs/codemirror/mode/http/index.html +32 -0
  411. data/public/libs/codemirror/mode/javascript/index.html +92 -0
  412. data/public/libs/codemirror/mode/javascript/javascript.js +467 -0
  413. data/public/libs/codemirror/mode/javascript/typescript.html +48 -0
  414. data/public/libs/codemirror/mode/jinja2/index.html +38 -0
  415. data/public/libs/codemirror/mode/jinja2/jinja2.js +42 -0
  416. data/public/libs/codemirror/mode/less/index.html +741 -0
  417. data/public/libs/codemirror/mode/less/less.js +266 -0
  418. data/public/libs/codemirror/mode/livescript/LICENSE +23 -0
  419. data/public/libs/codemirror/mode/livescript/index.html +446 -0
  420. data/public/libs/codemirror/mode/livescript/livescript.js +267 -0
  421. data/public/libs/codemirror/mode/livescript/livescript.ls +266 -0
  422. data/public/libs/codemirror/mode/lua/index.html +74 -0
  423. data/public/libs/codemirror/mode/lua/lua.js +140 -0
  424. data/public/libs/codemirror/mode/markdown/index.html +344 -0
  425. data/public/libs/codemirror/mode/markdown/markdown.js +526 -0
  426. data/public/libs/codemirror/mode/markdown/test.js +636 -0
  427. data/public/libs/codemirror/mode/meta.js +75 -0
  428. data/public/libs/codemirror/mode/mirc/index.html +149 -0
  429. data/public/libs/codemirror/mode/mirc/mirc.js +177 -0
  430. data/public/libs/codemirror/mode/ntriples/index.html +33 -0
  431. data/public/libs/codemirror/mode/ntriples/ntriples.js +170 -0
  432. data/public/libs/codemirror/mode/ocaml/index.html +131 -0
  433. data/public/libs/codemirror/mode/ocaml/ocaml.js +113 -0
  434. data/public/libs/codemirror/mode/pascal/LICENSE +7 -0
  435. data/public/libs/codemirror/mode/pascal/index.html +48 -0
  436. data/public/libs/codemirror/mode/pascal/pascal.js +94 -0
  437. data/public/libs/codemirror/mode/perl/LICENSE +19 -0
  438. data/public/libs/codemirror/mode/perl/index.html +62 -0
  439. data/public/libs/codemirror/mode/perl/perl.js +816 -0
  440. data/public/libs/codemirror/mode/php/index.html +51 -0
  441. data/public/libs/codemirror/mode/php/php.js +129 -0
  442. data/public/libs/codemirror/mode/pig/index.html +42 -0
  443. data/public/libs/codemirror/mode/pig/pig.js +171 -0
  444. data/public/libs/codemirror/mode/properties/index.html +41 -0
  445. data/public/libs/codemirror/mode/properties/properties.js +63 -0
  446. data/public/libs/codemirror/mode/python/LICENSE.txt +21 -0
  447. data/public/libs/codemirror/mode/python/index.html +135 -0
  448. data/public/libs/codemirror/mode/python/python.js +340 -0
  449. data/public/libs/codemirror/mode/q/index.html +131 -0
  450. data/public/libs/codemirror/mode/q/q.js +124 -0
  451. data/public/libs/codemirror/mode/r/LICENSE +24 -0
  452. data/public/libs/codemirror/mode/r/index.html +74 -0
  453. data/public/libs/codemirror/mode/r/r.js +141 -0
  454. data/public/libs/codemirror/mode/rpm/changes/changes.js +19 -0
  455. data/public/libs/codemirror/mode/rpm/changes/index.html +53 -0
  456. data/public/libs/codemirror/mode/rpm/spec/index.html +99 -0
  457. data/public/libs/codemirror/mode/rpm/spec/spec.css +5 -0
  458. data/public/libs/codemirror/mode/rpm/spec/spec.js +66 -0
  459. data/public/libs/codemirror/mode/rst/LICENSE.txt +21 -0
  460. data/public/libs/codemirror/mode/rst/index.html +524 -0
  461. data/public/libs/codemirror/mode/rst/rst.js +550 -0
  462. data/public/libs/codemirror/mode/ruby/LICENSE +24 -0
  463. data/public/libs/codemirror/mode/ruby/index.html +173 -0
  464. data/public/libs/codemirror/mode/ruby/ruby.js +197 -0
  465. data/public/libs/codemirror/mode/rust/index.html +48 -0
  466. data/public/libs/codemirror/mode/rust/rust.js +432 -0
  467. data/public/libs/codemirror/mode/sass/index.html +54 -0
  468. data/public/libs/codemirror/mode/sass/sass.js +349 -0
  469. data/public/libs/codemirror/mode/scheme/index.html +65 -0
  470. data/public/libs/codemirror/mode/scheme/scheme.js +230 -0
  471. data/public/libs/codemirror/mode/shell/index.html +51 -0
  472. data/public/libs/codemirror/mode/shell/shell.js +118 -0
  473. data/public/libs/codemirror/mode/sieve/LICENSE +19 -0
  474. data/public/libs/codemirror/mode/sieve/index.html +81 -0
  475. data/public/libs/codemirror/mode/sieve/sieve.js +183 -0
  476. data/public/libs/codemirror/mode/smalltalk/index.html +57 -0
  477. data/public/libs/codemirror/mode/smalltalk/smalltalk.js +141 -0
  478. data/public/libs/codemirror/mode/smarty/index.html +83 -0
  479. data/public/libs/codemirror/mode/smarty/smarty.js +148 -0
  480. data/public/libs/codemirror/mode/sparql/index.html +42 -0
  481. data/public/libs/codemirror/mode/sparql/sparql.js +143 -0
  482. data/public/libs/codemirror/mode/sql/index.html +68 -0
  483. data/public/libs/codemirror/mode/sql/sql.js +268 -0
  484. data/public/libs/codemirror/mode/stex/index.html +98 -0
  485. data/public/libs/codemirror/mode/stex/stex.js +246 -0
  486. data/public/libs/codemirror/mode/stex/test.js +117 -0
  487. data/public/libs/codemirror/mode/tcl/index.html +129 -0
  488. data/public/libs/codemirror/mode/tcl/tcl.js +131 -0
  489. data/public/libs/codemirror/mode/tiddlywiki/index.html +142 -0
  490. data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  491. data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.js +353 -0
  492. data/public/libs/codemirror/mode/tiki/index.html +81 -0
  493. data/public/libs/codemirror/mode/tiki/tiki.css +26 -0
  494. data/public/libs/codemirror/mode/tiki/tiki.js +308 -0
  495. data/public/libs/codemirror/mode/turtle/index.html +39 -0
  496. data/public/libs/codemirror/mode/turtle/turtle.js +145 -0
  497. data/public/libs/codemirror/mode/vb/LICENSE.txt +21 -0
  498. data/public/libs/codemirror/mode/vb/index.html +88 -0
  499. data/public/libs/codemirror/mode/vb/vb.js +259 -0
  500. data/public/libs/codemirror/mode/vbscript/index.html +42 -0
  501. data/public/libs/codemirror/mode/vbscript/vbscript.js +26 -0
  502. data/public/libs/codemirror/mode/velocity/index.html +103 -0
  503. data/public/libs/codemirror/mode/velocity/velocity.js +144 -0
  504. data/public/libs/codemirror/mode/verilog/index.html +121 -0
  505. data/public/libs/codemirror/mode/verilog/verilog.js +182 -0
  506. data/public/libs/codemirror/mode/xml/index.html +45 -0
  507. data/public/libs/codemirror/mode/xml/xml.js +328 -0
  508. data/public/libs/codemirror/mode/xquery/LICENSE +20 -0
  509. data/public/libs/codemirror/mode/xquery/index.html +221 -0
  510. data/public/libs/codemirror/mode/xquery/test.js +64 -0
  511. data/public/libs/codemirror/mode/xquery/xquery.js +450 -0
  512. data/public/libs/codemirror/mode/yaml/index.html +68 -0
  513. data/public/libs/codemirror/mode/yaml/yaml.js +95 -0
  514. data/public/libs/codemirror/mode/z80/index.html +39 -0
  515. data/public/libs/codemirror/mode/z80/z80.js +85 -0
  516. data/public/libs/codemirror/package.json +21 -0
  517. data/public/libs/codemirror/test/doc_test.js +329 -0
  518. data/public/libs/codemirror/test/driver.js +138 -0
  519. data/public/libs/codemirror/test/index.html +182 -0
  520. data/public/libs/codemirror/test/lint/acorn.js +1593 -0
  521. data/public/libs/codemirror/test/lint/lint.js +112 -0
  522. data/public/libs/codemirror/test/lint/parse-js.js +1372 -0
  523. data/public/libs/codemirror/test/lint/walk.js +216 -0
  524. data/public/libs/codemirror/test/mode_test.css +10 -0
  525. data/public/libs/codemirror/test/mode_test.js +192 -0
  526. data/public/libs/codemirror/test/phantom_driver.js +31 -0
  527. data/public/libs/codemirror/test/run.js +33 -0
  528. data/public/libs/codemirror/test/test.js +1400 -0
  529. data/public/libs/codemirror/test/vim_test.js +1688 -0
  530. data/public/libs/codemirror/theme/ambiance-mobile.css +5 -0
  531. data/public/libs/codemirror/theme/ambiance.css +75 -0
  532. data/public/libs/codemirror/theme/blackboard.css +25 -0
  533. data/public/libs/codemirror/theme/cobalt.css +18 -0
  534. data/public/libs/codemirror/theme/eclipse.css +25 -0
  535. data/public/libs/codemirror/theme/elegant.css +10 -0
  536. data/public/libs/codemirror/theme/erlang-dark.css +21 -0
  537. data/public/libs/codemirror/theme/lesser-dark.css +44 -0
  538. data/public/libs/codemirror/theme/midnight.css +52 -0
  539. data/public/libs/codemirror/theme/monokai.css +28 -0
  540. data/public/libs/codemirror/theme/neat.css +9 -0
  541. data/public/libs/codemirror/theme/night.css +21 -0
  542. data/public/libs/codemirror/theme/rubyblue.css +21 -0
  543. data/public/libs/codemirror/theme/solarized.css +207 -0
  544. data/public/libs/codemirror/theme/twilight.css +26 -0
  545. data/public/libs/codemirror/theme/vibrant-ink.css +27 -0
  546. data/public/libs/codemirror/theme/xq-dark.css +46 -0
  547. data/public/libs/codemirror/theme/xq-light.css +43 -0
  548. data/public/libs/font-awesome/css/font-awesome-ie7.css +983 -0
  549. data/public/libs/font-awesome/css/font-awesome-ie7.min.css +24 -0
  550. data/public/libs/font-awesome/css/font-awesome.css +1268 -0
  551. data/public/libs/font-awesome/css/font-awesome.min.css +24 -0
  552. data/public/libs/font-awesome/font/FontAwesome.otf +0 -0
  553. data/public/libs/font-awesome/font/fontawesome-webfont.eot +0 -0
  554. data/public/libs/font-awesome/font/fontawesome-webfont.svg +339 -0
  555. data/public/libs/font-awesome/font/fontawesome-webfont.ttf +0 -0
  556. data/public/libs/font-awesome/font/fontawesome-webfont.woff +0 -0
  557. data/public/libs/font-awesome/less/bootstrap.less +78 -0
  558. data/public/libs/font-awesome/less/core.less +132 -0
  559. data/public/libs/font-awesome/less/extras.less +79 -0
  560. data/public/libs/font-awesome/less/font-awesome-ie7.less +413 -0
  561. data/public/libs/font-awesome/less/font-awesome.less +32 -0
  562. data/public/libs/font-awesome/less/icons.less +330 -0
  563. data/public/libs/font-awesome/less/mixins.less +34 -0
  564. data/public/libs/font-awesome/less/path.less +15 -0
  565. data/public/libs/font-awesome/less/variables.less +9 -0
  566. data/public/libs/jquery-1.10.0.min.js +6 -0
  567. data/public/libs/jquery-ui.min.js +12 -0
  568. data/public/libs/jquery.jsPlumb-1.4.0-all.js +9571 -0
  569. data/public/libs/jquery.livequery.js +226 -0
  570. data/public/libs/jsPlumbInitializer.js +72 -0
  571. data/public/libs/jstree/README.txt +10 -0
  572. data/public/libs/jstree/_demo/_dump.sql +20 -0
  573. data/public/libs/jstree/_demo/_inc/__mysql_errors.log +0 -0
  574. data/public/libs/jstree/_demo/_inc/class._database.php +146 -0
  575. data/public/libs/jstree/_demo/_inc/class._database_i.php +152 -0
  576. data/public/libs/jstree/_demo/_inc/class.tree.php +602 -0
  577. data/public/libs/jstree/_demo/_install.txt +6 -0
  578. data/public/libs/jstree/_demo/config.php +14 -0
  579. data/public/libs/jstree/_demo/file.png +0 -0
  580. data/public/libs/jstree/_demo/folder.png +0 -0
  581. data/public/libs/jstree/_demo/index.html +461 -0
  582. data/public/libs/jstree/_demo/root.png +0 -0
  583. data/public/libs/jstree/_demo/server.php +69 -0
  584. data/public/libs/jstree/_docs/!style.css +48 -0
  585. data/public/libs/jstree/_docs/_drive.png +0 -0
  586. data/public/libs/jstree/_docs/_html_data.html +2 -0
  587. data/public/libs/jstree/_docs/_json_data.json +4 -0
  588. data/public/libs/jstree/_docs/_search_data.json +6 -0
  589. data/public/libs/jstree/_docs/_search_result.json +1 -0
  590. data/public/libs/jstree/_docs/_xml_flat.xml +12 -0
  591. data/public/libs/jstree/_docs/_xml_nest.xml +18 -0
  592. data/public/libs/jstree/_docs/checkbox.html +171 -0
  593. data/public/libs/jstree/_docs/contextmenu.html +121 -0
  594. data/public/libs/jstree/_docs/cookies.html +97 -0
  595. data/public/libs/jstree/_docs/core.html +689 -0
  596. data/public/libs/jstree/_docs/crrm.html +316 -0
  597. data/public/libs/jstree/_docs/dnd.html +199 -0
  598. data/public/libs/jstree/_docs/hotkeys.html +82 -0
  599. data/public/libs/jstree/_docs/html_data.html +175 -0
  600. data/public/libs/jstree/_docs/index.html +86 -0
  601. data/public/libs/jstree/_docs/json_data.html +249 -0
  602. data/public/libs/jstree/_docs/languages.html +152 -0
  603. data/public/libs/jstree/_docs/logo.png +0 -0
  604. data/public/libs/jstree/_docs/search.html +153 -0
  605. data/public/libs/jstree/_docs/sort.html +85 -0
  606. data/public/libs/jstree/_docs/syntax/!script.js +2232 -0
  607. data/public/libs/jstree/_docs/syntax/!style.css +511 -0
  608. data/public/libs/jstree/_docs/syntax/clipboard.swf +0 -0
  609. data/public/libs/jstree/_docs/syntax/help.png +0 -0
  610. data/public/libs/jstree/_docs/syntax/magnifier.png +0 -0
  611. data/public/libs/jstree/_docs/syntax/page_white_code.png +0 -0
  612. data/public/libs/jstree/_docs/syntax/page_white_copy.png +0 -0
  613. data/public/libs/jstree/_docs/syntax/printer.png +0 -0
  614. data/public/libs/jstree/_docs/syntax/wrapping.png +0 -0
  615. data/public/libs/jstree/_docs/themeroller.html +107 -0
  616. data/public/libs/jstree/_docs/themes.html +127 -0
  617. data/public/libs/jstree/_docs/types.html +178 -0
  618. data/public/libs/jstree/_docs/ui.html +197 -0
  619. data/public/libs/jstree/_docs/unique.html +85 -0
  620. data/public/libs/jstree/_docs/xml_data.html +218 -0
  621. data/public/libs/jstree/_lib/jquery.cookie.js +96 -0
  622. data/public/libs/jstree/_lib/jquery.hotkeys.js +99 -0
  623. data/public/libs/jstree/_lib/jquery.js +5 -0
  624. data/public/libs/jstree/jquery.jstree.js +4564 -0
  625. data/public/libs/jstree/themes/apple/bg.jpg +0 -0
  626. data/public/libs/jstree/themes/apple/d.png +0 -0
  627. data/public/libs/jstree/themes/apple/dot_for_ie.gif +0 -0
  628. data/public/libs/jstree/themes/apple/style.css +61 -0
  629. data/public/libs/jstree/themes/apple/throbber.gif +0 -0
  630. data/public/libs/jstree/themes/classic/d.gif +0 -0
  631. data/public/libs/jstree/themes/classic/d.png +0 -0
  632. data/public/libs/jstree/themes/classic/dot_for_ie.gif +0 -0
  633. data/public/libs/jstree/themes/classic/style.css +77 -0
  634. data/public/libs/jstree/themes/classic/throbber.gif +0 -0
  635. data/public/libs/jstree/themes/default-rtl/d.gif +0 -0
  636. data/public/libs/jstree/themes/default-rtl/d.png +0 -0
  637. data/public/libs/jstree/themes/default-rtl/dots.gif +0 -0
  638. data/public/libs/jstree/themes/default-rtl/style.css +84 -0
  639. data/public/libs/jstree/themes/default-rtl/throbber.gif +0 -0
  640. data/public/libs/jstree/themes/default/d.gif +0 -0
  641. data/public/libs/jstree/themes/default/d.png +0 -0
  642. data/public/libs/jstree/themes/default/style.css +74 -0
  643. data/public/libs/jstree/themes/default/throbber.gif +0 -0
  644. data/test/dummy/README.rdoc +261 -0
  645. data/test/dummy/Rakefile +7 -0
  646. data/test/dummy/app/assets/javascripts/application.js +15 -0
  647. data/test/dummy/app/assets/javascripts/demo_app.js +2 -0
  648. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  649. data/test/dummy/app/assets/stylesheets/demo_app.css +4 -0
  650. data/test/dummy/app/controllers/application_controller.rb +3 -0
  651. data/test/dummy/app/controllers/demo_app_controller.rb +6 -0
  652. data/test/dummy/app/helpers/application_helper.rb +2 -0
  653. data/test/dummy/app/helpers/demo_app_helper.rb +2 -0
  654. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  655. data/test/dummy/config.ru +4 -0
  656. data/test/dummy/config/application.rb +59 -0
  657. data/test/dummy/config/boot.rb +10 -0
  658. data/test/dummy/config/database.yml +25 -0
  659. data/test/dummy/config/environment.rb +5 -0
  660. data/test/dummy/config/environments/development.rb +37 -0
  661. data/test/dummy/config/environments/production.rb +67 -0
  662. data/test/dummy/config/environments/test.rb +37 -0
  663. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  664. data/test/dummy/config/initializers/inflections.rb +15 -0
  665. data/test/dummy/config/initializers/mime_types.rb +5 -0
  666. data/test/dummy/config/initializers/secret_token.rb +7 -0
  667. data/test/dummy/config/initializers/session_store.rb +8 -0
  668. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  669. data/test/dummy/config/locales/en.yml +5 -0
  670. data/test/dummy/config/routes.rb +6 -0
  671. data/test/dummy/db/test.sqlite3 +0 -0
  672. data/test/dummy/log/development.log +17606 -0
  673. data/test/dummy/public/404.html +26 -0
  674. data/test/dummy/public/422.html +26 -0
  675. data/test/dummy/public/500.html +25 -0
  676. data/test/dummy/public/favicon.ico +0 -0
  677. data/test/dummy/script/rails +6 -0
  678. data/test/dummy/test/functional/demo_app_controller_test.rb +7 -0
  679. data/test/dummy/test/unit/helpers/demo_app_helper_test.rb +4 -0
  680. data/test/dummy/tmp/cache/assets/D26/980/sprockets%2Fe04a37a0fa7f26c1183a1a4436e2a9c1 +0 -0
  681. data/test/dummy/tmp/cache/assets/D32/4F0/sprockets%2Fbd5441f3593e4ea157222202f3fddad6 +0 -0
  682. data/test/dummy/tmp/pids/server.pid +1 -0
  683. data/test/functional/maglev_database_explorer/def_controller_test.rb +9 -0
  684. data/test/integration/navigation_test.rb +10 -0
  685. data/test/maglev-database-explorer_test.rb +7 -0
  686. data/test/test_helper.rb +15 -0
  687. data/test/unit/helpers/maglev_database_explorer/def_helper_test.rb +6 -0
  688. metadata +813 -0
@@ -0,0 +1,4222 @@
1
+ smalltalk.parser = (function(){
2
+ /* Generated by PEG.js 0.6.2 (http://pegjs.majda.cz/). */
3
+
4
+ var result = {
5
+ /*
6
+ * Parses the input with a generated parser. If the parsing is successfull,
7
+ * returns a value explicitly or implicitly specified by the grammar from
8
+ * which the parser was generated (see |PEG.buildParser|). If the parsing is
9
+ * unsuccessful, throws |PEG.parser.SyntaxError| describing the error.
10
+ */
11
+ parse: function(input, startRule) {
12
+ var parseFunctions = {
13
+ "assignment": parse_assignment,
14
+ "binaryMessage": parse_binaryMessage,
15
+ "binaryPattern": parse_binaryPattern,
16
+ "binarySelector": parse_binarySelector,
17
+ "binarySend": parse_binarySend,
18
+ "binaryTail": parse_binaryTail,
19
+ "block": parse_block,
20
+ "blockParamList": parse_blockParamList,
21
+ "cascade": parse_cascade,
22
+ "className": parse_className,
23
+ "classReference": parse_classReference,
24
+ "comments": parse_comments,
25
+ "dynamicArray": parse_dynamicArray,
26
+ "dynamicDictionary": parse_dynamicDictionary,
27
+ "expression": parse_expression,
28
+ "expressionList": parse_expressionList,
29
+ "expressions": parse_expressions,
30
+ "float": parse_float,
31
+ "identifier": parse_identifier,
32
+ "integer": parse_integer,
33
+ "jsStatement": parse_jsStatement,
34
+ "keyword": parse_keyword,
35
+ "keywordMessage": parse_keywordMessage,
36
+ "keywordPair": parse_keywordPair,
37
+ "keywordPattern": parse_keywordPattern,
38
+ "keywordSend": parse_keywordSend,
39
+ "literal": parse_literal,
40
+ "literalArray": parse_literalArray,
41
+ "message": parse_message,
42
+ "method": parse_method,
43
+ "number": parse_number,
44
+ "operand": parse_operand,
45
+ "pseudoVariable": parse_pseudoVariable,
46
+ "reference": parse_reference,
47
+ "ret": parse_ret,
48
+ "separator": parse_separator,
49
+ "sequence": parse_sequence,
50
+ "statements": parse_statements,
51
+ "string": parse_string,
52
+ "subexpression": parse_subexpression,
53
+ "symbol": parse_symbol,
54
+ "temps": parse_temps,
55
+ "unaryMessage": parse_unaryMessage,
56
+ "unaryPattern": parse_unaryPattern,
57
+ "unarySend": parse_unarySend,
58
+ "unaryTail": parse_unaryTail,
59
+ "varIdentifier": parse_varIdentifier,
60
+ "variable": parse_variable,
61
+ "ws": parse_ws
62
+ };
63
+
64
+ if (startRule !== undefined) {
65
+ if (parseFunctions[startRule] === undefined) {
66
+ throw new Error("Invalid rule name: " + quote(startRule) + ".");
67
+ }
68
+ } else {
69
+ startRule = "method";
70
+ }
71
+
72
+ var pos = 0;
73
+ var reportMatchFailures = true;
74
+ var rightmostMatchFailuresPos = 0;
75
+ var rightmostMatchFailuresExpected = [];
76
+ var cache = {};
77
+
78
+ function padLeft(input, padding, length) {
79
+ var result = input;
80
+
81
+ var padLength = length - input.length;
82
+ for (var i = 0; i < padLength; i++) {
83
+ result = padding + result;
84
+ }
85
+
86
+ return result;
87
+ }
88
+
89
+ function escape(ch) {
90
+ var charCode = ch.charCodeAt(0);
91
+
92
+ if (charCode <= 0xFF) {
93
+ var escapeChar = 'x';
94
+ var length = 2;
95
+ } else {
96
+ var escapeChar = 'u';
97
+ var length = 4;
98
+ }
99
+
100
+ return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length);
101
+ }
102
+
103
+ function quote(s) {
104
+ /*
105
+ * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a
106
+ * string literal except for the closing quote character, backslash,
107
+ * carriage return, line separator, paragraph separator, and line feed.
108
+ * Any character may appear in the form of an escape sequence.
109
+ */
110
+ return '"' + s
111
+ .replace(/\\/g, '\\\\') // backslash
112
+ .replace(/"/g, '\\"') // closing quote character
113
+ .replace(/\r/g, '\\r') // carriage return
114
+ .replace(/\n/g, '\\n') // line feed
115
+ .replace(/[\x80-\uFFFF]/g, escape) // non-ASCII characters
116
+ + '"';
117
+ }
118
+
119
+ function matchFailed(failure) {
120
+ if (pos < rightmostMatchFailuresPos) {
121
+ return;
122
+ }
123
+
124
+ if (pos > rightmostMatchFailuresPos) {
125
+ rightmostMatchFailuresPos = pos;
126
+ rightmostMatchFailuresExpected = [];
127
+ }
128
+
129
+ rightmostMatchFailuresExpected.push(failure);
130
+ }
131
+
132
+ function parse_separator() {
133
+ var cacheKey = 'separator@' + pos;
134
+ var cachedResult = cache[cacheKey];
135
+ if (cachedResult) {
136
+ pos = cachedResult.nextPos;
137
+ return cachedResult.result;
138
+ }
139
+
140
+
141
+ if (input.substr(pos).match(/^[ \xA0\uFEFF\n\r\u2028\u2029]/) !== null) {
142
+ var result1 = input.charAt(pos);
143
+ pos++;
144
+ } else {
145
+ var result1 = null;
146
+ if (reportMatchFailures) {
147
+ matchFailed("[ \\xA0\\uFEFF\\n\\r\\u2028\\u2029]");
148
+ }
149
+ }
150
+ if (result1 !== null) {
151
+ var result0 = [];
152
+ while (result1 !== null) {
153
+ result0.push(result1);
154
+ if (input.substr(pos).match(/^[ \xA0\uFEFF\n\r\u2028\u2029]/) !== null) {
155
+ var result1 = input.charAt(pos);
156
+ pos++;
157
+ } else {
158
+ var result1 = null;
159
+ if (reportMatchFailures) {
160
+ matchFailed("[ \\xA0\\uFEFF\\n\\r\\u2028\\u2029]");
161
+ }
162
+ }
163
+ }
164
+ } else {
165
+ var result0 = null;
166
+ }
167
+
168
+
169
+
170
+ cache[cacheKey] = {
171
+ nextPos: pos,
172
+ result: result0
173
+ };
174
+ return result0;
175
+ }
176
+
177
+ function parse_comments() {
178
+ var cacheKey = 'comments@' + pos;
179
+ var cachedResult = cache[cacheKey];
180
+ if (cachedResult) {
181
+ pos = cachedResult.nextPos;
182
+ return cachedResult.result;
183
+ }
184
+
185
+
186
+ var savedPos0 = pos;
187
+ if (input.substr(pos).match(/^["]/) !== null) {
188
+ var result2 = input.charAt(pos);
189
+ pos++;
190
+ } else {
191
+ var result2 = null;
192
+ if (reportMatchFailures) {
193
+ matchFailed("[\"]");
194
+ }
195
+ }
196
+ if (result2 !== null) {
197
+ var result3 = [];
198
+ if (input.substr(pos).match(/^[^"]/) !== null) {
199
+ var result5 = input.charAt(pos);
200
+ pos++;
201
+ } else {
202
+ var result5 = null;
203
+ if (reportMatchFailures) {
204
+ matchFailed("[^\"]");
205
+ }
206
+ }
207
+ while (result5 !== null) {
208
+ result3.push(result5);
209
+ if (input.substr(pos).match(/^[^"]/) !== null) {
210
+ var result5 = input.charAt(pos);
211
+ pos++;
212
+ } else {
213
+ var result5 = null;
214
+ if (reportMatchFailures) {
215
+ matchFailed("[^\"]");
216
+ }
217
+ }
218
+ }
219
+ if (result3 !== null) {
220
+ if (input.substr(pos).match(/^["]/) !== null) {
221
+ var result4 = input.charAt(pos);
222
+ pos++;
223
+ } else {
224
+ var result4 = null;
225
+ if (reportMatchFailures) {
226
+ matchFailed("[\"]");
227
+ }
228
+ }
229
+ if (result4 !== null) {
230
+ var result1 = [result2, result3, result4];
231
+ } else {
232
+ var result1 = null;
233
+ pos = savedPos0;
234
+ }
235
+ } else {
236
+ var result1 = null;
237
+ pos = savedPos0;
238
+ }
239
+ } else {
240
+ var result1 = null;
241
+ pos = savedPos0;
242
+ }
243
+ if (result1 !== null) {
244
+ var result0 = [];
245
+ while (result1 !== null) {
246
+ result0.push(result1);
247
+ var savedPos0 = pos;
248
+ if (input.substr(pos).match(/^["]/) !== null) {
249
+ var result2 = input.charAt(pos);
250
+ pos++;
251
+ } else {
252
+ var result2 = null;
253
+ if (reportMatchFailures) {
254
+ matchFailed("[\"]");
255
+ }
256
+ }
257
+ if (result2 !== null) {
258
+ var result3 = [];
259
+ if (input.substr(pos).match(/^[^"]/) !== null) {
260
+ var result5 = input.charAt(pos);
261
+ pos++;
262
+ } else {
263
+ var result5 = null;
264
+ if (reportMatchFailures) {
265
+ matchFailed("[^\"]");
266
+ }
267
+ }
268
+ while (result5 !== null) {
269
+ result3.push(result5);
270
+ if (input.substr(pos).match(/^[^"]/) !== null) {
271
+ var result5 = input.charAt(pos);
272
+ pos++;
273
+ } else {
274
+ var result5 = null;
275
+ if (reportMatchFailures) {
276
+ matchFailed("[^\"]");
277
+ }
278
+ }
279
+ }
280
+ if (result3 !== null) {
281
+ if (input.substr(pos).match(/^["]/) !== null) {
282
+ var result4 = input.charAt(pos);
283
+ pos++;
284
+ } else {
285
+ var result4 = null;
286
+ if (reportMatchFailures) {
287
+ matchFailed("[\"]");
288
+ }
289
+ }
290
+ if (result4 !== null) {
291
+ var result1 = [result2, result3, result4];
292
+ } else {
293
+ var result1 = null;
294
+ pos = savedPos0;
295
+ }
296
+ } else {
297
+ var result1 = null;
298
+ pos = savedPos0;
299
+ }
300
+ } else {
301
+ var result1 = null;
302
+ pos = savedPos0;
303
+ }
304
+ }
305
+ } else {
306
+ var result0 = null;
307
+ }
308
+
309
+
310
+
311
+ cache[cacheKey] = {
312
+ nextPos: pos,
313
+ result: result0
314
+ };
315
+ return result0;
316
+ }
317
+
318
+ function parse_ws() {
319
+ var cacheKey = 'ws@' + pos;
320
+ var cachedResult = cache[cacheKey];
321
+ if (cachedResult) {
322
+ pos = cachedResult.nextPos;
323
+ return cachedResult.result;
324
+ }
325
+
326
+
327
+ var result0 = [];
328
+ var result3 = parse_separator();
329
+ if (result3 !== null) {
330
+ var result1 = result3;
331
+ } else {
332
+ var result2 = parse_comments();
333
+ if (result2 !== null) {
334
+ var result1 = result2;
335
+ } else {
336
+ var result1 = null;;
337
+ };
338
+ }
339
+ while (result1 !== null) {
340
+ result0.push(result1);
341
+ var result3 = parse_separator();
342
+ if (result3 !== null) {
343
+ var result1 = result3;
344
+ } else {
345
+ var result2 = parse_comments();
346
+ if (result2 !== null) {
347
+ var result1 = result2;
348
+ } else {
349
+ var result1 = null;;
350
+ };
351
+ }
352
+ }
353
+
354
+
355
+
356
+ cache[cacheKey] = {
357
+ nextPos: pos,
358
+ result: result0
359
+ };
360
+ return result0;
361
+ }
362
+
363
+ function parse_identifier() {
364
+ var cacheKey = 'identifier@' + pos;
365
+ var cachedResult = cache[cacheKey];
366
+ if (cachedResult) {
367
+ pos = cachedResult.nextPos;
368
+ return cachedResult.result;
369
+ }
370
+
371
+
372
+ var savedPos0 = pos;
373
+ var savedPos1 = pos;
374
+ if (input.substr(pos).match(/^[a-zA-Z]/) !== null) {
375
+ var result3 = input.charAt(pos);
376
+ pos++;
377
+ } else {
378
+ var result3 = null;
379
+ if (reportMatchFailures) {
380
+ matchFailed("[a-zA-Z]");
381
+ }
382
+ }
383
+ if (result3 !== null) {
384
+ var result4 = [];
385
+ if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
386
+ var result5 = input.charAt(pos);
387
+ pos++;
388
+ } else {
389
+ var result5 = null;
390
+ if (reportMatchFailures) {
391
+ matchFailed("[a-zA-Z0-9]");
392
+ }
393
+ }
394
+ while (result5 !== null) {
395
+ result4.push(result5);
396
+ if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
397
+ var result5 = input.charAt(pos);
398
+ pos++;
399
+ } else {
400
+ var result5 = null;
401
+ if (reportMatchFailures) {
402
+ matchFailed("[a-zA-Z0-9]");
403
+ }
404
+ }
405
+ }
406
+ if (result4 !== null) {
407
+ var result1 = [result3, result4];
408
+ } else {
409
+ var result1 = null;
410
+ pos = savedPos1;
411
+ }
412
+ } else {
413
+ var result1 = null;
414
+ pos = savedPos1;
415
+ }
416
+ var result2 = result1 !== null
417
+ ? (function(first, others) {return first + others.join("")})(result1[0], result1[1])
418
+ : null;
419
+ if (result2 !== null) {
420
+ var result0 = result2;
421
+ } else {
422
+ var result0 = null;
423
+ pos = savedPos0;
424
+ }
425
+
426
+
427
+
428
+ cache[cacheKey] = {
429
+ nextPos: pos,
430
+ result: result0
431
+ };
432
+ return result0;
433
+ }
434
+
435
+ function parse_varIdentifier() {
436
+ var cacheKey = 'varIdentifier@' + pos;
437
+ var cachedResult = cache[cacheKey];
438
+ if (cachedResult) {
439
+ pos = cachedResult.nextPos;
440
+ return cachedResult.result;
441
+ }
442
+
443
+
444
+ var savedPos0 = pos;
445
+ var savedPos1 = pos;
446
+ if (input.substr(pos).match(/^[a-z]/) !== null) {
447
+ var result3 = input.charAt(pos);
448
+ pos++;
449
+ } else {
450
+ var result3 = null;
451
+ if (reportMatchFailures) {
452
+ matchFailed("[a-z]");
453
+ }
454
+ }
455
+ if (result3 !== null) {
456
+ var result4 = [];
457
+ if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
458
+ var result5 = input.charAt(pos);
459
+ pos++;
460
+ } else {
461
+ var result5 = null;
462
+ if (reportMatchFailures) {
463
+ matchFailed("[a-zA-Z0-9]");
464
+ }
465
+ }
466
+ while (result5 !== null) {
467
+ result4.push(result5);
468
+ if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
469
+ var result5 = input.charAt(pos);
470
+ pos++;
471
+ } else {
472
+ var result5 = null;
473
+ if (reportMatchFailures) {
474
+ matchFailed("[a-zA-Z0-9]");
475
+ }
476
+ }
477
+ }
478
+ if (result4 !== null) {
479
+ var result1 = [result3, result4];
480
+ } else {
481
+ var result1 = null;
482
+ pos = savedPos1;
483
+ }
484
+ } else {
485
+ var result1 = null;
486
+ pos = savedPos1;
487
+ }
488
+ var result2 = result1 !== null
489
+ ? (function(first, others) {return first + others.join("")})(result1[0], result1[1])
490
+ : null;
491
+ if (result2 !== null) {
492
+ var result0 = result2;
493
+ } else {
494
+ var result0 = null;
495
+ pos = savedPos0;
496
+ }
497
+
498
+
499
+
500
+ cache[cacheKey] = {
501
+ nextPos: pos,
502
+ result: result0
503
+ };
504
+ return result0;
505
+ }
506
+
507
+ function parse_keyword() {
508
+ var cacheKey = 'keyword@' + pos;
509
+ var cachedResult = cache[cacheKey];
510
+ if (cachedResult) {
511
+ pos = cachedResult.nextPos;
512
+ return cachedResult.result;
513
+ }
514
+
515
+
516
+ var savedPos0 = pos;
517
+ var savedPos1 = pos;
518
+ var result3 = parse_identifier();
519
+ if (result3 !== null) {
520
+ if (input.substr(pos).match(/^[:]/) !== null) {
521
+ var result4 = input.charAt(pos);
522
+ pos++;
523
+ } else {
524
+ var result4 = null;
525
+ if (reportMatchFailures) {
526
+ matchFailed("[:]");
527
+ }
528
+ }
529
+ if (result4 !== null) {
530
+ var result1 = [result3, result4];
531
+ } else {
532
+ var result1 = null;
533
+ pos = savedPos1;
534
+ }
535
+ } else {
536
+ var result1 = null;
537
+ pos = savedPos1;
538
+ }
539
+ var result2 = result1 !== null
540
+ ? (function(first, last) {return first + last})(result1[0], result1[1])
541
+ : null;
542
+ if (result2 !== null) {
543
+ var result0 = result2;
544
+ } else {
545
+ var result0 = null;
546
+ pos = savedPos0;
547
+ }
548
+
549
+
550
+
551
+ cache[cacheKey] = {
552
+ nextPos: pos,
553
+ result: result0
554
+ };
555
+ return result0;
556
+ }
557
+
558
+ function parse_className() {
559
+ var cacheKey = 'className@' + pos;
560
+ var cachedResult = cache[cacheKey];
561
+ if (cachedResult) {
562
+ pos = cachedResult.nextPos;
563
+ return cachedResult.result;
564
+ }
565
+
566
+
567
+ var savedPos0 = pos;
568
+ var savedPos1 = pos;
569
+ if (input.substr(pos).match(/^[A-Z]/) !== null) {
570
+ var result3 = input.charAt(pos);
571
+ pos++;
572
+ } else {
573
+ var result3 = null;
574
+ if (reportMatchFailures) {
575
+ matchFailed("[A-Z]");
576
+ }
577
+ }
578
+ if (result3 !== null) {
579
+ var result4 = [];
580
+ if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
581
+ var result5 = input.charAt(pos);
582
+ pos++;
583
+ } else {
584
+ var result5 = null;
585
+ if (reportMatchFailures) {
586
+ matchFailed("[a-zA-Z0-9]");
587
+ }
588
+ }
589
+ while (result5 !== null) {
590
+ result4.push(result5);
591
+ if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
592
+ var result5 = input.charAt(pos);
593
+ pos++;
594
+ } else {
595
+ var result5 = null;
596
+ if (reportMatchFailures) {
597
+ matchFailed("[a-zA-Z0-9]");
598
+ }
599
+ }
600
+ }
601
+ if (result4 !== null) {
602
+ var result1 = [result3, result4];
603
+ } else {
604
+ var result1 = null;
605
+ pos = savedPos1;
606
+ }
607
+ } else {
608
+ var result1 = null;
609
+ pos = savedPos1;
610
+ }
611
+ var result2 = result1 !== null
612
+ ? (function(first, others) {return first + others.join("")})(result1[0], result1[1])
613
+ : null;
614
+ if (result2 !== null) {
615
+ var result0 = result2;
616
+ } else {
617
+ var result0 = null;
618
+ pos = savedPos0;
619
+ }
620
+
621
+
622
+
623
+ cache[cacheKey] = {
624
+ nextPos: pos,
625
+ result: result0
626
+ };
627
+ return result0;
628
+ }
629
+
630
+ function parse_string() {
631
+ var cacheKey = 'string@' + pos;
632
+ var cachedResult = cache[cacheKey];
633
+ if (cachedResult) {
634
+ pos = cachedResult.nextPos;
635
+ return cachedResult.result;
636
+ }
637
+
638
+
639
+ var savedPos0 = pos;
640
+ var savedPos1 = pos;
641
+ if (input.substr(pos).match(/^[']/) !== null) {
642
+ var result3 = input.charAt(pos);
643
+ pos++;
644
+ } else {
645
+ var result3 = null;
646
+ if (reportMatchFailures) {
647
+ matchFailed("[']");
648
+ }
649
+ }
650
+ if (result3 !== null) {
651
+ var result4 = [];
652
+ var savedPos2 = pos;
653
+ if (input.substr(pos, 2) === "''") {
654
+ var result9 = "''";
655
+ pos += 2;
656
+ } else {
657
+ var result9 = null;
658
+ if (reportMatchFailures) {
659
+ matchFailed("\"''\"");
660
+ }
661
+ }
662
+ var result10 = result9 !== null
663
+ ? (function() {return "'"})()
664
+ : null;
665
+ if (result10 !== null) {
666
+ var result8 = result10;
667
+ } else {
668
+ var result8 = null;
669
+ pos = savedPos2;
670
+ }
671
+ if (result8 !== null) {
672
+ var result6 = result8;
673
+ } else {
674
+ if (input.substr(pos).match(/^[^']/) !== null) {
675
+ var result7 = input.charAt(pos);
676
+ pos++;
677
+ } else {
678
+ var result7 = null;
679
+ if (reportMatchFailures) {
680
+ matchFailed("[^']");
681
+ }
682
+ }
683
+ if (result7 !== null) {
684
+ var result6 = result7;
685
+ } else {
686
+ var result6 = null;;
687
+ };
688
+ }
689
+ while (result6 !== null) {
690
+ result4.push(result6);
691
+ var savedPos2 = pos;
692
+ if (input.substr(pos, 2) === "''") {
693
+ var result9 = "''";
694
+ pos += 2;
695
+ } else {
696
+ var result9 = null;
697
+ if (reportMatchFailures) {
698
+ matchFailed("\"''\"");
699
+ }
700
+ }
701
+ var result10 = result9 !== null
702
+ ? (function() {return "'"})()
703
+ : null;
704
+ if (result10 !== null) {
705
+ var result8 = result10;
706
+ } else {
707
+ var result8 = null;
708
+ pos = savedPos2;
709
+ }
710
+ if (result8 !== null) {
711
+ var result6 = result8;
712
+ } else {
713
+ if (input.substr(pos).match(/^[^']/) !== null) {
714
+ var result7 = input.charAt(pos);
715
+ pos++;
716
+ } else {
717
+ var result7 = null;
718
+ if (reportMatchFailures) {
719
+ matchFailed("[^']");
720
+ }
721
+ }
722
+ if (result7 !== null) {
723
+ var result6 = result7;
724
+ } else {
725
+ var result6 = null;;
726
+ };
727
+ }
728
+ }
729
+ if (result4 !== null) {
730
+ if (input.substr(pos).match(/^[']/) !== null) {
731
+ var result5 = input.charAt(pos);
732
+ pos++;
733
+ } else {
734
+ var result5 = null;
735
+ if (reportMatchFailures) {
736
+ matchFailed("[']");
737
+ }
738
+ }
739
+ if (result5 !== null) {
740
+ var result1 = [result3, result4, result5];
741
+ } else {
742
+ var result1 = null;
743
+ pos = savedPos1;
744
+ }
745
+ } else {
746
+ var result1 = null;
747
+ pos = savedPos1;
748
+ }
749
+ } else {
750
+ var result1 = null;
751
+ pos = savedPos1;
752
+ }
753
+ var result2 = result1 !== null
754
+ ? (function(val) {
755
+ return smalltalk.ValueNode._new()
756
+ ._value_(val.join("").replace(/\"/ig, '"'))
757
+ })(result1[1])
758
+ : null;
759
+ if (result2 !== null) {
760
+ var result0 = result2;
761
+ } else {
762
+ var result0 = null;
763
+ pos = savedPos0;
764
+ }
765
+
766
+
767
+
768
+ cache[cacheKey] = {
769
+ nextPos: pos,
770
+ result: result0
771
+ };
772
+ return result0;
773
+ }
774
+
775
+ function parse_symbol() {
776
+ var cacheKey = 'symbol@' + pos;
777
+ var cachedResult = cache[cacheKey];
778
+ if (cachedResult) {
779
+ pos = cachedResult.nextPos;
780
+ return cachedResult.result;
781
+ }
782
+
783
+
784
+ var savedPos0 = pos;
785
+ var savedPos1 = pos;
786
+ if (input.substr(pos, 1) === "#") {
787
+ var result3 = "#";
788
+ pos += 1;
789
+ } else {
790
+ var result3 = null;
791
+ if (reportMatchFailures) {
792
+ matchFailed("\"#\"");
793
+ }
794
+ }
795
+ if (result3 !== null) {
796
+ var result4 = [];
797
+ var savedPos3 = pos;
798
+ if (input.substr(pos).match(/^[a-zA-Z0-9:]/) !== null) {
799
+ var result12 = input.charAt(pos);
800
+ pos++;
801
+ } else {
802
+ var result12 = null;
803
+ if (reportMatchFailures) {
804
+ matchFailed("[a-zA-Z0-9:]");
805
+ }
806
+ }
807
+ if (result12 !== null) {
808
+ var result10 = [];
809
+ while (result12 !== null) {
810
+ result10.push(result12);
811
+ if (input.substr(pos).match(/^[a-zA-Z0-9:]/) !== null) {
812
+ var result12 = input.charAt(pos);
813
+ pos++;
814
+ } else {
815
+ var result12 = null;
816
+ if (reportMatchFailures) {
817
+ matchFailed("[a-zA-Z0-9:]");
818
+ }
819
+ }
820
+ }
821
+ } else {
822
+ var result10 = null;
823
+ }
824
+ var result11 = result10 !== null
825
+ ? (function(digits) {return digits.join("")})(result10)
826
+ : null;
827
+ if (result11 !== null) {
828
+ var result9 = result11;
829
+ } else {
830
+ var result9 = null;
831
+ pos = savedPos3;
832
+ }
833
+ if (result9 !== null) {
834
+ var result5 = result9;
835
+ } else {
836
+ var savedPos2 = pos;
837
+ var result7 = parse_string();
838
+ var result8 = result7 !== null
839
+ ? (function(node) {return node._value()})(result7)
840
+ : null;
841
+ if (result8 !== null) {
842
+ var result6 = result8;
843
+ } else {
844
+ var result6 = null;
845
+ pos = savedPos2;
846
+ }
847
+ if (result6 !== null) {
848
+ var result5 = result6;
849
+ } else {
850
+ var result5 = null;;
851
+ };
852
+ }
853
+ while (result5 !== null) {
854
+ result4.push(result5);
855
+ var savedPos3 = pos;
856
+ if (input.substr(pos).match(/^[a-zA-Z0-9:]/) !== null) {
857
+ var result12 = input.charAt(pos);
858
+ pos++;
859
+ } else {
860
+ var result12 = null;
861
+ if (reportMatchFailures) {
862
+ matchFailed("[a-zA-Z0-9:]");
863
+ }
864
+ }
865
+ if (result12 !== null) {
866
+ var result10 = [];
867
+ while (result12 !== null) {
868
+ result10.push(result12);
869
+ if (input.substr(pos).match(/^[a-zA-Z0-9:]/) !== null) {
870
+ var result12 = input.charAt(pos);
871
+ pos++;
872
+ } else {
873
+ var result12 = null;
874
+ if (reportMatchFailures) {
875
+ matchFailed("[a-zA-Z0-9:]");
876
+ }
877
+ }
878
+ }
879
+ } else {
880
+ var result10 = null;
881
+ }
882
+ var result11 = result10 !== null
883
+ ? (function(digits) {return digits.join("")})(result10)
884
+ : null;
885
+ if (result11 !== null) {
886
+ var result9 = result11;
887
+ } else {
888
+ var result9 = null;
889
+ pos = savedPos3;
890
+ }
891
+ if (result9 !== null) {
892
+ var result5 = result9;
893
+ } else {
894
+ var savedPos2 = pos;
895
+ var result7 = parse_string();
896
+ var result8 = result7 !== null
897
+ ? (function(node) {return node._value()})(result7)
898
+ : null;
899
+ if (result8 !== null) {
900
+ var result6 = result8;
901
+ } else {
902
+ var result6 = null;
903
+ pos = savedPos2;
904
+ }
905
+ if (result6 !== null) {
906
+ var result5 = result6;
907
+ } else {
908
+ var result5 = null;;
909
+ };
910
+ }
911
+ }
912
+ if (result4 !== null) {
913
+ var result1 = [result3, result4];
914
+ } else {
915
+ var result1 = null;
916
+ pos = savedPos1;
917
+ }
918
+ } else {
919
+ var result1 = null;
920
+ pos = savedPos1;
921
+ }
922
+ var result2 = result1 !== null
923
+ ? (function(val) {
924
+ return smalltalk.ValueNode._new()
925
+ ._value_(smalltalk.symbolFor(val.join("").replace(/\"/ig, '"')))
926
+ })(result1[1])
927
+ : null;
928
+ if (result2 !== null) {
929
+ var result0 = result2;
930
+ } else {
931
+ var result0 = null;
932
+ pos = savedPos0;
933
+ }
934
+
935
+
936
+
937
+ cache[cacheKey] = {
938
+ nextPos: pos,
939
+ result: result0
940
+ };
941
+ return result0;
942
+ }
943
+
944
+ function parse_number() {
945
+ var cacheKey = 'number@' + pos;
946
+ var cachedResult = cache[cacheKey];
947
+ if (cachedResult) {
948
+ pos = cachedResult.nextPos;
949
+ return cachedResult.result;
950
+ }
951
+
952
+
953
+ var savedPos0 = pos;
954
+ var result4 = parse_float();
955
+ if (result4 !== null) {
956
+ var result1 = result4;
957
+ } else {
958
+ var result3 = parse_integer();
959
+ if (result3 !== null) {
960
+ var result1 = result3;
961
+ } else {
962
+ var result1 = null;;
963
+ };
964
+ }
965
+ var result2 = result1 !== null
966
+ ? (function(n) {
967
+ return smalltalk.ValueNode._new()
968
+ ._value_(n)
969
+ })(result1)
970
+ : null;
971
+ if (result2 !== null) {
972
+ var result0 = result2;
973
+ } else {
974
+ var result0 = null;
975
+ pos = savedPos0;
976
+ }
977
+
978
+
979
+
980
+ cache[cacheKey] = {
981
+ nextPos: pos,
982
+ result: result0
983
+ };
984
+ return result0;
985
+ }
986
+
987
+ function parse_float() {
988
+ var cacheKey = 'float@' + pos;
989
+ var cachedResult = cache[cacheKey];
990
+ if (cachedResult) {
991
+ pos = cachedResult.nextPos;
992
+ return cachedResult.result;
993
+ }
994
+
995
+
996
+ var savedPos0 = pos;
997
+ var savedPos1 = pos;
998
+ if (input.substr(pos).match(/^[\-]/) !== null) {
999
+ var result9 = input.charAt(pos);
1000
+ pos++;
1001
+ } else {
1002
+ var result9 = null;
1003
+ if (reportMatchFailures) {
1004
+ matchFailed("[\\-]");
1005
+ }
1006
+ }
1007
+ var result3 = result9 !== null ? result9 : '';
1008
+ if (result3 !== null) {
1009
+ if (input.substr(pos).match(/^[0-9]/) !== null) {
1010
+ var result8 = input.charAt(pos);
1011
+ pos++;
1012
+ } else {
1013
+ var result8 = null;
1014
+ if (reportMatchFailures) {
1015
+ matchFailed("[0-9]");
1016
+ }
1017
+ }
1018
+ if (result8 !== null) {
1019
+ var result4 = [];
1020
+ while (result8 !== null) {
1021
+ result4.push(result8);
1022
+ if (input.substr(pos).match(/^[0-9]/) !== null) {
1023
+ var result8 = input.charAt(pos);
1024
+ pos++;
1025
+ } else {
1026
+ var result8 = null;
1027
+ if (reportMatchFailures) {
1028
+ matchFailed("[0-9]");
1029
+ }
1030
+ }
1031
+ }
1032
+ } else {
1033
+ var result4 = null;
1034
+ }
1035
+ if (result4 !== null) {
1036
+ if (input.substr(pos, 1) === ".") {
1037
+ var result5 = ".";
1038
+ pos += 1;
1039
+ } else {
1040
+ var result5 = null;
1041
+ if (reportMatchFailures) {
1042
+ matchFailed("\".\"");
1043
+ }
1044
+ }
1045
+ if (result5 !== null) {
1046
+ if (input.substr(pos).match(/^[0-9]/) !== null) {
1047
+ var result7 = input.charAt(pos);
1048
+ pos++;
1049
+ } else {
1050
+ var result7 = null;
1051
+ if (reportMatchFailures) {
1052
+ matchFailed("[0-9]");
1053
+ }
1054
+ }
1055
+ if (result7 !== null) {
1056
+ var result6 = [];
1057
+ while (result7 !== null) {
1058
+ result6.push(result7);
1059
+ if (input.substr(pos).match(/^[0-9]/) !== null) {
1060
+ var result7 = input.charAt(pos);
1061
+ pos++;
1062
+ } else {
1063
+ var result7 = null;
1064
+ if (reportMatchFailures) {
1065
+ matchFailed("[0-9]");
1066
+ }
1067
+ }
1068
+ }
1069
+ } else {
1070
+ var result6 = null;
1071
+ }
1072
+ if (result6 !== null) {
1073
+ var result1 = [result3, result4, result5, result6];
1074
+ } else {
1075
+ var result1 = null;
1076
+ pos = savedPos1;
1077
+ }
1078
+ } else {
1079
+ var result1 = null;
1080
+ pos = savedPos1;
1081
+ }
1082
+ } else {
1083
+ var result1 = null;
1084
+ pos = savedPos1;
1085
+ }
1086
+ } else {
1087
+ var result1 = null;
1088
+ pos = savedPos1;
1089
+ }
1090
+ var result2 = result1 !== null
1091
+ ? (function(neg, int, dec) {return parseFloat((neg + int.join("") + "." + dec.join("")), 10)})(result1[0], result1[1], result1[3])
1092
+ : null;
1093
+ if (result2 !== null) {
1094
+ var result0 = result2;
1095
+ } else {
1096
+ var result0 = null;
1097
+ pos = savedPos0;
1098
+ }
1099
+
1100
+
1101
+
1102
+ cache[cacheKey] = {
1103
+ nextPos: pos,
1104
+ result: result0
1105
+ };
1106
+ return result0;
1107
+ }
1108
+
1109
+ function parse_integer() {
1110
+ var cacheKey = 'integer@' + pos;
1111
+ var cachedResult = cache[cacheKey];
1112
+ if (cachedResult) {
1113
+ pos = cachedResult.nextPos;
1114
+ return cachedResult.result;
1115
+ }
1116
+
1117
+
1118
+ var savedPos0 = pos;
1119
+ var savedPos1 = pos;
1120
+ if (input.substr(pos).match(/^[\-]/) !== null) {
1121
+ var result6 = input.charAt(pos);
1122
+ pos++;
1123
+ } else {
1124
+ var result6 = null;
1125
+ if (reportMatchFailures) {
1126
+ matchFailed("[\\-]");
1127
+ }
1128
+ }
1129
+ var result3 = result6 !== null ? result6 : '';
1130
+ if (result3 !== null) {
1131
+ if (input.substr(pos).match(/^[0-9]/) !== null) {
1132
+ var result5 = input.charAt(pos);
1133
+ pos++;
1134
+ } else {
1135
+ var result5 = null;
1136
+ if (reportMatchFailures) {
1137
+ matchFailed("[0-9]");
1138
+ }
1139
+ }
1140
+ if (result5 !== null) {
1141
+ var result4 = [];
1142
+ while (result5 !== null) {
1143
+ result4.push(result5);
1144
+ if (input.substr(pos).match(/^[0-9]/) !== null) {
1145
+ var result5 = input.charAt(pos);
1146
+ pos++;
1147
+ } else {
1148
+ var result5 = null;
1149
+ if (reportMatchFailures) {
1150
+ matchFailed("[0-9]");
1151
+ }
1152
+ }
1153
+ }
1154
+ } else {
1155
+ var result4 = null;
1156
+ }
1157
+ if (result4 !== null) {
1158
+ var result1 = [result3, result4];
1159
+ } else {
1160
+ var result1 = null;
1161
+ pos = savedPos1;
1162
+ }
1163
+ } else {
1164
+ var result1 = null;
1165
+ pos = savedPos1;
1166
+ }
1167
+ var result2 = result1 !== null
1168
+ ? (function(neg, digits) {return (parseInt(neg+digits.join(""), 10))})(result1[0], result1[1])
1169
+ : null;
1170
+ if (result2 !== null) {
1171
+ var result0 = result2;
1172
+ } else {
1173
+ var result0 = null;
1174
+ pos = savedPos0;
1175
+ }
1176
+
1177
+
1178
+
1179
+ cache[cacheKey] = {
1180
+ nextPos: pos,
1181
+ result: result0
1182
+ };
1183
+ return result0;
1184
+ }
1185
+
1186
+ function parse_literalArray() {
1187
+ var cacheKey = 'literalArray@' + pos;
1188
+ var cachedResult = cache[cacheKey];
1189
+ if (cachedResult) {
1190
+ pos = cachedResult.nextPos;
1191
+ return cachedResult.result;
1192
+ }
1193
+
1194
+
1195
+ var savedPos0 = pos;
1196
+ var savedPos1 = pos;
1197
+ if (input.substr(pos, 2) === "#(") {
1198
+ var result3 = "#(";
1199
+ pos += 2;
1200
+ } else {
1201
+ var result3 = null;
1202
+ if (reportMatchFailures) {
1203
+ matchFailed("\"#(\"");
1204
+ }
1205
+ }
1206
+ if (result3 !== null) {
1207
+ var result4 = parse_ws();
1208
+ if (result4 !== null) {
1209
+ var result5 = [];
1210
+ var savedPos2 = pos;
1211
+ var savedPos3 = pos;
1212
+ var result11 = parse_literal();
1213
+ if (result11 !== null) {
1214
+ var result12 = parse_ws();
1215
+ if (result12 !== null) {
1216
+ var result9 = [result11, result12];
1217
+ } else {
1218
+ var result9 = null;
1219
+ pos = savedPos3;
1220
+ }
1221
+ } else {
1222
+ var result9 = null;
1223
+ pos = savedPos3;
1224
+ }
1225
+ var result10 = result9 !== null
1226
+ ? (function(lit) {return lit._value()})(result9[0])
1227
+ : null;
1228
+ if (result10 !== null) {
1229
+ var result8 = result10;
1230
+ } else {
1231
+ var result8 = null;
1232
+ pos = savedPos2;
1233
+ }
1234
+ while (result8 !== null) {
1235
+ result5.push(result8);
1236
+ var savedPos2 = pos;
1237
+ var savedPos3 = pos;
1238
+ var result11 = parse_literal();
1239
+ if (result11 !== null) {
1240
+ var result12 = parse_ws();
1241
+ if (result12 !== null) {
1242
+ var result9 = [result11, result12];
1243
+ } else {
1244
+ var result9 = null;
1245
+ pos = savedPos3;
1246
+ }
1247
+ } else {
1248
+ var result9 = null;
1249
+ pos = savedPos3;
1250
+ }
1251
+ var result10 = result9 !== null
1252
+ ? (function(lit) {return lit._value()})(result9[0])
1253
+ : null;
1254
+ if (result10 !== null) {
1255
+ var result8 = result10;
1256
+ } else {
1257
+ var result8 = null;
1258
+ pos = savedPos2;
1259
+ }
1260
+ }
1261
+ if (result5 !== null) {
1262
+ var result6 = parse_ws();
1263
+ if (result6 !== null) {
1264
+ if (input.substr(pos, 1) === ")") {
1265
+ var result7 = ")";
1266
+ pos += 1;
1267
+ } else {
1268
+ var result7 = null;
1269
+ if (reportMatchFailures) {
1270
+ matchFailed("\")\"");
1271
+ }
1272
+ }
1273
+ if (result7 !== null) {
1274
+ var result1 = [result3, result4, result5, result6, result7];
1275
+ } else {
1276
+ var result1 = null;
1277
+ pos = savedPos1;
1278
+ }
1279
+ } else {
1280
+ var result1 = null;
1281
+ pos = savedPos1;
1282
+ }
1283
+ } else {
1284
+ var result1 = null;
1285
+ pos = savedPos1;
1286
+ }
1287
+ } else {
1288
+ var result1 = null;
1289
+ pos = savedPos1;
1290
+ }
1291
+ } else {
1292
+ var result1 = null;
1293
+ pos = savedPos1;
1294
+ }
1295
+ var result2 = result1 !== null
1296
+ ? (function(lits) {
1297
+ return smalltalk.ValueNode._new()
1298
+ ._value_(lits)
1299
+ })(result1[2])
1300
+ : null;
1301
+ if (result2 !== null) {
1302
+ var result0 = result2;
1303
+ } else {
1304
+ var result0 = null;
1305
+ pos = savedPos0;
1306
+ }
1307
+
1308
+
1309
+
1310
+ cache[cacheKey] = {
1311
+ nextPos: pos,
1312
+ result: result0
1313
+ };
1314
+ return result0;
1315
+ }
1316
+
1317
+ function parse_dynamicArray() {
1318
+ var cacheKey = 'dynamicArray@' + pos;
1319
+ var cachedResult = cache[cacheKey];
1320
+ if (cachedResult) {
1321
+ pos = cachedResult.nextPos;
1322
+ return cachedResult.result;
1323
+ }
1324
+
1325
+
1326
+ var savedPos0 = pos;
1327
+ var savedPos1 = pos;
1328
+ if (input.substr(pos, 1) === "{") {
1329
+ var result3 = "{";
1330
+ pos += 1;
1331
+ } else {
1332
+ var result3 = null;
1333
+ if (reportMatchFailures) {
1334
+ matchFailed("\"{\"");
1335
+ }
1336
+ }
1337
+ if (result3 !== null) {
1338
+ var result4 = parse_ws();
1339
+ if (result4 !== null) {
1340
+ var result8 = parse_expressions();
1341
+ var result5 = result8 !== null ? result8 : '';
1342
+ if (result5 !== null) {
1343
+ var result6 = parse_ws();
1344
+ if (result6 !== null) {
1345
+ if (input.substr(pos, 1) === "}") {
1346
+ var result7 = "}";
1347
+ pos += 1;
1348
+ } else {
1349
+ var result7 = null;
1350
+ if (reportMatchFailures) {
1351
+ matchFailed("\"}\"");
1352
+ }
1353
+ }
1354
+ if (result7 !== null) {
1355
+ var result1 = [result3, result4, result5, result6, result7];
1356
+ } else {
1357
+ var result1 = null;
1358
+ pos = savedPos1;
1359
+ }
1360
+ } else {
1361
+ var result1 = null;
1362
+ pos = savedPos1;
1363
+ }
1364
+ } else {
1365
+ var result1 = null;
1366
+ pos = savedPos1;
1367
+ }
1368
+ } else {
1369
+ var result1 = null;
1370
+ pos = savedPos1;
1371
+ }
1372
+ } else {
1373
+ var result1 = null;
1374
+ pos = savedPos1;
1375
+ }
1376
+ var result2 = result1 !== null
1377
+ ? (function(expressions) {
1378
+ return smalltalk.DynamicArrayNode._new()
1379
+ ._nodes_(expressions)
1380
+ })(result1[2])
1381
+ : null;
1382
+ if (result2 !== null) {
1383
+ var result0 = result2;
1384
+ } else {
1385
+ var result0 = null;
1386
+ pos = savedPos0;
1387
+ }
1388
+
1389
+
1390
+
1391
+ cache[cacheKey] = {
1392
+ nextPos: pos,
1393
+ result: result0
1394
+ };
1395
+ return result0;
1396
+ }
1397
+
1398
+ function parse_dynamicDictionary() {
1399
+ var cacheKey = 'dynamicDictionary@' + pos;
1400
+ var cachedResult = cache[cacheKey];
1401
+ if (cachedResult) {
1402
+ pos = cachedResult.nextPos;
1403
+ return cachedResult.result;
1404
+ }
1405
+
1406
+
1407
+ var savedPos0 = pos;
1408
+ var savedPos1 = pos;
1409
+ if (input.substr(pos, 2) === "#{") {
1410
+ var result3 = "#{";
1411
+ pos += 2;
1412
+ } else {
1413
+ var result3 = null;
1414
+ if (reportMatchFailures) {
1415
+ matchFailed("\"#{\"");
1416
+ }
1417
+ }
1418
+ if (result3 !== null) {
1419
+ var result4 = parse_ws();
1420
+ if (result4 !== null) {
1421
+ var result8 = parse_expressions();
1422
+ var result5 = result8 !== null ? result8 : '';
1423
+ if (result5 !== null) {
1424
+ var result6 = parse_ws();
1425
+ if (result6 !== null) {
1426
+ if (input.substr(pos, 1) === "}") {
1427
+ var result7 = "}";
1428
+ pos += 1;
1429
+ } else {
1430
+ var result7 = null;
1431
+ if (reportMatchFailures) {
1432
+ matchFailed("\"}\"");
1433
+ }
1434
+ }
1435
+ if (result7 !== null) {
1436
+ var result1 = [result3, result4, result5, result6, result7];
1437
+ } else {
1438
+ var result1 = null;
1439
+ pos = savedPos1;
1440
+ }
1441
+ } else {
1442
+ var result1 = null;
1443
+ pos = savedPos1;
1444
+ }
1445
+ } else {
1446
+ var result1 = null;
1447
+ pos = savedPos1;
1448
+ }
1449
+ } else {
1450
+ var result1 = null;
1451
+ pos = savedPos1;
1452
+ }
1453
+ } else {
1454
+ var result1 = null;
1455
+ pos = savedPos1;
1456
+ }
1457
+ var result2 = result1 !== null
1458
+ ? (function(expressions) {
1459
+ return smalltalk.DynamicDictionaryNode._new()
1460
+ ._nodes_(expressions)
1461
+ })(result1[2])
1462
+ : null;
1463
+ if (result2 !== null) {
1464
+ var result0 = result2;
1465
+ } else {
1466
+ var result0 = null;
1467
+ pos = savedPos0;
1468
+ }
1469
+
1470
+
1471
+
1472
+ cache[cacheKey] = {
1473
+ nextPos: pos,
1474
+ result: result0
1475
+ };
1476
+ return result0;
1477
+ }
1478
+
1479
+ function parse_pseudoVariable() {
1480
+ var cacheKey = 'pseudoVariable@' + pos;
1481
+ var cachedResult = cache[cacheKey];
1482
+ if (cachedResult) {
1483
+ pos = cachedResult.nextPos;
1484
+ return cachedResult.result;
1485
+ }
1486
+
1487
+
1488
+ var savedPos0 = pos;
1489
+ var savedPos3 = pos;
1490
+ if (input.substr(pos, 4) === "true") {
1491
+ var result10 = "true";
1492
+ pos += 4;
1493
+ } else {
1494
+ var result10 = null;
1495
+ if (reportMatchFailures) {
1496
+ matchFailed("\"true\"");
1497
+ }
1498
+ }
1499
+ var result11 = result10 !== null
1500
+ ? (function() {return true})()
1501
+ : null;
1502
+ if (result11 !== null) {
1503
+ var result9 = result11;
1504
+ } else {
1505
+ var result9 = null;
1506
+ pos = savedPos3;
1507
+ }
1508
+ if (result9 !== null) {
1509
+ var result1 = result9;
1510
+ } else {
1511
+ var savedPos2 = pos;
1512
+ if (input.substr(pos, 5) === "false") {
1513
+ var result7 = "false";
1514
+ pos += 5;
1515
+ } else {
1516
+ var result7 = null;
1517
+ if (reportMatchFailures) {
1518
+ matchFailed("\"false\"");
1519
+ }
1520
+ }
1521
+ var result8 = result7 !== null
1522
+ ? (function() {return false})()
1523
+ : null;
1524
+ if (result8 !== null) {
1525
+ var result6 = result8;
1526
+ } else {
1527
+ var result6 = null;
1528
+ pos = savedPos2;
1529
+ }
1530
+ if (result6 !== null) {
1531
+ var result1 = result6;
1532
+ } else {
1533
+ var savedPos1 = pos;
1534
+ if (input.substr(pos, 3) === "nil") {
1535
+ var result4 = "nil";
1536
+ pos += 3;
1537
+ } else {
1538
+ var result4 = null;
1539
+ if (reportMatchFailures) {
1540
+ matchFailed("\"nil\"");
1541
+ }
1542
+ }
1543
+ var result5 = result4 !== null
1544
+ ? (function() {return nil})()
1545
+ : null;
1546
+ if (result5 !== null) {
1547
+ var result3 = result5;
1548
+ } else {
1549
+ var result3 = null;
1550
+ pos = savedPos1;
1551
+ }
1552
+ if (result3 !== null) {
1553
+ var result1 = result3;
1554
+ } else {
1555
+ var result1 = null;;
1556
+ };
1557
+ };
1558
+ }
1559
+ var result2 = result1 !== null
1560
+ ? (function(val) {
1561
+ return smalltalk.ValueNode._new()._value_(val)
1562
+ })(result1)
1563
+ : null;
1564
+ if (result2 !== null) {
1565
+ var result0 = result2;
1566
+ } else {
1567
+ var result0 = null;
1568
+ pos = savedPos0;
1569
+ }
1570
+
1571
+
1572
+
1573
+ cache[cacheKey] = {
1574
+ nextPos: pos,
1575
+ result: result0
1576
+ };
1577
+ return result0;
1578
+ }
1579
+
1580
+ function parse_literal() {
1581
+ var cacheKey = 'literal@' + pos;
1582
+ var cachedResult = cache[cacheKey];
1583
+ if (cachedResult) {
1584
+ pos = cachedResult.nextPos;
1585
+ return cachedResult.result;
1586
+ }
1587
+
1588
+
1589
+ var result8 = parse_pseudoVariable();
1590
+ if (result8 !== null) {
1591
+ var result0 = result8;
1592
+ } else {
1593
+ var result7 = parse_number();
1594
+ if (result7 !== null) {
1595
+ var result0 = result7;
1596
+ } else {
1597
+ var result6 = parse_literalArray();
1598
+ if (result6 !== null) {
1599
+ var result0 = result6;
1600
+ } else {
1601
+ var result5 = parse_dynamicDictionary();
1602
+ if (result5 !== null) {
1603
+ var result0 = result5;
1604
+ } else {
1605
+ var result4 = parse_dynamicArray();
1606
+ if (result4 !== null) {
1607
+ var result0 = result4;
1608
+ } else {
1609
+ var result3 = parse_string();
1610
+ if (result3 !== null) {
1611
+ var result0 = result3;
1612
+ } else {
1613
+ var result2 = parse_symbol();
1614
+ if (result2 !== null) {
1615
+ var result0 = result2;
1616
+ } else {
1617
+ var result1 = parse_block();
1618
+ if (result1 !== null) {
1619
+ var result0 = result1;
1620
+ } else {
1621
+ var result0 = null;;
1622
+ };
1623
+ };
1624
+ };
1625
+ };
1626
+ };
1627
+ };
1628
+ };
1629
+ }
1630
+
1631
+
1632
+
1633
+ cache[cacheKey] = {
1634
+ nextPos: pos,
1635
+ result: result0
1636
+ };
1637
+ return result0;
1638
+ }
1639
+
1640
+ function parse_variable() {
1641
+ var cacheKey = 'variable@' + pos;
1642
+ var cachedResult = cache[cacheKey];
1643
+ if (cachedResult) {
1644
+ pos = cachedResult.nextPos;
1645
+ return cachedResult.result;
1646
+ }
1647
+
1648
+
1649
+ var savedPos0 = pos;
1650
+ var result1 = parse_varIdentifier();
1651
+ var result2 = result1 !== null
1652
+ ? (function(identifier) {
1653
+ return smalltalk.VariableNode._new()
1654
+ ._value_(identifier)
1655
+ })(result1)
1656
+ : null;
1657
+ if (result2 !== null) {
1658
+ var result0 = result2;
1659
+ } else {
1660
+ var result0 = null;
1661
+ pos = savedPos0;
1662
+ }
1663
+
1664
+
1665
+
1666
+ cache[cacheKey] = {
1667
+ nextPos: pos,
1668
+ result: result0
1669
+ };
1670
+ return result0;
1671
+ }
1672
+
1673
+ function parse_classReference() {
1674
+ var cacheKey = 'classReference@' + pos;
1675
+ var cachedResult = cache[cacheKey];
1676
+ if (cachedResult) {
1677
+ pos = cachedResult.nextPos;
1678
+ return cachedResult.result;
1679
+ }
1680
+
1681
+
1682
+ var savedPos0 = pos;
1683
+ var result1 = parse_className();
1684
+ var result2 = result1 !== null
1685
+ ? (function(className) {
1686
+ return smalltalk.ClassReferenceNode._new()
1687
+ ._value_(className)
1688
+ })(result1)
1689
+ : null;
1690
+ if (result2 !== null) {
1691
+ var result0 = result2;
1692
+ } else {
1693
+ var result0 = null;
1694
+ pos = savedPos0;
1695
+ }
1696
+
1697
+
1698
+
1699
+ cache[cacheKey] = {
1700
+ nextPos: pos,
1701
+ result: result0
1702
+ };
1703
+ return result0;
1704
+ }
1705
+
1706
+ function parse_reference() {
1707
+ var cacheKey = 'reference@' + pos;
1708
+ var cachedResult = cache[cacheKey];
1709
+ if (cachedResult) {
1710
+ pos = cachedResult.nextPos;
1711
+ return cachedResult.result;
1712
+ }
1713
+
1714
+
1715
+ var result2 = parse_variable();
1716
+ if (result2 !== null) {
1717
+ var result0 = result2;
1718
+ } else {
1719
+ var result1 = parse_classReference();
1720
+ if (result1 !== null) {
1721
+ var result0 = result1;
1722
+ } else {
1723
+ var result0 = null;;
1724
+ };
1725
+ }
1726
+
1727
+
1728
+
1729
+ cache[cacheKey] = {
1730
+ nextPos: pos,
1731
+ result: result0
1732
+ };
1733
+ return result0;
1734
+ }
1735
+
1736
+ function parse_keywordPair() {
1737
+ var cacheKey = 'keywordPair@' + pos;
1738
+ var cachedResult = cache[cacheKey];
1739
+ if (cachedResult) {
1740
+ pos = cachedResult.nextPos;
1741
+ return cachedResult.result;
1742
+ }
1743
+
1744
+
1745
+ var savedPos0 = pos;
1746
+ var savedPos1 = pos;
1747
+ var result3 = parse_keyword();
1748
+ if (result3 !== null) {
1749
+ var result4 = parse_ws();
1750
+ if (result4 !== null) {
1751
+ var result5 = parse_binarySend();
1752
+ if (result5 !== null) {
1753
+ var result6 = parse_ws();
1754
+ if (result6 !== null) {
1755
+ var result1 = [result3, result4, result5, result6];
1756
+ } else {
1757
+ var result1 = null;
1758
+ pos = savedPos1;
1759
+ }
1760
+ } else {
1761
+ var result1 = null;
1762
+ pos = savedPos1;
1763
+ }
1764
+ } else {
1765
+ var result1 = null;
1766
+ pos = savedPos1;
1767
+ }
1768
+ } else {
1769
+ var result1 = null;
1770
+ pos = savedPos1;
1771
+ }
1772
+ var result2 = result1 !== null
1773
+ ? (function(key, arg) {return {key:key, arg: arg}})(result1[0], result1[2])
1774
+ : null;
1775
+ if (result2 !== null) {
1776
+ var result0 = result2;
1777
+ } else {
1778
+ var result0 = null;
1779
+ pos = savedPos0;
1780
+ }
1781
+
1782
+
1783
+
1784
+ cache[cacheKey] = {
1785
+ nextPos: pos,
1786
+ result: result0
1787
+ };
1788
+ return result0;
1789
+ }
1790
+
1791
+ function parse_binarySelector() {
1792
+ var cacheKey = 'binarySelector@' + pos;
1793
+ var cachedResult = cache[cacheKey];
1794
+ if (cachedResult) {
1795
+ pos = cachedResult.nextPos;
1796
+ return cachedResult.result;
1797
+ }
1798
+
1799
+
1800
+ var savedPos0 = pos;
1801
+ if (input.substr(pos).match(/^[\\+*\/=><,@%~|&\-]/) !== null) {
1802
+ var result3 = input.charAt(pos);
1803
+ pos++;
1804
+ } else {
1805
+ var result3 = null;
1806
+ if (reportMatchFailures) {
1807
+ matchFailed("[\\\\+*\\/=><,@%~|&\\-]");
1808
+ }
1809
+ }
1810
+ if (result3 !== null) {
1811
+ var result1 = [];
1812
+ while (result3 !== null) {
1813
+ result1.push(result3);
1814
+ if (input.substr(pos).match(/^[\\+*\/=><,@%~|&\-]/) !== null) {
1815
+ var result3 = input.charAt(pos);
1816
+ pos++;
1817
+ } else {
1818
+ var result3 = null;
1819
+ if (reportMatchFailures) {
1820
+ matchFailed("[\\\\+*\\/=><,@%~|&\\-]");
1821
+ }
1822
+ }
1823
+ }
1824
+ } else {
1825
+ var result1 = null;
1826
+ }
1827
+ var result2 = result1 !== null
1828
+ ? (function(bin) {return bin.join("").replace(/\\/g, '\\\\')})(result1)
1829
+ : null;
1830
+ if (result2 !== null) {
1831
+ var result0 = result2;
1832
+ } else {
1833
+ var result0 = null;
1834
+ pos = savedPos0;
1835
+ }
1836
+
1837
+
1838
+
1839
+ cache[cacheKey] = {
1840
+ nextPos: pos,
1841
+ result: result0
1842
+ };
1843
+ return result0;
1844
+ }
1845
+
1846
+ function parse_keywordPattern() {
1847
+ var cacheKey = 'keywordPattern@' + pos;
1848
+ var cachedResult = cache[cacheKey];
1849
+ if (cachedResult) {
1850
+ pos = cachedResult.nextPos;
1851
+ return cachedResult.result;
1852
+ }
1853
+
1854
+
1855
+ var savedPos0 = pos;
1856
+ var savedPos1 = pos;
1857
+ var savedPos2 = pos;
1858
+ var result6 = parse_ws();
1859
+ if (result6 !== null) {
1860
+ var result7 = parse_keyword();
1861
+ if (result7 !== null) {
1862
+ var result8 = parse_ws();
1863
+ if (result8 !== null) {
1864
+ var result9 = parse_identifier();
1865
+ if (result9 !== null) {
1866
+ var result4 = [result6, result7, result8, result9];
1867
+ } else {
1868
+ var result4 = null;
1869
+ pos = savedPos2;
1870
+ }
1871
+ } else {
1872
+ var result4 = null;
1873
+ pos = savedPos2;
1874
+ }
1875
+ } else {
1876
+ var result4 = null;
1877
+ pos = savedPos2;
1878
+ }
1879
+ } else {
1880
+ var result4 = null;
1881
+ pos = savedPos2;
1882
+ }
1883
+ var result5 = result4 !== null
1884
+ ? (function(key, arg) {return {key:key, arg: arg}})(result4[1], result4[3])
1885
+ : null;
1886
+ if (result5 !== null) {
1887
+ var result3 = result5;
1888
+ } else {
1889
+ var result3 = null;
1890
+ pos = savedPos1;
1891
+ }
1892
+ if (result3 !== null) {
1893
+ var result1 = [];
1894
+ while (result3 !== null) {
1895
+ result1.push(result3);
1896
+ var savedPos1 = pos;
1897
+ var savedPos2 = pos;
1898
+ var result6 = parse_ws();
1899
+ if (result6 !== null) {
1900
+ var result7 = parse_keyword();
1901
+ if (result7 !== null) {
1902
+ var result8 = parse_ws();
1903
+ if (result8 !== null) {
1904
+ var result9 = parse_identifier();
1905
+ if (result9 !== null) {
1906
+ var result4 = [result6, result7, result8, result9];
1907
+ } else {
1908
+ var result4 = null;
1909
+ pos = savedPos2;
1910
+ }
1911
+ } else {
1912
+ var result4 = null;
1913
+ pos = savedPos2;
1914
+ }
1915
+ } else {
1916
+ var result4 = null;
1917
+ pos = savedPos2;
1918
+ }
1919
+ } else {
1920
+ var result4 = null;
1921
+ pos = savedPos2;
1922
+ }
1923
+ var result5 = result4 !== null
1924
+ ? (function(key, arg) {return {key:key, arg: arg}})(result4[1], result4[3])
1925
+ : null;
1926
+ if (result5 !== null) {
1927
+ var result3 = result5;
1928
+ } else {
1929
+ var result3 = null;
1930
+ pos = savedPos1;
1931
+ }
1932
+ }
1933
+ } else {
1934
+ var result1 = null;
1935
+ }
1936
+ var result2 = result1 !== null
1937
+ ? (function(pairs) {
1938
+ var keywords = [];
1939
+ var params = [];
1940
+ for(var i=0;i<pairs.length;i++){
1941
+ keywords.push(pairs[i].key);
1942
+ }
1943
+ for(var i=0;i<pairs.length;i++){
1944
+ params.push(pairs[i].arg);
1945
+ }
1946
+ return [keywords.join(""), params]
1947
+ })(result1)
1948
+ : null;
1949
+ if (result2 !== null) {
1950
+ var result0 = result2;
1951
+ } else {
1952
+ var result0 = null;
1953
+ pos = savedPos0;
1954
+ }
1955
+
1956
+
1957
+
1958
+ cache[cacheKey] = {
1959
+ nextPos: pos,
1960
+ result: result0
1961
+ };
1962
+ return result0;
1963
+ }
1964
+
1965
+ function parse_binaryPattern() {
1966
+ var cacheKey = 'binaryPattern@' + pos;
1967
+ var cachedResult = cache[cacheKey];
1968
+ if (cachedResult) {
1969
+ pos = cachedResult.nextPos;
1970
+ return cachedResult.result;
1971
+ }
1972
+
1973
+
1974
+ var savedPos0 = pos;
1975
+ var savedPos1 = pos;
1976
+ var result3 = parse_ws();
1977
+ if (result3 !== null) {
1978
+ var result4 = parse_binarySelector();
1979
+ if (result4 !== null) {
1980
+ var result5 = parse_ws();
1981
+ if (result5 !== null) {
1982
+ var result6 = parse_identifier();
1983
+ if (result6 !== null) {
1984
+ var result1 = [result3, result4, result5, result6];
1985
+ } else {
1986
+ var result1 = null;
1987
+ pos = savedPos1;
1988
+ }
1989
+ } else {
1990
+ var result1 = null;
1991
+ pos = savedPos1;
1992
+ }
1993
+ } else {
1994
+ var result1 = null;
1995
+ pos = savedPos1;
1996
+ }
1997
+ } else {
1998
+ var result1 = null;
1999
+ pos = savedPos1;
2000
+ }
2001
+ var result2 = result1 !== null
2002
+ ? (function(selector, arg) {return [selector, [arg]]})(result1[1], result1[3])
2003
+ : null;
2004
+ if (result2 !== null) {
2005
+ var result0 = result2;
2006
+ } else {
2007
+ var result0 = null;
2008
+ pos = savedPos0;
2009
+ }
2010
+
2011
+
2012
+
2013
+ cache[cacheKey] = {
2014
+ nextPos: pos,
2015
+ result: result0
2016
+ };
2017
+ return result0;
2018
+ }
2019
+
2020
+ function parse_unaryPattern() {
2021
+ var cacheKey = 'unaryPattern@' + pos;
2022
+ var cachedResult = cache[cacheKey];
2023
+ if (cachedResult) {
2024
+ pos = cachedResult.nextPos;
2025
+ return cachedResult.result;
2026
+ }
2027
+
2028
+
2029
+ var savedPos0 = pos;
2030
+ var savedPos1 = pos;
2031
+ var result3 = parse_ws();
2032
+ if (result3 !== null) {
2033
+ var result4 = parse_identifier();
2034
+ if (result4 !== null) {
2035
+ var result1 = [result3, result4];
2036
+ } else {
2037
+ var result1 = null;
2038
+ pos = savedPos1;
2039
+ }
2040
+ } else {
2041
+ var result1 = null;
2042
+ pos = savedPos1;
2043
+ }
2044
+ var result2 = result1 !== null
2045
+ ? (function(selector) {return [selector, []]})(result1[1])
2046
+ : null;
2047
+ if (result2 !== null) {
2048
+ var result0 = result2;
2049
+ } else {
2050
+ var result0 = null;
2051
+ pos = savedPos0;
2052
+ }
2053
+
2054
+
2055
+
2056
+ cache[cacheKey] = {
2057
+ nextPos: pos,
2058
+ result: result0
2059
+ };
2060
+ return result0;
2061
+ }
2062
+
2063
+ function parse_expression() {
2064
+ var cacheKey = 'expression@' + pos;
2065
+ var cachedResult = cache[cacheKey];
2066
+ if (cachedResult) {
2067
+ pos = cachedResult.nextPos;
2068
+ return cachedResult.result;
2069
+ }
2070
+
2071
+
2072
+ var result5 = parse_assignment();
2073
+ if (result5 !== null) {
2074
+ var result0 = result5;
2075
+ } else {
2076
+ var result4 = parse_cascade();
2077
+ if (result4 !== null) {
2078
+ var result0 = result4;
2079
+ } else {
2080
+ var result3 = parse_keywordSend();
2081
+ if (result3 !== null) {
2082
+ var result0 = result3;
2083
+ } else {
2084
+ var result2 = parse_binarySend();
2085
+ if (result2 !== null) {
2086
+ var result0 = result2;
2087
+ } else {
2088
+ var result1 = parse_jsStatement();
2089
+ if (result1 !== null) {
2090
+ var result0 = result1;
2091
+ } else {
2092
+ var result0 = null;;
2093
+ };
2094
+ };
2095
+ };
2096
+ };
2097
+ }
2098
+
2099
+
2100
+
2101
+ cache[cacheKey] = {
2102
+ nextPos: pos,
2103
+ result: result0
2104
+ };
2105
+ return result0;
2106
+ }
2107
+
2108
+ function parse_expressionList() {
2109
+ var cacheKey = 'expressionList@' + pos;
2110
+ var cachedResult = cache[cacheKey];
2111
+ if (cachedResult) {
2112
+ pos = cachedResult.nextPos;
2113
+ return cachedResult.result;
2114
+ }
2115
+
2116
+
2117
+ var savedPos0 = pos;
2118
+ var savedPos1 = pos;
2119
+ var result3 = parse_ws();
2120
+ if (result3 !== null) {
2121
+ if (input.substr(pos, 1) === ".") {
2122
+ var result4 = ".";
2123
+ pos += 1;
2124
+ } else {
2125
+ var result4 = null;
2126
+ if (reportMatchFailures) {
2127
+ matchFailed("\".\"");
2128
+ }
2129
+ }
2130
+ if (result4 !== null) {
2131
+ var result5 = parse_ws();
2132
+ if (result5 !== null) {
2133
+ var result6 = parse_expression();
2134
+ if (result6 !== null) {
2135
+ var result1 = [result3, result4, result5, result6];
2136
+ } else {
2137
+ var result1 = null;
2138
+ pos = savedPos1;
2139
+ }
2140
+ } else {
2141
+ var result1 = null;
2142
+ pos = savedPos1;
2143
+ }
2144
+ } else {
2145
+ var result1 = null;
2146
+ pos = savedPos1;
2147
+ }
2148
+ } else {
2149
+ var result1 = null;
2150
+ pos = savedPos1;
2151
+ }
2152
+ var result2 = result1 !== null
2153
+ ? (function(expression) {return expression})(result1[3])
2154
+ : null;
2155
+ if (result2 !== null) {
2156
+ var result0 = result2;
2157
+ } else {
2158
+ var result0 = null;
2159
+ pos = savedPos0;
2160
+ }
2161
+
2162
+
2163
+
2164
+ cache[cacheKey] = {
2165
+ nextPos: pos,
2166
+ result: result0
2167
+ };
2168
+ return result0;
2169
+ }
2170
+
2171
+ function parse_expressions() {
2172
+ var cacheKey = 'expressions@' + pos;
2173
+ var cachedResult = cache[cacheKey];
2174
+ if (cachedResult) {
2175
+ pos = cachedResult.nextPos;
2176
+ return cachedResult.result;
2177
+ }
2178
+
2179
+
2180
+ var savedPos0 = pos;
2181
+ var savedPos1 = pos;
2182
+ var result3 = parse_expression();
2183
+ if (result3 !== null) {
2184
+ var result4 = [];
2185
+ var result5 = parse_expressionList();
2186
+ while (result5 !== null) {
2187
+ result4.push(result5);
2188
+ var result5 = parse_expressionList();
2189
+ }
2190
+ if (result4 !== null) {
2191
+ var result1 = [result3, result4];
2192
+ } else {
2193
+ var result1 = null;
2194
+ pos = savedPos1;
2195
+ }
2196
+ } else {
2197
+ var result1 = null;
2198
+ pos = savedPos1;
2199
+ }
2200
+ var result2 = result1 !== null
2201
+ ? (function(first, others) {
2202
+ var result = [first];
2203
+ for(var i=0;i<others.length;i++) {
2204
+ result.push(others[i]);
2205
+ }
2206
+ return result;
2207
+ })(result1[0], result1[1])
2208
+ : null;
2209
+ if (result2 !== null) {
2210
+ var result0 = result2;
2211
+ } else {
2212
+ var result0 = null;
2213
+ pos = savedPos0;
2214
+ }
2215
+
2216
+
2217
+
2218
+ cache[cacheKey] = {
2219
+ nextPos: pos,
2220
+ result: result0
2221
+ };
2222
+ return result0;
2223
+ }
2224
+
2225
+ function parse_assignment() {
2226
+ var cacheKey = 'assignment@' + pos;
2227
+ var cachedResult = cache[cacheKey];
2228
+ if (cachedResult) {
2229
+ pos = cachedResult.nextPos;
2230
+ return cachedResult.result;
2231
+ }
2232
+
2233
+
2234
+ var savedPos0 = pos;
2235
+ var savedPos1 = pos;
2236
+ var result3 = parse_variable();
2237
+ if (result3 !== null) {
2238
+ var result4 = parse_ws();
2239
+ if (result4 !== null) {
2240
+ if (input.substr(pos, 2) === ":=") {
2241
+ var result5 = ":=";
2242
+ pos += 2;
2243
+ } else {
2244
+ var result5 = null;
2245
+ if (reportMatchFailures) {
2246
+ matchFailed("\":=\"");
2247
+ }
2248
+ }
2249
+ if (result5 !== null) {
2250
+ var result6 = parse_ws();
2251
+ if (result6 !== null) {
2252
+ var result7 = parse_expression();
2253
+ if (result7 !== null) {
2254
+ var result1 = [result3, result4, result5, result6, result7];
2255
+ } else {
2256
+ var result1 = null;
2257
+ pos = savedPos1;
2258
+ }
2259
+ } else {
2260
+ var result1 = null;
2261
+ pos = savedPos1;
2262
+ }
2263
+ } else {
2264
+ var result1 = null;
2265
+ pos = savedPos1;
2266
+ }
2267
+ } else {
2268
+ var result1 = null;
2269
+ pos = savedPos1;
2270
+ }
2271
+ } else {
2272
+ var result1 = null;
2273
+ pos = savedPos1;
2274
+ }
2275
+ var result2 = result1 !== null
2276
+ ? (function(variable, expression) {
2277
+ return smalltalk.AssignmentNode._new()
2278
+ ._left_(variable)
2279
+ ._right_(expression)
2280
+ })(result1[0], result1[4])
2281
+ : null;
2282
+ if (result2 !== null) {
2283
+ var result0 = result2;
2284
+ } else {
2285
+ var result0 = null;
2286
+ pos = savedPos0;
2287
+ }
2288
+
2289
+
2290
+
2291
+ cache[cacheKey] = {
2292
+ nextPos: pos,
2293
+ result: result0
2294
+ };
2295
+ return result0;
2296
+ }
2297
+
2298
+ function parse_ret() {
2299
+ var cacheKey = 'ret@' + pos;
2300
+ var cachedResult = cache[cacheKey];
2301
+ if (cachedResult) {
2302
+ pos = cachedResult.nextPos;
2303
+ return cachedResult.result;
2304
+ }
2305
+
2306
+
2307
+ var savedPos0 = pos;
2308
+ var savedPos1 = pos;
2309
+ if (input.substr(pos, 1) === "^") {
2310
+ var result3 = "^";
2311
+ pos += 1;
2312
+ } else {
2313
+ var result3 = null;
2314
+ if (reportMatchFailures) {
2315
+ matchFailed("\"^\"");
2316
+ }
2317
+ }
2318
+ if (result3 !== null) {
2319
+ var result4 = parse_ws();
2320
+ if (result4 !== null) {
2321
+ var result5 = parse_expression();
2322
+ if (result5 !== null) {
2323
+ var result6 = parse_ws();
2324
+ if (result6 !== null) {
2325
+ if (input.substr(pos, 1) === ".") {
2326
+ var result8 = ".";
2327
+ pos += 1;
2328
+ } else {
2329
+ var result8 = null;
2330
+ if (reportMatchFailures) {
2331
+ matchFailed("\".\"");
2332
+ }
2333
+ }
2334
+ var result7 = result8 !== null ? result8 : '';
2335
+ if (result7 !== null) {
2336
+ var result1 = [result3, result4, result5, result6, result7];
2337
+ } else {
2338
+ var result1 = null;
2339
+ pos = savedPos1;
2340
+ }
2341
+ } else {
2342
+ var result1 = null;
2343
+ pos = savedPos1;
2344
+ }
2345
+ } else {
2346
+ var result1 = null;
2347
+ pos = savedPos1;
2348
+ }
2349
+ } else {
2350
+ var result1 = null;
2351
+ pos = savedPos1;
2352
+ }
2353
+ } else {
2354
+ var result1 = null;
2355
+ pos = savedPos1;
2356
+ }
2357
+ var result2 = result1 !== null
2358
+ ? (function(expression) {
2359
+ return smalltalk.ReturnNode._new()
2360
+ ._nodes_([expression])
2361
+ })(result1[2])
2362
+ : null;
2363
+ if (result2 !== null) {
2364
+ var result0 = result2;
2365
+ } else {
2366
+ var result0 = null;
2367
+ pos = savedPos0;
2368
+ }
2369
+
2370
+
2371
+
2372
+ cache[cacheKey] = {
2373
+ nextPos: pos,
2374
+ result: result0
2375
+ };
2376
+ return result0;
2377
+ }
2378
+
2379
+ function parse_temps() {
2380
+ var cacheKey = 'temps@' + pos;
2381
+ var cachedResult = cache[cacheKey];
2382
+ if (cachedResult) {
2383
+ pos = cachedResult.nextPos;
2384
+ return cachedResult.result;
2385
+ }
2386
+
2387
+
2388
+ var savedPos0 = pos;
2389
+ var savedPos1 = pos;
2390
+ if (input.substr(pos, 1) === "|") {
2391
+ var result3 = "|";
2392
+ pos += 1;
2393
+ } else {
2394
+ var result3 = null;
2395
+ if (reportMatchFailures) {
2396
+ matchFailed("\"|\"");
2397
+ }
2398
+ }
2399
+ if (result3 !== null) {
2400
+ var result4 = [];
2401
+ var savedPos2 = pos;
2402
+ var savedPos3 = pos;
2403
+ var result9 = parse_ws();
2404
+ if (result9 !== null) {
2405
+ var result10 = parse_identifier();
2406
+ if (result10 !== null) {
2407
+ var result11 = parse_ws();
2408
+ if (result11 !== null) {
2409
+ var result7 = [result9, result10, result11];
2410
+ } else {
2411
+ var result7 = null;
2412
+ pos = savedPos3;
2413
+ }
2414
+ } else {
2415
+ var result7 = null;
2416
+ pos = savedPos3;
2417
+ }
2418
+ } else {
2419
+ var result7 = null;
2420
+ pos = savedPos3;
2421
+ }
2422
+ var result8 = result7 !== null
2423
+ ? (function(variable) {return variable})(result7[1])
2424
+ : null;
2425
+ if (result8 !== null) {
2426
+ var result6 = result8;
2427
+ } else {
2428
+ var result6 = null;
2429
+ pos = savedPos2;
2430
+ }
2431
+ while (result6 !== null) {
2432
+ result4.push(result6);
2433
+ var savedPos2 = pos;
2434
+ var savedPos3 = pos;
2435
+ var result9 = parse_ws();
2436
+ if (result9 !== null) {
2437
+ var result10 = parse_identifier();
2438
+ if (result10 !== null) {
2439
+ var result11 = parse_ws();
2440
+ if (result11 !== null) {
2441
+ var result7 = [result9, result10, result11];
2442
+ } else {
2443
+ var result7 = null;
2444
+ pos = savedPos3;
2445
+ }
2446
+ } else {
2447
+ var result7 = null;
2448
+ pos = savedPos3;
2449
+ }
2450
+ } else {
2451
+ var result7 = null;
2452
+ pos = savedPos3;
2453
+ }
2454
+ var result8 = result7 !== null
2455
+ ? (function(variable) {return variable})(result7[1])
2456
+ : null;
2457
+ if (result8 !== null) {
2458
+ var result6 = result8;
2459
+ } else {
2460
+ var result6 = null;
2461
+ pos = savedPos2;
2462
+ }
2463
+ }
2464
+ if (result4 !== null) {
2465
+ if (input.substr(pos, 1) === "|") {
2466
+ var result5 = "|";
2467
+ pos += 1;
2468
+ } else {
2469
+ var result5 = null;
2470
+ if (reportMatchFailures) {
2471
+ matchFailed("\"|\"");
2472
+ }
2473
+ }
2474
+ if (result5 !== null) {
2475
+ var result1 = [result3, result4, result5];
2476
+ } else {
2477
+ var result1 = null;
2478
+ pos = savedPos1;
2479
+ }
2480
+ } else {
2481
+ var result1 = null;
2482
+ pos = savedPos1;
2483
+ }
2484
+ } else {
2485
+ var result1 = null;
2486
+ pos = savedPos1;
2487
+ }
2488
+ var result2 = result1 !== null
2489
+ ? (function(vars) {return vars})(result1[1])
2490
+ : null;
2491
+ if (result2 !== null) {
2492
+ var result0 = result2;
2493
+ } else {
2494
+ var result0 = null;
2495
+ pos = savedPos0;
2496
+ }
2497
+
2498
+
2499
+
2500
+ cache[cacheKey] = {
2501
+ nextPos: pos,
2502
+ result: result0
2503
+ };
2504
+ return result0;
2505
+ }
2506
+
2507
+ function parse_blockParamList() {
2508
+ var cacheKey = 'blockParamList@' + pos;
2509
+ var cachedResult = cache[cacheKey];
2510
+ if (cachedResult) {
2511
+ pos = cachedResult.nextPos;
2512
+ return cachedResult.result;
2513
+ }
2514
+
2515
+
2516
+ var savedPos0 = pos;
2517
+ var savedPos1 = pos;
2518
+ var savedPos2 = pos;
2519
+ var savedPos3 = pos;
2520
+ var result9 = parse_ws();
2521
+ if (result9 !== null) {
2522
+ if (input.substr(pos, 1) === ":") {
2523
+ var result10 = ":";
2524
+ pos += 1;
2525
+ } else {
2526
+ var result10 = null;
2527
+ if (reportMatchFailures) {
2528
+ matchFailed("\":\"");
2529
+ }
2530
+ }
2531
+ if (result10 !== null) {
2532
+ var result11 = parse_ws();
2533
+ if (result11 !== null) {
2534
+ var result12 = parse_identifier();
2535
+ if (result12 !== null) {
2536
+ var result7 = [result9, result10, result11, result12];
2537
+ } else {
2538
+ var result7 = null;
2539
+ pos = savedPos3;
2540
+ }
2541
+ } else {
2542
+ var result7 = null;
2543
+ pos = savedPos3;
2544
+ }
2545
+ } else {
2546
+ var result7 = null;
2547
+ pos = savedPos3;
2548
+ }
2549
+ } else {
2550
+ var result7 = null;
2551
+ pos = savedPos3;
2552
+ }
2553
+ var result8 = result7 !== null
2554
+ ? (function(param) {return param})(result7[3])
2555
+ : null;
2556
+ if (result8 !== null) {
2557
+ var result6 = result8;
2558
+ } else {
2559
+ var result6 = null;
2560
+ pos = savedPos2;
2561
+ }
2562
+ if (result6 !== null) {
2563
+ var result3 = [];
2564
+ while (result6 !== null) {
2565
+ result3.push(result6);
2566
+ var savedPos2 = pos;
2567
+ var savedPos3 = pos;
2568
+ var result9 = parse_ws();
2569
+ if (result9 !== null) {
2570
+ if (input.substr(pos, 1) === ":") {
2571
+ var result10 = ":";
2572
+ pos += 1;
2573
+ } else {
2574
+ var result10 = null;
2575
+ if (reportMatchFailures) {
2576
+ matchFailed("\":\"");
2577
+ }
2578
+ }
2579
+ if (result10 !== null) {
2580
+ var result11 = parse_ws();
2581
+ if (result11 !== null) {
2582
+ var result12 = parse_identifier();
2583
+ if (result12 !== null) {
2584
+ var result7 = [result9, result10, result11, result12];
2585
+ } else {
2586
+ var result7 = null;
2587
+ pos = savedPos3;
2588
+ }
2589
+ } else {
2590
+ var result7 = null;
2591
+ pos = savedPos3;
2592
+ }
2593
+ } else {
2594
+ var result7 = null;
2595
+ pos = savedPos3;
2596
+ }
2597
+ } else {
2598
+ var result7 = null;
2599
+ pos = savedPos3;
2600
+ }
2601
+ var result8 = result7 !== null
2602
+ ? (function(param) {return param})(result7[3])
2603
+ : null;
2604
+ if (result8 !== null) {
2605
+ var result6 = result8;
2606
+ } else {
2607
+ var result6 = null;
2608
+ pos = savedPos2;
2609
+ }
2610
+ }
2611
+ } else {
2612
+ var result3 = null;
2613
+ }
2614
+ if (result3 !== null) {
2615
+ var result4 = parse_ws();
2616
+ if (result4 !== null) {
2617
+ if (input.substr(pos, 1) === "|") {
2618
+ var result5 = "|";
2619
+ pos += 1;
2620
+ } else {
2621
+ var result5 = null;
2622
+ if (reportMatchFailures) {
2623
+ matchFailed("\"|\"");
2624
+ }
2625
+ }
2626
+ if (result5 !== null) {
2627
+ var result1 = [result3, result4, result5];
2628
+ } else {
2629
+ var result1 = null;
2630
+ pos = savedPos1;
2631
+ }
2632
+ } else {
2633
+ var result1 = null;
2634
+ pos = savedPos1;
2635
+ }
2636
+ } else {
2637
+ var result1 = null;
2638
+ pos = savedPos1;
2639
+ }
2640
+ var result2 = result1 !== null
2641
+ ? (function(params) {return params})(result1[0])
2642
+ : null;
2643
+ if (result2 !== null) {
2644
+ var result0 = result2;
2645
+ } else {
2646
+ var result0 = null;
2647
+ pos = savedPos0;
2648
+ }
2649
+
2650
+
2651
+
2652
+ cache[cacheKey] = {
2653
+ nextPos: pos,
2654
+ result: result0
2655
+ };
2656
+ return result0;
2657
+ }
2658
+
2659
+ function parse_subexpression() {
2660
+ var cacheKey = 'subexpression@' + pos;
2661
+ var cachedResult = cache[cacheKey];
2662
+ if (cachedResult) {
2663
+ pos = cachedResult.nextPos;
2664
+ return cachedResult.result;
2665
+ }
2666
+
2667
+
2668
+ var savedPos0 = pos;
2669
+ var savedPos1 = pos;
2670
+ if (input.substr(pos, 1) === "(") {
2671
+ var result3 = "(";
2672
+ pos += 1;
2673
+ } else {
2674
+ var result3 = null;
2675
+ if (reportMatchFailures) {
2676
+ matchFailed("\"(\"");
2677
+ }
2678
+ }
2679
+ if (result3 !== null) {
2680
+ var result4 = parse_ws();
2681
+ if (result4 !== null) {
2682
+ var result5 = parse_expression();
2683
+ if (result5 !== null) {
2684
+ var result6 = parse_ws();
2685
+ if (result6 !== null) {
2686
+ if (input.substr(pos, 1) === ")") {
2687
+ var result7 = ")";
2688
+ pos += 1;
2689
+ } else {
2690
+ var result7 = null;
2691
+ if (reportMatchFailures) {
2692
+ matchFailed("\")\"");
2693
+ }
2694
+ }
2695
+ if (result7 !== null) {
2696
+ var result1 = [result3, result4, result5, result6, result7];
2697
+ } else {
2698
+ var result1 = null;
2699
+ pos = savedPos1;
2700
+ }
2701
+ } else {
2702
+ var result1 = null;
2703
+ pos = savedPos1;
2704
+ }
2705
+ } else {
2706
+ var result1 = null;
2707
+ pos = savedPos1;
2708
+ }
2709
+ } else {
2710
+ var result1 = null;
2711
+ pos = savedPos1;
2712
+ }
2713
+ } else {
2714
+ var result1 = null;
2715
+ pos = savedPos1;
2716
+ }
2717
+ var result2 = result1 !== null
2718
+ ? (function(expression) {return expression})(result1[2])
2719
+ : null;
2720
+ if (result2 !== null) {
2721
+ var result0 = result2;
2722
+ } else {
2723
+ var result0 = null;
2724
+ pos = savedPos0;
2725
+ }
2726
+
2727
+
2728
+
2729
+ cache[cacheKey] = {
2730
+ nextPos: pos,
2731
+ result: result0
2732
+ };
2733
+ return result0;
2734
+ }
2735
+
2736
+ function parse_statements() {
2737
+ var cacheKey = 'statements@' + pos;
2738
+ var cachedResult = cache[cacheKey];
2739
+ if (cachedResult) {
2740
+ pos = cachedResult.nextPos;
2741
+ return cachedResult.result;
2742
+ }
2743
+
2744
+
2745
+ var savedPos4 = pos;
2746
+ var savedPos5 = pos;
2747
+ var result22 = parse_ret();
2748
+ if (result22 !== null) {
2749
+ var result23 = [];
2750
+ if (input.substr(pos).match(/^[.]/) !== null) {
2751
+ var result24 = input.charAt(pos);
2752
+ pos++;
2753
+ } else {
2754
+ var result24 = null;
2755
+ if (reportMatchFailures) {
2756
+ matchFailed("[.]");
2757
+ }
2758
+ }
2759
+ while (result24 !== null) {
2760
+ result23.push(result24);
2761
+ if (input.substr(pos).match(/^[.]/) !== null) {
2762
+ var result24 = input.charAt(pos);
2763
+ pos++;
2764
+ } else {
2765
+ var result24 = null;
2766
+ if (reportMatchFailures) {
2767
+ matchFailed("[.]");
2768
+ }
2769
+ }
2770
+ }
2771
+ if (result23 !== null) {
2772
+ var result20 = [result22, result23];
2773
+ } else {
2774
+ var result20 = null;
2775
+ pos = savedPos5;
2776
+ }
2777
+ } else {
2778
+ var result20 = null;
2779
+ pos = savedPos5;
2780
+ }
2781
+ var result21 = result20 !== null
2782
+ ? (function(ret) {return [ret]})(result20[0])
2783
+ : null;
2784
+ if (result21 !== null) {
2785
+ var result19 = result21;
2786
+ } else {
2787
+ var result19 = null;
2788
+ pos = savedPos4;
2789
+ }
2790
+ if (result19 !== null) {
2791
+ var result0 = result19;
2792
+ } else {
2793
+ var savedPos2 = pos;
2794
+ var savedPos3 = pos;
2795
+ var result11 = parse_expressions();
2796
+ if (result11 !== null) {
2797
+ var result12 = parse_ws();
2798
+ if (result12 !== null) {
2799
+ if (input.substr(pos).match(/^[.]/) !== null) {
2800
+ var result18 = input.charAt(pos);
2801
+ pos++;
2802
+ } else {
2803
+ var result18 = null;
2804
+ if (reportMatchFailures) {
2805
+ matchFailed("[.]");
2806
+ }
2807
+ }
2808
+ if (result18 !== null) {
2809
+ var result13 = [];
2810
+ while (result18 !== null) {
2811
+ result13.push(result18);
2812
+ if (input.substr(pos).match(/^[.]/) !== null) {
2813
+ var result18 = input.charAt(pos);
2814
+ pos++;
2815
+ } else {
2816
+ var result18 = null;
2817
+ if (reportMatchFailures) {
2818
+ matchFailed("[.]");
2819
+ }
2820
+ }
2821
+ }
2822
+ } else {
2823
+ var result13 = null;
2824
+ }
2825
+ if (result13 !== null) {
2826
+ var result14 = parse_ws();
2827
+ if (result14 !== null) {
2828
+ var result15 = parse_ret();
2829
+ if (result15 !== null) {
2830
+ var result16 = [];
2831
+ if (input.substr(pos).match(/^[.]/) !== null) {
2832
+ var result17 = input.charAt(pos);
2833
+ pos++;
2834
+ } else {
2835
+ var result17 = null;
2836
+ if (reportMatchFailures) {
2837
+ matchFailed("[.]");
2838
+ }
2839
+ }
2840
+ while (result17 !== null) {
2841
+ result16.push(result17);
2842
+ if (input.substr(pos).match(/^[.]/) !== null) {
2843
+ var result17 = input.charAt(pos);
2844
+ pos++;
2845
+ } else {
2846
+ var result17 = null;
2847
+ if (reportMatchFailures) {
2848
+ matchFailed("[.]");
2849
+ }
2850
+ }
2851
+ }
2852
+ if (result16 !== null) {
2853
+ var result9 = [result11, result12, result13, result14, result15, result16];
2854
+ } else {
2855
+ var result9 = null;
2856
+ pos = savedPos3;
2857
+ }
2858
+ } else {
2859
+ var result9 = null;
2860
+ pos = savedPos3;
2861
+ }
2862
+ } else {
2863
+ var result9 = null;
2864
+ pos = savedPos3;
2865
+ }
2866
+ } else {
2867
+ var result9 = null;
2868
+ pos = savedPos3;
2869
+ }
2870
+ } else {
2871
+ var result9 = null;
2872
+ pos = savedPos3;
2873
+ }
2874
+ } else {
2875
+ var result9 = null;
2876
+ pos = savedPos3;
2877
+ }
2878
+ var result10 = result9 !== null
2879
+ ? (function(exps, ret) {
2880
+ var expressions = exps;
2881
+ expressions.push(ret);
2882
+ return expressions
2883
+ })(result9[0], result9[4])
2884
+ : null;
2885
+ if (result10 !== null) {
2886
+ var result8 = result10;
2887
+ } else {
2888
+ var result8 = null;
2889
+ pos = savedPos2;
2890
+ }
2891
+ if (result8 !== null) {
2892
+ var result0 = result8;
2893
+ } else {
2894
+ var savedPos0 = pos;
2895
+ var savedPos1 = pos;
2896
+ var result7 = parse_expressions();
2897
+ var result4 = result7 !== null ? result7 : '';
2898
+ if (result4 !== null) {
2899
+ var result5 = [];
2900
+ if (input.substr(pos).match(/^[.]/) !== null) {
2901
+ var result6 = input.charAt(pos);
2902
+ pos++;
2903
+ } else {
2904
+ var result6 = null;
2905
+ if (reportMatchFailures) {
2906
+ matchFailed("[.]");
2907
+ }
2908
+ }
2909
+ while (result6 !== null) {
2910
+ result5.push(result6);
2911
+ if (input.substr(pos).match(/^[.]/) !== null) {
2912
+ var result6 = input.charAt(pos);
2913
+ pos++;
2914
+ } else {
2915
+ var result6 = null;
2916
+ if (reportMatchFailures) {
2917
+ matchFailed("[.]");
2918
+ }
2919
+ }
2920
+ }
2921
+ if (result5 !== null) {
2922
+ var result2 = [result4, result5];
2923
+ } else {
2924
+ var result2 = null;
2925
+ pos = savedPos1;
2926
+ }
2927
+ } else {
2928
+ var result2 = null;
2929
+ pos = savedPos1;
2930
+ }
2931
+ var result3 = result2 !== null
2932
+ ? (function(expressions) {
2933
+ return expressions || []
2934
+ })(result2[0])
2935
+ : null;
2936
+ if (result3 !== null) {
2937
+ var result1 = result3;
2938
+ } else {
2939
+ var result1 = null;
2940
+ pos = savedPos0;
2941
+ }
2942
+ if (result1 !== null) {
2943
+ var result0 = result1;
2944
+ } else {
2945
+ var result0 = null;;
2946
+ };
2947
+ };
2948
+ }
2949
+
2950
+
2951
+
2952
+ cache[cacheKey] = {
2953
+ nextPos: pos,
2954
+ result: result0
2955
+ };
2956
+ return result0;
2957
+ }
2958
+
2959
+ function parse_sequence() {
2960
+ var cacheKey = 'sequence@' + pos;
2961
+ var cachedResult = cache[cacheKey];
2962
+ if (cachedResult) {
2963
+ pos = cachedResult.nextPos;
2964
+ return cachedResult.result;
2965
+ }
2966
+
2967
+
2968
+ var savedPos0 = pos;
2969
+ var savedPos1 = pos;
2970
+ var result8 = parse_temps();
2971
+ var result3 = result8 !== null ? result8 : '';
2972
+ if (result3 !== null) {
2973
+ var result4 = parse_ws();
2974
+ if (result4 !== null) {
2975
+ var result7 = parse_statements();
2976
+ var result5 = result7 !== null ? result7 : '';
2977
+ if (result5 !== null) {
2978
+ var result6 = parse_ws();
2979
+ if (result6 !== null) {
2980
+ var result1 = [result3, result4, result5, result6];
2981
+ } else {
2982
+ var result1 = null;
2983
+ pos = savedPos1;
2984
+ }
2985
+ } else {
2986
+ var result1 = null;
2987
+ pos = savedPos1;
2988
+ }
2989
+ } else {
2990
+ var result1 = null;
2991
+ pos = savedPos1;
2992
+ }
2993
+ } else {
2994
+ var result1 = null;
2995
+ pos = savedPos1;
2996
+ }
2997
+ var result2 = result1 !== null
2998
+ ? (function(temps, statements) {
2999
+ return smalltalk.SequenceNode._new()
3000
+ ._temps_(temps || [])
3001
+ ._nodes_(statements || [])
3002
+ })(result1[0], result1[2])
3003
+ : null;
3004
+ if (result2 !== null) {
3005
+ var result0 = result2;
3006
+ } else {
3007
+ var result0 = null;
3008
+ pos = savedPos0;
3009
+ }
3010
+
3011
+
3012
+
3013
+ cache[cacheKey] = {
3014
+ nextPos: pos,
3015
+ result: result0
3016
+ };
3017
+ return result0;
3018
+ }
3019
+
3020
+ function parse_block() {
3021
+ var cacheKey = 'block@' + pos;
3022
+ var cachedResult = cache[cacheKey];
3023
+ if (cachedResult) {
3024
+ pos = cachedResult.nextPos;
3025
+ return cachedResult.result;
3026
+ }
3027
+
3028
+
3029
+ var savedPos0 = pos;
3030
+ var savedPos1 = pos;
3031
+ if (input.substr(pos, 1) === "[") {
3032
+ var result3 = "[";
3033
+ pos += 1;
3034
+ } else {
3035
+ var result3 = null;
3036
+ if (reportMatchFailures) {
3037
+ matchFailed("\"[\"");
3038
+ }
3039
+ }
3040
+ if (result3 !== null) {
3041
+ var result4 = parse_ws();
3042
+ if (result4 !== null) {
3043
+ var result11 = parse_blockParamList();
3044
+ var result5 = result11 !== null ? result11 : '';
3045
+ if (result5 !== null) {
3046
+ var result6 = parse_ws();
3047
+ if (result6 !== null) {
3048
+ var result10 = parse_sequence();
3049
+ var result7 = result10 !== null ? result10 : '';
3050
+ if (result7 !== null) {
3051
+ var result8 = parse_ws();
3052
+ if (result8 !== null) {
3053
+ if (input.substr(pos, 1) === "]") {
3054
+ var result9 = "]";
3055
+ pos += 1;
3056
+ } else {
3057
+ var result9 = null;
3058
+ if (reportMatchFailures) {
3059
+ matchFailed("\"]\"");
3060
+ }
3061
+ }
3062
+ if (result9 !== null) {
3063
+ var result1 = [result3, result4, result5, result6, result7, result8, result9];
3064
+ } else {
3065
+ var result1 = null;
3066
+ pos = savedPos1;
3067
+ }
3068
+ } else {
3069
+ var result1 = null;
3070
+ pos = savedPos1;
3071
+ }
3072
+ } else {
3073
+ var result1 = null;
3074
+ pos = savedPos1;
3075
+ }
3076
+ } else {
3077
+ var result1 = null;
3078
+ pos = savedPos1;
3079
+ }
3080
+ } else {
3081
+ var result1 = null;
3082
+ pos = savedPos1;
3083
+ }
3084
+ } else {
3085
+ var result1 = null;
3086
+ pos = savedPos1;
3087
+ }
3088
+ } else {
3089
+ var result1 = null;
3090
+ pos = savedPos1;
3091
+ }
3092
+ var result2 = result1 !== null
3093
+ ? (function(params, sequence) {
3094
+ return smalltalk.BlockNode._new()
3095
+ ._parameters_(params || [])
3096
+ ._nodes_([sequence._asBlockSequenceNode()])
3097
+ })(result1[2], result1[4])
3098
+ : null;
3099
+ if (result2 !== null) {
3100
+ var result0 = result2;
3101
+ } else {
3102
+ var result0 = null;
3103
+ pos = savedPos0;
3104
+ }
3105
+
3106
+
3107
+
3108
+ cache[cacheKey] = {
3109
+ nextPos: pos,
3110
+ result: result0
3111
+ };
3112
+ return result0;
3113
+ }
3114
+
3115
+ function parse_operand() {
3116
+ var cacheKey = 'operand@' + pos;
3117
+ var cachedResult = cache[cacheKey];
3118
+ if (cachedResult) {
3119
+ pos = cachedResult.nextPos;
3120
+ return cachedResult.result;
3121
+ }
3122
+
3123
+
3124
+ var result3 = parse_literal();
3125
+ if (result3 !== null) {
3126
+ var result0 = result3;
3127
+ } else {
3128
+ var result2 = parse_reference();
3129
+ if (result2 !== null) {
3130
+ var result0 = result2;
3131
+ } else {
3132
+ var result1 = parse_subexpression();
3133
+ if (result1 !== null) {
3134
+ var result0 = result1;
3135
+ } else {
3136
+ var result0 = null;;
3137
+ };
3138
+ };
3139
+ }
3140
+
3141
+
3142
+
3143
+ cache[cacheKey] = {
3144
+ nextPos: pos,
3145
+ result: result0
3146
+ };
3147
+ return result0;
3148
+ }
3149
+
3150
+ function parse_unaryMessage() {
3151
+ var cacheKey = 'unaryMessage@' + pos;
3152
+ var cachedResult = cache[cacheKey];
3153
+ if (cachedResult) {
3154
+ pos = cachedResult.nextPos;
3155
+ return cachedResult.result;
3156
+ }
3157
+
3158
+
3159
+ var savedPos0 = pos;
3160
+ var savedPos1 = pos;
3161
+ var result3 = parse_ws();
3162
+ if (result3 !== null) {
3163
+ var result4 = parse_identifier();
3164
+ if (result4 !== null) {
3165
+ var savedPos2 = pos;
3166
+ var savedReportMatchFailuresVar0 = reportMatchFailures;
3167
+ reportMatchFailures = false;
3168
+ if (input.substr(pos).match(/^[:]/) !== null) {
3169
+ var result6 = input.charAt(pos);
3170
+ pos++;
3171
+ } else {
3172
+ var result6 = null;
3173
+ if (reportMatchFailures) {
3174
+ matchFailed("[:]");
3175
+ }
3176
+ }
3177
+ reportMatchFailures = savedReportMatchFailuresVar0;
3178
+ if (result6 === null) {
3179
+ var result5 = '';
3180
+ } else {
3181
+ var result5 = null;
3182
+ pos = savedPos2;
3183
+ }
3184
+ if (result5 !== null) {
3185
+ var result1 = [result3, result4, result5];
3186
+ } else {
3187
+ var result1 = null;
3188
+ pos = savedPos1;
3189
+ }
3190
+ } else {
3191
+ var result1 = null;
3192
+ pos = savedPos1;
3193
+ }
3194
+ } else {
3195
+ var result1 = null;
3196
+ pos = savedPos1;
3197
+ }
3198
+ var result2 = result1 !== null
3199
+ ? (function(selector) {
3200
+ return smalltalk.SendNode._new()
3201
+ ._selector_(selector)
3202
+ })(result1[1])
3203
+ : null;
3204
+ if (result2 !== null) {
3205
+ var result0 = result2;
3206
+ } else {
3207
+ var result0 = null;
3208
+ pos = savedPos0;
3209
+ }
3210
+
3211
+
3212
+
3213
+ cache[cacheKey] = {
3214
+ nextPos: pos,
3215
+ result: result0
3216
+ };
3217
+ return result0;
3218
+ }
3219
+
3220
+ function parse_unaryTail() {
3221
+ var cacheKey = 'unaryTail@' + pos;
3222
+ var cachedResult = cache[cacheKey];
3223
+ if (cachedResult) {
3224
+ pos = cachedResult.nextPos;
3225
+ return cachedResult.result;
3226
+ }
3227
+
3228
+
3229
+ var savedPos0 = pos;
3230
+ var savedPos1 = pos;
3231
+ var result3 = parse_unaryMessage();
3232
+ if (result3 !== null) {
3233
+ var result4 = parse_ws();
3234
+ if (result4 !== null) {
3235
+ var result7 = parse_unaryTail();
3236
+ var result5 = result7 !== null ? result7 : '';
3237
+ if (result5 !== null) {
3238
+ var result6 = parse_ws();
3239
+ if (result6 !== null) {
3240
+ var result1 = [result3, result4, result5, result6];
3241
+ } else {
3242
+ var result1 = null;
3243
+ pos = savedPos1;
3244
+ }
3245
+ } else {
3246
+ var result1 = null;
3247
+ pos = savedPos1;
3248
+ }
3249
+ } else {
3250
+ var result1 = null;
3251
+ pos = savedPos1;
3252
+ }
3253
+ } else {
3254
+ var result1 = null;
3255
+ pos = savedPos1;
3256
+ }
3257
+ var result2 = result1 !== null
3258
+ ? (function(message, tail) {
3259
+ if(tail) {
3260
+ return tail._valueForReceiver_(message);
3261
+ }
3262
+ else {
3263
+ return message;
3264
+ }
3265
+ })(result1[0], result1[2])
3266
+ : null;
3267
+ if (result2 !== null) {
3268
+ var result0 = result2;
3269
+ } else {
3270
+ var result0 = null;
3271
+ pos = savedPos0;
3272
+ }
3273
+
3274
+
3275
+
3276
+ cache[cacheKey] = {
3277
+ nextPos: pos,
3278
+ result: result0
3279
+ };
3280
+ return result0;
3281
+ }
3282
+
3283
+ function parse_unarySend() {
3284
+ var cacheKey = 'unarySend@' + pos;
3285
+ var cachedResult = cache[cacheKey];
3286
+ if (cachedResult) {
3287
+ pos = cachedResult.nextPos;
3288
+ return cachedResult.result;
3289
+ }
3290
+
3291
+
3292
+ var savedPos0 = pos;
3293
+ var savedPos1 = pos;
3294
+ var result3 = parse_operand();
3295
+ if (result3 !== null) {
3296
+ var result4 = parse_ws();
3297
+ if (result4 !== null) {
3298
+ var result6 = parse_unaryTail();
3299
+ var result5 = result6 !== null ? result6 : '';
3300
+ if (result5 !== null) {
3301
+ var result1 = [result3, result4, result5];
3302
+ } else {
3303
+ var result1 = null;
3304
+ pos = savedPos1;
3305
+ }
3306
+ } else {
3307
+ var result1 = null;
3308
+ pos = savedPos1;
3309
+ }
3310
+ } else {
3311
+ var result1 = null;
3312
+ pos = savedPos1;
3313
+ }
3314
+ var result2 = result1 !== null
3315
+ ? (function(receiver, tail) {
3316
+ if(tail) {
3317
+ return tail._valueForReceiver_(receiver);
3318
+ }
3319
+ else {
3320
+ return receiver;
3321
+ }
3322
+ })(result1[0], result1[2])
3323
+ : null;
3324
+ if (result2 !== null) {
3325
+ var result0 = result2;
3326
+ } else {
3327
+ var result0 = null;
3328
+ pos = savedPos0;
3329
+ }
3330
+
3331
+
3332
+
3333
+ cache[cacheKey] = {
3334
+ nextPos: pos,
3335
+ result: result0
3336
+ };
3337
+ return result0;
3338
+ }
3339
+
3340
+ function parse_binaryMessage() {
3341
+ var cacheKey = 'binaryMessage@' + pos;
3342
+ var cachedResult = cache[cacheKey];
3343
+ if (cachedResult) {
3344
+ pos = cachedResult.nextPos;
3345
+ return cachedResult.result;
3346
+ }
3347
+
3348
+
3349
+ var savedPos0 = pos;
3350
+ var savedPos1 = pos;
3351
+ var result3 = parse_ws();
3352
+ if (result3 !== null) {
3353
+ var result4 = parse_binarySelector();
3354
+ if (result4 !== null) {
3355
+ var result5 = parse_ws();
3356
+ if (result5 !== null) {
3357
+ var result8 = parse_unarySend();
3358
+ if (result8 !== null) {
3359
+ var result6 = result8;
3360
+ } else {
3361
+ var result7 = parse_operand();
3362
+ if (result7 !== null) {
3363
+ var result6 = result7;
3364
+ } else {
3365
+ var result6 = null;;
3366
+ };
3367
+ }
3368
+ if (result6 !== null) {
3369
+ var result1 = [result3, result4, result5, result6];
3370
+ } else {
3371
+ var result1 = null;
3372
+ pos = savedPos1;
3373
+ }
3374
+ } else {
3375
+ var result1 = null;
3376
+ pos = savedPos1;
3377
+ }
3378
+ } else {
3379
+ var result1 = null;
3380
+ pos = savedPos1;
3381
+ }
3382
+ } else {
3383
+ var result1 = null;
3384
+ pos = savedPos1;
3385
+ }
3386
+ var result2 = result1 !== null
3387
+ ? (function(selector, arg) {
3388
+ return smalltalk.SendNode._new()
3389
+ ._selector_(selector)
3390
+ ._arguments_([arg])
3391
+ })(result1[1], result1[3])
3392
+ : null;
3393
+ if (result2 !== null) {
3394
+ var result0 = result2;
3395
+ } else {
3396
+ var result0 = null;
3397
+ pos = savedPos0;
3398
+ }
3399
+
3400
+
3401
+
3402
+ cache[cacheKey] = {
3403
+ nextPos: pos,
3404
+ result: result0
3405
+ };
3406
+ return result0;
3407
+ }
3408
+
3409
+ function parse_binaryTail() {
3410
+ var cacheKey = 'binaryTail@' + pos;
3411
+ var cachedResult = cache[cacheKey];
3412
+ if (cachedResult) {
3413
+ pos = cachedResult.nextPos;
3414
+ return cachedResult.result;
3415
+ }
3416
+
3417
+
3418
+ var savedPos0 = pos;
3419
+ var savedPos1 = pos;
3420
+ var result3 = parse_binaryMessage();
3421
+ if (result3 !== null) {
3422
+ var result5 = parse_binaryTail();
3423
+ var result4 = result5 !== null ? result5 : '';
3424
+ if (result4 !== null) {
3425
+ var result1 = [result3, result4];
3426
+ } else {
3427
+ var result1 = null;
3428
+ pos = savedPos1;
3429
+ }
3430
+ } else {
3431
+ var result1 = null;
3432
+ pos = savedPos1;
3433
+ }
3434
+ var result2 = result1 !== null
3435
+ ? (function(message, tail) {
3436
+ if(tail) {
3437
+ return tail._valueForReceiver_(message);
3438
+ }
3439
+ else {
3440
+ return message;
3441
+ }
3442
+ })(result1[0], result1[1])
3443
+ : null;
3444
+ if (result2 !== null) {
3445
+ var result0 = result2;
3446
+ } else {
3447
+ var result0 = null;
3448
+ pos = savedPos0;
3449
+ }
3450
+
3451
+
3452
+
3453
+ cache[cacheKey] = {
3454
+ nextPos: pos,
3455
+ result: result0
3456
+ };
3457
+ return result0;
3458
+ }
3459
+
3460
+ function parse_binarySend() {
3461
+ var cacheKey = 'binarySend@' + pos;
3462
+ var cachedResult = cache[cacheKey];
3463
+ if (cachedResult) {
3464
+ pos = cachedResult.nextPos;
3465
+ return cachedResult.result;
3466
+ }
3467
+
3468
+
3469
+ var savedPos0 = pos;
3470
+ var savedPos1 = pos;
3471
+ var result3 = parse_unarySend();
3472
+ if (result3 !== null) {
3473
+ var result5 = parse_binaryTail();
3474
+ var result4 = result5 !== null ? result5 : '';
3475
+ if (result4 !== null) {
3476
+ var result1 = [result3, result4];
3477
+ } else {
3478
+ var result1 = null;
3479
+ pos = savedPos1;
3480
+ }
3481
+ } else {
3482
+ var result1 = null;
3483
+ pos = savedPos1;
3484
+ }
3485
+ var result2 = result1 !== null
3486
+ ? (function(receiver, tail) {
3487
+ if(tail) {
3488
+ return tail._valueForReceiver_(receiver);
3489
+ }
3490
+ else {
3491
+ return receiver;
3492
+ }
3493
+ })(result1[0], result1[1])
3494
+ : null;
3495
+ if (result2 !== null) {
3496
+ var result0 = result2;
3497
+ } else {
3498
+ var result0 = null;
3499
+ pos = savedPos0;
3500
+ }
3501
+
3502
+
3503
+
3504
+ cache[cacheKey] = {
3505
+ nextPos: pos,
3506
+ result: result0
3507
+ };
3508
+ return result0;
3509
+ }
3510
+
3511
+ function parse_keywordMessage() {
3512
+ var cacheKey = 'keywordMessage@' + pos;
3513
+ var cachedResult = cache[cacheKey];
3514
+ if (cachedResult) {
3515
+ pos = cachedResult.nextPos;
3516
+ return cachedResult.result;
3517
+ }
3518
+
3519
+
3520
+ var savedPos0 = pos;
3521
+ var savedPos1 = pos;
3522
+ var result3 = parse_ws();
3523
+ if (result3 !== null) {
3524
+ var savedPos2 = pos;
3525
+ var savedPos3 = pos;
3526
+ var result8 = parse_keywordPair();
3527
+ if (result8 !== null) {
3528
+ var result9 = parse_ws();
3529
+ if (result9 !== null) {
3530
+ var result6 = [result8, result9];
3531
+ } else {
3532
+ var result6 = null;
3533
+ pos = savedPos3;
3534
+ }
3535
+ } else {
3536
+ var result6 = null;
3537
+ pos = savedPos3;
3538
+ }
3539
+ var result7 = result6 !== null
3540
+ ? (function(pair) {return pair})(result6[0])
3541
+ : null;
3542
+ if (result7 !== null) {
3543
+ var result5 = result7;
3544
+ } else {
3545
+ var result5 = null;
3546
+ pos = savedPos2;
3547
+ }
3548
+ if (result5 !== null) {
3549
+ var result4 = [];
3550
+ while (result5 !== null) {
3551
+ result4.push(result5);
3552
+ var savedPos2 = pos;
3553
+ var savedPos3 = pos;
3554
+ var result8 = parse_keywordPair();
3555
+ if (result8 !== null) {
3556
+ var result9 = parse_ws();
3557
+ if (result9 !== null) {
3558
+ var result6 = [result8, result9];
3559
+ } else {
3560
+ var result6 = null;
3561
+ pos = savedPos3;
3562
+ }
3563
+ } else {
3564
+ var result6 = null;
3565
+ pos = savedPos3;
3566
+ }
3567
+ var result7 = result6 !== null
3568
+ ? (function(pair) {return pair})(result6[0])
3569
+ : null;
3570
+ if (result7 !== null) {
3571
+ var result5 = result7;
3572
+ } else {
3573
+ var result5 = null;
3574
+ pos = savedPos2;
3575
+ }
3576
+ }
3577
+ } else {
3578
+ var result4 = null;
3579
+ }
3580
+ if (result4 !== null) {
3581
+ var result1 = [result3, result4];
3582
+ } else {
3583
+ var result1 = null;
3584
+ pos = savedPos1;
3585
+ }
3586
+ } else {
3587
+ var result1 = null;
3588
+ pos = savedPos1;
3589
+ }
3590
+ var result2 = result1 !== null
3591
+ ? (function(pairs) {
3592
+ var selector = [];
3593
+ var args = [];
3594
+ for(var i=0;i<pairs.length;i++) {
3595
+ selector.push(pairs[i].key);
3596
+ args.push(pairs[i].arg);
3597
+ }
3598
+ return smalltalk.SendNode._new()
3599
+ ._selector_(selector.join(""))
3600
+ ._arguments_(args)
3601
+ })(result1[1])
3602
+ : null;
3603
+ if (result2 !== null) {
3604
+ var result0 = result2;
3605
+ } else {
3606
+ var result0 = null;
3607
+ pos = savedPos0;
3608
+ }
3609
+
3610
+
3611
+
3612
+ cache[cacheKey] = {
3613
+ nextPos: pos,
3614
+ result: result0
3615
+ };
3616
+ return result0;
3617
+ }
3618
+
3619
+ function parse_keywordSend() {
3620
+ var cacheKey = 'keywordSend@' + pos;
3621
+ var cachedResult = cache[cacheKey];
3622
+ if (cachedResult) {
3623
+ pos = cachedResult.nextPos;
3624
+ return cachedResult.result;
3625
+ }
3626
+
3627
+
3628
+ var savedPos0 = pos;
3629
+ var savedPos1 = pos;
3630
+ var result3 = parse_binarySend();
3631
+ if (result3 !== null) {
3632
+ var result4 = parse_keywordMessage();
3633
+ if (result4 !== null) {
3634
+ var result1 = [result3, result4];
3635
+ } else {
3636
+ var result1 = null;
3637
+ pos = savedPos1;
3638
+ }
3639
+ } else {
3640
+ var result1 = null;
3641
+ pos = savedPos1;
3642
+ }
3643
+ var result2 = result1 !== null
3644
+ ? (function(receiver, tail) {
3645
+ return tail._valueForReceiver_(receiver);
3646
+ })(result1[0], result1[1])
3647
+ : null;
3648
+ if (result2 !== null) {
3649
+ var result0 = result2;
3650
+ } else {
3651
+ var result0 = null;
3652
+ pos = savedPos0;
3653
+ }
3654
+
3655
+
3656
+
3657
+ cache[cacheKey] = {
3658
+ nextPos: pos,
3659
+ result: result0
3660
+ };
3661
+ return result0;
3662
+ }
3663
+
3664
+ function parse_message() {
3665
+ var cacheKey = 'message@' + pos;
3666
+ var cachedResult = cache[cacheKey];
3667
+ if (cachedResult) {
3668
+ pos = cachedResult.nextPos;
3669
+ return cachedResult.result;
3670
+ }
3671
+
3672
+
3673
+ var result3 = parse_binaryMessage();
3674
+ if (result3 !== null) {
3675
+ var result0 = result3;
3676
+ } else {
3677
+ var result2 = parse_unaryMessage();
3678
+ if (result2 !== null) {
3679
+ var result0 = result2;
3680
+ } else {
3681
+ var result1 = parse_keywordMessage();
3682
+ if (result1 !== null) {
3683
+ var result0 = result1;
3684
+ } else {
3685
+ var result0 = null;;
3686
+ };
3687
+ };
3688
+ }
3689
+
3690
+
3691
+
3692
+ cache[cacheKey] = {
3693
+ nextPos: pos,
3694
+ result: result0
3695
+ };
3696
+ return result0;
3697
+ }
3698
+
3699
+ function parse_cascade() {
3700
+ var cacheKey = 'cascade@' + pos;
3701
+ var cachedResult = cache[cacheKey];
3702
+ if (cachedResult) {
3703
+ pos = cachedResult.nextPos;
3704
+ return cachedResult.result;
3705
+ }
3706
+
3707
+
3708
+ var savedPos0 = pos;
3709
+ var savedPos1 = pos;
3710
+ var result3 = parse_ws();
3711
+ if (result3 !== null) {
3712
+ var result15 = parse_keywordSend();
3713
+ if (result15 !== null) {
3714
+ var result4 = result15;
3715
+ } else {
3716
+ var result14 = parse_binarySend();
3717
+ if (result14 !== null) {
3718
+ var result4 = result14;
3719
+ } else {
3720
+ var result4 = null;;
3721
+ };
3722
+ }
3723
+ if (result4 !== null) {
3724
+ var savedPos2 = pos;
3725
+ var savedPos3 = pos;
3726
+ var result9 = parse_ws();
3727
+ if (result9 !== null) {
3728
+ if (input.substr(pos, 1) === ";") {
3729
+ var result10 = ";";
3730
+ pos += 1;
3731
+ } else {
3732
+ var result10 = null;
3733
+ if (reportMatchFailures) {
3734
+ matchFailed("\";\"");
3735
+ }
3736
+ }
3737
+ if (result10 !== null) {
3738
+ var result11 = parse_ws();
3739
+ if (result11 !== null) {
3740
+ var result12 = parse_message();
3741
+ if (result12 !== null) {
3742
+ var result13 = parse_ws();
3743
+ if (result13 !== null) {
3744
+ var result7 = [result9, result10, result11, result12, result13];
3745
+ } else {
3746
+ var result7 = null;
3747
+ pos = savedPos3;
3748
+ }
3749
+ } else {
3750
+ var result7 = null;
3751
+ pos = savedPos3;
3752
+ }
3753
+ } else {
3754
+ var result7 = null;
3755
+ pos = savedPos3;
3756
+ }
3757
+ } else {
3758
+ var result7 = null;
3759
+ pos = savedPos3;
3760
+ }
3761
+ } else {
3762
+ var result7 = null;
3763
+ pos = savedPos3;
3764
+ }
3765
+ var result8 = result7 !== null
3766
+ ? (function(mess) {return mess})(result7[3])
3767
+ : null;
3768
+ if (result8 !== null) {
3769
+ var result6 = result8;
3770
+ } else {
3771
+ var result6 = null;
3772
+ pos = savedPos2;
3773
+ }
3774
+ if (result6 !== null) {
3775
+ var result5 = [];
3776
+ while (result6 !== null) {
3777
+ result5.push(result6);
3778
+ var savedPos2 = pos;
3779
+ var savedPos3 = pos;
3780
+ var result9 = parse_ws();
3781
+ if (result9 !== null) {
3782
+ if (input.substr(pos, 1) === ";") {
3783
+ var result10 = ";";
3784
+ pos += 1;
3785
+ } else {
3786
+ var result10 = null;
3787
+ if (reportMatchFailures) {
3788
+ matchFailed("\";\"");
3789
+ }
3790
+ }
3791
+ if (result10 !== null) {
3792
+ var result11 = parse_ws();
3793
+ if (result11 !== null) {
3794
+ var result12 = parse_message();
3795
+ if (result12 !== null) {
3796
+ var result13 = parse_ws();
3797
+ if (result13 !== null) {
3798
+ var result7 = [result9, result10, result11, result12, result13];
3799
+ } else {
3800
+ var result7 = null;
3801
+ pos = savedPos3;
3802
+ }
3803
+ } else {
3804
+ var result7 = null;
3805
+ pos = savedPos3;
3806
+ }
3807
+ } else {
3808
+ var result7 = null;
3809
+ pos = savedPos3;
3810
+ }
3811
+ } else {
3812
+ var result7 = null;
3813
+ pos = savedPos3;
3814
+ }
3815
+ } else {
3816
+ var result7 = null;
3817
+ pos = savedPos3;
3818
+ }
3819
+ var result8 = result7 !== null
3820
+ ? (function(mess) {return mess})(result7[3])
3821
+ : null;
3822
+ if (result8 !== null) {
3823
+ var result6 = result8;
3824
+ } else {
3825
+ var result6 = null;
3826
+ pos = savedPos2;
3827
+ }
3828
+ }
3829
+ } else {
3830
+ var result5 = null;
3831
+ }
3832
+ if (result5 !== null) {
3833
+ var result1 = [result3, result4, result5];
3834
+ } else {
3835
+ var result1 = null;
3836
+ pos = savedPos1;
3837
+ }
3838
+ } else {
3839
+ var result1 = null;
3840
+ pos = savedPos1;
3841
+ }
3842
+ } else {
3843
+ var result1 = null;
3844
+ pos = savedPos1;
3845
+ }
3846
+ var result2 = result1 !== null
3847
+ ? (function(send, messages) {
3848
+ var cascade = [];
3849
+ cascade.push(send);
3850
+ for(var i=0;i<messages.length;i++) {
3851
+ cascade.push(messages[i]);
3852
+ }
3853
+ return smalltalk.CascadeNode._new()
3854
+ ._receiver_(send._receiver())
3855
+ ._nodes_(cascade)
3856
+ })(result1[1], result1[2])
3857
+ : null;
3858
+ if (result2 !== null) {
3859
+ var result0 = result2;
3860
+ } else {
3861
+ var result0 = null;
3862
+ pos = savedPos0;
3863
+ }
3864
+
3865
+
3866
+
3867
+ cache[cacheKey] = {
3868
+ nextPos: pos,
3869
+ result: result0
3870
+ };
3871
+ return result0;
3872
+ }
3873
+
3874
+ function parse_jsStatement() {
3875
+ var cacheKey = 'jsStatement@' + pos;
3876
+ var cachedResult = cache[cacheKey];
3877
+ if (cachedResult) {
3878
+ pos = cachedResult.nextPos;
3879
+ return cachedResult.result;
3880
+ }
3881
+
3882
+
3883
+ var savedPos0 = pos;
3884
+ var savedPos1 = pos;
3885
+ if (input.substr(pos, 1) === "<") {
3886
+ var result3 = "<";
3887
+ pos += 1;
3888
+ } else {
3889
+ var result3 = null;
3890
+ if (reportMatchFailures) {
3891
+ matchFailed("\"<\"");
3892
+ }
3893
+ }
3894
+ if (result3 !== null) {
3895
+ var result4 = [];
3896
+ var savedPos2 = pos;
3897
+ if (input.substr(pos, 2) === ">>") {
3898
+ var result9 = ">>";
3899
+ pos += 2;
3900
+ } else {
3901
+ var result9 = null;
3902
+ if (reportMatchFailures) {
3903
+ matchFailed("\">>\"");
3904
+ }
3905
+ }
3906
+ var result10 = result9 !== null
3907
+ ? (function() {return ">"})()
3908
+ : null;
3909
+ if (result10 !== null) {
3910
+ var result8 = result10;
3911
+ } else {
3912
+ var result8 = null;
3913
+ pos = savedPos2;
3914
+ }
3915
+ if (result8 !== null) {
3916
+ var result6 = result8;
3917
+ } else {
3918
+ if (input.substr(pos).match(/^[^>]/) !== null) {
3919
+ var result7 = input.charAt(pos);
3920
+ pos++;
3921
+ } else {
3922
+ var result7 = null;
3923
+ if (reportMatchFailures) {
3924
+ matchFailed("[^>]");
3925
+ }
3926
+ }
3927
+ if (result7 !== null) {
3928
+ var result6 = result7;
3929
+ } else {
3930
+ var result6 = null;;
3931
+ };
3932
+ }
3933
+ while (result6 !== null) {
3934
+ result4.push(result6);
3935
+ var savedPos2 = pos;
3936
+ if (input.substr(pos, 2) === ">>") {
3937
+ var result9 = ">>";
3938
+ pos += 2;
3939
+ } else {
3940
+ var result9 = null;
3941
+ if (reportMatchFailures) {
3942
+ matchFailed("\">>\"");
3943
+ }
3944
+ }
3945
+ var result10 = result9 !== null
3946
+ ? (function() {return ">"})()
3947
+ : null;
3948
+ if (result10 !== null) {
3949
+ var result8 = result10;
3950
+ } else {
3951
+ var result8 = null;
3952
+ pos = savedPos2;
3953
+ }
3954
+ if (result8 !== null) {
3955
+ var result6 = result8;
3956
+ } else {
3957
+ if (input.substr(pos).match(/^[^>]/) !== null) {
3958
+ var result7 = input.charAt(pos);
3959
+ pos++;
3960
+ } else {
3961
+ var result7 = null;
3962
+ if (reportMatchFailures) {
3963
+ matchFailed("[^>]");
3964
+ }
3965
+ }
3966
+ if (result7 !== null) {
3967
+ var result6 = result7;
3968
+ } else {
3969
+ var result6 = null;;
3970
+ };
3971
+ }
3972
+ }
3973
+ if (result4 !== null) {
3974
+ if (input.substr(pos, 1) === ">") {
3975
+ var result5 = ">";
3976
+ pos += 1;
3977
+ } else {
3978
+ var result5 = null;
3979
+ if (reportMatchFailures) {
3980
+ matchFailed("\">\"");
3981
+ }
3982
+ }
3983
+ if (result5 !== null) {
3984
+ var result1 = [result3, result4, result5];
3985
+ } else {
3986
+ var result1 = null;
3987
+ pos = savedPos1;
3988
+ }
3989
+ } else {
3990
+ var result1 = null;
3991
+ pos = savedPos1;
3992
+ }
3993
+ } else {
3994
+ var result1 = null;
3995
+ pos = savedPos1;
3996
+ }
3997
+ var result2 = result1 !== null
3998
+ ? (function(val) {
3999
+ return smalltalk.JSStatementNode._new()
4000
+ ._source_(val.join(""))
4001
+ })(result1[1])
4002
+ : null;
4003
+ if (result2 !== null) {
4004
+ var result0 = result2;
4005
+ } else {
4006
+ var result0 = null;
4007
+ pos = savedPos0;
4008
+ }
4009
+
4010
+
4011
+
4012
+ cache[cacheKey] = {
4013
+ nextPos: pos,
4014
+ result: result0
4015
+ };
4016
+ return result0;
4017
+ }
4018
+
4019
+ function parse_method() {
4020
+ var cacheKey = 'method@' + pos;
4021
+ var cachedResult = cache[cacheKey];
4022
+ if (cachedResult) {
4023
+ pos = cachedResult.nextPos;
4024
+ return cachedResult.result;
4025
+ }
4026
+
4027
+
4028
+ var savedPos0 = pos;
4029
+ var savedPos1 = pos;
4030
+ var result3 = parse_ws();
4031
+ if (result3 !== null) {
4032
+ var result11 = parse_keywordPattern();
4033
+ if (result11 !== null) {
4034
+ var result4 = result11;
4035
+ } else {
4036
+ var result10 = parse_binaryPattern();
4037
+ if (result10 !== null) {
4038
+ var result4 = result10;
4039
+ } else {
4040
+ var result9 = parse_unaryPattern();
4041
+ if (result9 !== null) {
4042
+ var result4 = result9;
4043
+ } else {
4044
+ var result4 = null;;
4045
+ };
4046
+ };
4047
+ }
4048
+ if (result4 !== null) {
4049
+ var result5 = parse_ws();
4050
+ if (result5 !== null) {
4051
+ var result8 = parse_sequence();
4052
+ var result6 = result8 !== null ? result8 : '';
4053
+ if (result6 !== null) {
4054
+ var result7 = parse_ws();
4055
+ if (result7 !== null) {
4056
+ var result1 = [result3, result4, result5, result6, result7];
4057
+ } else {
4058
+ var result1 = null;
4059
+ pos = savedPos1;
4060
+ }
4061
+ } else {
4062
+ var result1 = null;
4063
+ pos = savedPos1;
4064
+ }
4065
+ } else {
4066
+ var result1 = null;
4067
+ pos = savedPos1;
4068
+ }
4069
+ } else {
4070
+ var result1 = null;
4071
+ pos = savedPos1;
4072
+ }
4073
+ } else {
4074
+ var result1 = null;
4075
+ pos = savedPos1;
4076
+ }
4077
+ var result2 = result1 !== null
4078
+ ? (function(pattern, sequence) {
4079
+ return smalltalk.MethodNode._new()
4080
+ ._selector_(pattern[0])
4081
+ ._arguments_(pattern[1])
4082
+ ._nodes_([sequence])
4083
+ })(result1[1], result1[3])
4084
+ : null;
4085
+ if (result2 !== null) {
4086
+ var result0 = result2;
4087
+ } else {
4088
+ var result0 = null;
4089
+ pos = savedPos0;
4090
+ }
4091
+
4092
+
4093
+
4094
+ cache[cacheKey] = {
4095
+ nextPos: pos,
4096
+ result: result0
4097
+ };
4098
+ return result0;
4099
+ }
4100
+
4101
+ function buildErrorMessage() {
4102
+ function buildExpected(failuresExpected) {
4103
+ failuresExpected.sort();
4104
+
4105
+ var lastFailure = null;
4106
+ var failuresExpectedUnique = [];
4107
+ for (var i = 0; i < failuresExpected.length; i++) {
4108
+ if (failuresExpected[i] !== lastFailure) {
4109
+ failuresExpectedUnique.push(failuresExpected[i]);
4110
+ lastFailure = failuresExpected[i];
4111
+ }
4112
+ }
4113
+
4114
+ switch (failuresExpectedUnique.length) {
4115
+ case 0:
4116
+ return 'end of input';
4117
+ case 1:
4118
+ return failuresExpectedUnique[0];
4119
+ default:
4120
+ return failuresExpectedUnique.slice(0, failuresExpectedUnique.length - 1).join(', ')
4121
+ + ' or '
4122
+ + failuresExpectedUnique[failuresExpectedUnique.length - 1];
4123
+ }
4124
+ }
4125
+
4126
+ var expected = buildExpected(rightmostMatchFailuresExpected);
4127
+ var actualPos = Math.max(pos, rightmostMatchFailuresPos);
4128
+ var actual = actualPos < input.length
4129
+ ? quote(input.charAt(actualPos))
4130
+ : 'end of input';
4131
+
4132
+ return 'Expected ' + expected + ' but ' + actual + ' found.';
4133
+ }
4134
+
4135
+ function computeErrorPosition() {
4136
+ /*
4137
+ * The first idea was to use |String.split| to break the input up to the
4138
+ * error position along newlines and derive the line and column from
4139
+ * there. However IE's |split| implementation is so broken that it was
4140
+ * enough to prevent it.
4141
+ */
4142
+
4143
+ var line = 1;
4144
+ var column = 1;
4145
+ var seenCR = false;
4146
+
4147
+ for (var i = 0; i < rightmostMatchFailuresPos; i++) {
4148
+ var ch = input.charAt(i);
4149
+ if (ch === '\n') {
4150
+ if (!seenCR) { line++; }
4151
+ column = 1;
4152
+ seenCR = false;
4153
+ } else if (ch === '\r' | ch === '\u2028' || ch === '\u2029') {
4154
+ line++;
4155
+ column = 1;
4156
+ seenCR = true;
4157
+ } else {
4158
+ column++;
4159
+ seenCR = false;
4160
+ }
4161
+ }
4162
+
4163
+ return { line: line, column: column };
4164
+ }
4165
+
4166
+
4167
+
4168
+ var result = parseFunctions[startRule]();
4169
+
4170
+ /*
4171
+ * The parser is now in one of the following three states:
4172
+ *
4173
+ * 1. The parser successfully parsed the whole input.
4174
+ *
4175
+ * - |result !== null|
4176
+ * - |pos === input.length|
4177
+ * - |rightmostMatchFailuresExpected| may or may not contain something
4178
+ *
4179
+ * 2. The parser successfully parsed only a part of the input.
4180
+ *
4181
+ * - |result !== null|
4182
+ * - |pos < input.length|
4183
+ * - |rightmostMatchFailuresExpected| may or may not contain something
4184
+ *
4185
+ * 3. The parser did not successfully parse any part of the input.
4186
+ *
4187
+ * - |result === null|
4188
+ * - |pos === 0|
4189
+ * - |rightmostMatchFailuresExpected| contains at least one failure
4190
+ *
4191
+ * All code following this comment (including called functions) must
4192
+ * handle these states.
4193
+ */
4194
+ if (result === null || pos !== input.length) {
4195
+ var errorPosition = computeErrorPosition();
4196
+ throw new this.SyntaxError(
4197
+ buildErrorMessage(),
4198
+ errorPosition.line,
4199
+ errorPosition.column
4200
+ );
4201
+ }
4202
+
4203
+ return result;
4204
+ },
4205
+
4206
+ /* Returns the parser source code. */
4207
+ toSource: function() { return this._source; }
4208
+ };
4209
+
4210
+ /* Thrown when a parser encounters a syntax error. */
4211
+
4212
+ result.SyntaxError = function(message, line, column) {
4213
+ this.name = 'SyntaxError';
4214
+ this.message = message;
4215
+ this.line = line;
4216
+ this.column = column;
4217
+ };
4218
+
4219
+ result.SyntaxError.prototype = Error.prototype;
4220
+
4221
+ return result;
4222
+ })();