batman-rails-flo 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +29 -0
  3. data/Rakefile +2 -0
  4. data/lib/batman-rails-flo.rb +5 -0
  5. data/lib/batman_rails_flo/railtie.rb +9 -0
  6. data/lib/batman_rails_flo/tasks.rake +14 -0
  7. data/lib/batman_rails_flo/version.rb +3 -0
  8. data/vendor/assets/javascripts/batman_rails_flo/flo_server.js +67 -0
  9. data/vendor/assets/javascripts/batman_rails_flo/live_reload.js.coffee +129 -0
  10. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/CNAME +1 -0
  11. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/CONTRIBUTING.md +9 -0
  12. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/LICENSE +22 -0
  13. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/README +50 -0
  14. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/bin/cake +7 -0
  15. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/bin/coffee +7 -0
  16. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/browser.js +134 -0
  17. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/cake.js +112 -0
  18. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/coffee-script.js +335 -0
  19. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/command.js +569 -0
  20. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/grammar.js +631 -0
  21. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/helpers.js +252 -0
  22. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/index.js +11 -0
  23. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/lexer.js +926 -0
  24. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/nodes.js +3158 -0
  25. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/optparse.js +139 -0
  26. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/parser.js +724 -0
  27. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/register.js +66 -0
  28. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/repl.js +163 -0
  29. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/rewriter.js +475 -0
  30. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/scope.js +146 -0
  31. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/lib/coffee-script/sourcemap.js +161 -0
  32. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/LICENSE +21 -0
  33. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/examples/pow.js +6 -0
  34. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/index.js +82 -0
  35. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/package.json +34 -0
  36. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/readme.markdown +63 -0
  37. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/chmod.js +38 -0
  38. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/clobber.js +37 -0
  39. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/mkdirp.js +28 -0
  40. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/perm.js +32 -0
  41. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/perm_sync.js +39 -0
  42. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/race.js +41 -0
  43. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/rel.js +32 -0
  44. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/return.js +25 -0
  45. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/return_sync.js +24 -0
  46. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/root.js +18 -0
  47. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/sync.js +32 -0
  48. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/umask.js +28 -0
  49. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/node_modules/mkdirp/test/umask_sync.js +32 -0
  50. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/package.json +50 -0
  51. data/vendor/assets/javascripts/batman_rails_flo/node_modules/coffee-script/register.js +1 -0
  52. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/LICENSE +30 -0
  53. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/PATENTS +23 -0
  54. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/README.md +124 -0
  55. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/bin/flo +26 -0
  56. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/configure/configure.html +57 -0
  57. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/configure/configure.js +205 -0
  58. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/configure/style.css +334 -0
  59. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/connection.js +235 -0
  60. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/devtools.html +12 -0
  61. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/index.js +323 -0
  62. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/logger.js +42 -0
  63. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/logo.png +0 -0
  64. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/manifest.json +13 -0
  65. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/client/session.js +305 -0
  66. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/index.js +10 -0
  67. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/lib/flo.js +226 -0
  68. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/lib/server.js +94 -0
  69. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/README.md +66 -0
  70. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/index.js +437 -0
  71. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/LICENSE +23 -0
  72. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/README.md +218 -0
  73. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/minimatch.js +1055 -0
  74. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +14 -0
  75. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/LICENSE +23 -0
  76. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/README.md +97 -0
  77. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +252 -0
  78. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/package.json +33 -0
  79. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/test/basic.js +369 -0
  80. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +52 -0
  81. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +50 -0
  82. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/LICENSE +27 -0
  83. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/README.md +53 -0
  84. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/bench.js +283 -0
  85. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/package.json +42 -0
  86. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/sigmund.js +39 -0
  87. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/node_modules/sigmund/test/basic.js +24 -0
  88. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/package.json +40 -0
  89. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/test/basic.js +399 -0
  90. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/test/brace-expand.js +33 -0
  91. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/test/caching.js +14 -0
  92. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/test/defaults.js +274 -0
  93. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  94. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/lib/walker.js +111 -0
  95. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/license +13 -0
  96. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/lib/makeerror.js +87 -0
  97. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/node_modules/tmpl/lib/tmpl.js +17 -0
  98. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/node_modules/tmpl/package.json +31 -0
  99. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/node_modules/tmpl/readme.md +10 -0
  100. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/package.json +34 -0
  101. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/node_modules/makeerror/readme.md +77 -0
  102. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/package.json +36 -0
  103. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/walker/readme.md +52 -0
  104. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/LICENSE +55 -0
  105. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/main.js +128 -0
  106. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/package.json +34 -0
  107. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/readme.mkd +72 -0
  108. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/test/d/d/t +0 -0
  109. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/test/d/t +0 -0
  110. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/test/test_monitor.js +31 -0
  111. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/test/test_monitorRootDirectory.js +28 -0
  112. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/node_modules/watch/test/test_watchTree.js +20 -0
  113. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/package.json +45 -0
  114. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/sane/test/test.js +243 -0
  115. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/CHANGELOG.md +81 -0
  116. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/LICENSE +177 -0
  117. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/Makefile +11 -0
  118. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/README.md +245 -0
  119. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/binding.gyp +14 -0
  120. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Makefile +355 -0
  121. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Release/linker.lock +0 -0
  122. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Release/obj.target/validation/src/validation.o +0 -0
  123. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Release/obj.target/xor/src/xor.o +0 -0
  124. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Release/validation.node +0 -0
  125. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/Release/xor.node +0 -0
  126. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/binding.Makefile +6 -0
  127. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/config.gypi +115 -0
  128. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/gyp-mac-tool +512 -0
  129. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/validation.target.mk +154 -0
  130. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/build/xor.target.mk +154 -0
  131. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/index.js +1 -0
  132. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/install.js +31 -0
  133. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/Constants.js +23 -0
  134. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/Deprecation.js +38 -0
  135. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/Validation.fallback.js +12 -0
  136. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/Validation.js +18 -0
  137. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketClient.js +359 -0
  138. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketConnection.js +717 -0
  139. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketFrame.js +282 -0
  140. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketRequest.js +478 -0
  141. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketRouter.js +154 -0
  142. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketRouterRequest.js +59 -0
  143. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/WebSocketServer.js +216 -0
  144. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/utils.js +7 -0
  145. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/websocket.js +11 -0
  146. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/xor.fallback.js +13 -0
  147. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/lib/xor.js +18 -0
  148. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/package.json +43 -0
  149. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/src/validation.cc +144 -0
  150. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/src/xor.cpp +86 -0
  151. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/vendor/FastBufferList.js +192 -0
  152. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/vendor/node-ctype/LICENSE +18 -0
  153. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/node_modules/websocket/vendor/node-ctype/ctio-faster.js +1126 -0
  154. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/package.json +25 -0
  155. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/test/client/browser_websocket.js +63 -0
  156. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/test/client/connection_test.js +57 -0
  157. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/test/client/logger_mock.js +15 -0
  158. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/test/client/session_test.js +194 -0
  159. data/vendor/assets/javascripts/batman_rails_flo/node_modules/fb-flo/test/server/flo_test.js +211 -0
  160. data/vendor/assets/javascripts/batman_rails_flo/package.json +15 -0
  161. data/vendor/assets/javascripts/batman_rails_flo/reload_event_handler.js.coffee +56 -0
  162. metadata +232 -0
@@ -0,0 +1,631 @@
1
+ // Generated by CoffeeScript 1.7.1
2
+ (function() {
3
+ var Parser, alt, alternatives, grammar, name, o, operators, token, tokens, unwrap;
4
+
5
+ Parser = require('jison').Parser;
6
+
7
+ unwrap = /^function\s*\(\)\s*\{\s*return\s*([\s\S]*);\s*\}/;
8
+
9
+ o = function(patternString, action, options) {
10
+ var addLocationDataFn, match, patternCount;
11
+ patternString = patternString.replace(/\s{2,}/g, ' ');
12
+ patternCount = patternString.split(' ').length;
13
+ if (!action) {
14
+ return [patternString, '$$ = $1;', options];
15
+ }
16
+ action = (match = unwrap.exec(action)) ? match[1] : "(" + action + "())";
17
+ action = action.replace(/\bnew /g, '$&yy.');
18
+ action = action.replace(/\b(?:Block\.wrap|extend)\b/g, 'yy.$&');
19
+ addLocationDataFn = function(first, last) {
20
+ if (!last) {
21
+ return "yy.addLocationDataFn(@" + first + ")";
22
+ } else {
23
+ return "yy.addLocationDataFn(@" + first + ", @" + last + ")";
24
+ }
25
+ };
26
+ action = action.replace(/LOC\(([0-9]*)\)/g, addLocationDataFn('$1'));
27
+ action = action.replace(/LOC\(([0-9]*),\s*([0-9]*)\)/g, addLocationDataFn('$1', '$2'));
28
+ return [patternString, "$$ = " + (addLocationDataFn(1, patternCount)) + "(" + action + ");", options];
29
+ };
30
+
31
+ grammar = {
32
+ Root: [
33
+ o('', function() {
34
+ return new Block;
35
+ }), o('Body')
36
+ ],
37
+ Body: [
38
+ o('Line', function() {
39
+ return Block.wrap([$1]);
40
+ }), o('Body TERMINATOR Line', function() {
41
+ return $1.push($3);
42
+ }), o('Body TERMINATOR')
43
+ ],
44
+ Line: [o('Expression'), o('Statement')],
45
+ Statement: [
46
+ o('Return'), o('Comment'), o('STATEMENT', function() {
47
+ return new Literal($1);
48
+ })
49
+ ],
50
+ Expression: [o('Value'), o('Invocation'), o('Code'), o('Operation'), o('Assign'), o('If'), o('Try'), o('While'), o('For'), o('Switch'), o('Class'), o('Throw')],
51
+ Block: [
52
+ o('INDENT OUTDENT', function() {
53
+ return new Block;
54
+ }), o('INDENT Body OUTDENT', function() {
55
+ return $2;
56
+ })
57
+ ],
58
+ Identifier: [
59
+ o('IDENTIFIER', function() {
60
+ return new Literal($1);
61
+ })
62
+ ],
63
+ AlphaNumeric: [
64
+ o('NUMBER', function() {
65
+ return new Literal($1);
66
+ }), o('STRING', function() {
67
+ return new Literal($1);
68
+ })
69
+ ],
70
+ Literal: [
71
+ o('AlphaNumeric'), o('JS', function() {
72
+ return new Literal($1);
73
+ }), o('REGEX', function() {
74
+ return new Literal($1);
75
+ }), o('DEBUGGER', function() {
76
+ return new Literal($1);
77
+ }), o('UNDEFINED', function() {
78
+ return new Undefined;
79
+ }), o('NULL', function() {
80
+ return new Null;
81
+ }), o('BOOL', function() {
82
+ return new Bool($1);
83
+ })
84
+ ],
85
+ Assign: [
86
+ o('Assignable = Expression', function() {
87
+ return new Assign($1, $3);
88
+ }), o('Assignable = TERMINATOR Expression', function() {
89
+ return new Assign($1, $4);
90
+ }), o('Assignable = INDENT Expression OUTDENT', function() {
91
+ return new Assign($1, $4);
92
+ })
93
+ ],
94
+ AssignObj: [
95
+ o('ObjAssignable', function() {
96
+ return new Value($1);
97
+ }), o('ObjAssignable : Expression', function() {
98
+ return new Assign(LOC(1)(new Value($1)), $3, 'object');
99
+ }), o('ObjAssignable : INDENT Expression OUTDENT', function() {
100
+ return new Assign(LOC(1)(new Value($1)), $4, 'object');
101
+ }), o('Comment')
102
+ ],
103
+ ObjAssignable: [o('Identifier'), o('AlphaNumeric'), o('ThisProperty')],
104
+ Return: [
105
+ o('RETURN Expression', function() {
106
+ return new Return($2);
107
+ }), o('RETURN', function() {
108
+ return new Return;
109
+ })
110
+ ],
111
+ Comment: [
112
+ o('HERECOMMENT', function() {
113
+ return new Comment($1);
114
+ })
115
+ ],
116
+ Code: [
117
+ o('PARAM_START ParamList PARAM_END FuncGlyph Block', function() {
118
+ return new Code($2, $5, $4);
119
+ }), o('FuncGlyph Block', function() {
120
+ return new Code([], $2, $1);
121
+ })
122
+ ],
123
+ FuncGlyph: [
124
+ o('->', function() {
125
+ return 'func';
126
+ }), o('=>', function() {
127
+ return 'boundfunc';
128
+ })
129
+ ],
130
+ OptComma: [o(''), o(',')],
131
+ ParamList: [
132
+ o('', function() {
133
+ return [];
134
+ }), o('Param', function() {
135
+ return [$1];
136
+ }), o('ParamList , Param', function() {
137
+ return $1.concat($3);
138
+ }), o('ParamList OptComma TERMINATOR Param', function() {
139
+ return $1.concat($4);
140
+ }), o('ParamList OptComma INDENT ParamList OptComma OUTDENT', function() {
141
+ return $1.concat($4);
142
+ })
143
+ ],
144
+ Param: [
145
+ o('ParamVar', function() {
146
+ return new Param($1);
147
+ }), o('ParamVar ...', function() {
148
+ return new Param($1, null, true);
149
+ }), o('ParamVar = Expression', function() {
150
+ return new Param($1, $3);
151
+ }), o('...', function() {
152
+ return new Expansion;
153
+ })
154
+ ],
155
+ ParamVar: [o('Identifier'), o('ThisProperty'), o('Array'), o('Object')],
156
+ Splat: [
157
+ o('Expression ...', function() {
158
+ return new Splat($1);
159
+ })
160
+ ],
161
+ SimpleAssignable: [
162
+ o('Identifier', function() {
163
+ return new Value($1);
164
+ }), o('Value Accessor', function() {
165
+ return $1.add($2);
166
+ }), o('Invocation Accessor', function() {
167
+ return new Value($1, [].concat($2));
168
+ }), o('ThisProperty')
169
+ ],
170
+ Assignable: [
171
+ o('SimpleAssignable'), o('Array', function() {
172
+ return new Value($1);
173
+ }), o('Object', function() {
174
+ return new Value($1);
175
+ })
176
+ ],
177
+ Value: [
178
+ o('Assignable'), o('Literal', function() {
179
+ return new Value($1);
180
+ }), o('Parenthetical', function() {
181
+ return new Value($1);
182
+ }), o('Range', function() {
183
+ return new Value($1);
184
+ }), o('This')
185
+ ],
186
+ Accessor: [
187
+ o('. Identifier', function() {
188
+ return new Access($2);
189
+ }), o('?. Identifier', function() {
190
+ return new Access($2, 'soak');
191
+ }), o(':: Identifier', function() {
192
+ return [LOC(1)(new Access(new Literal('prototype'))), LOC(2)(new Access($2))];
193
+ }), o('?:: Identifier', function() {
194
+ return [LOC(1)(new Access(new Literal('prototype'), 'soak')), LOC(2)(new Access($2))];
195
+ }), o('::', function() {
196
+ return new Access(new Literal('prototype'));
197
+ }), o('Index')
198
+ ],
199
+ Index: [
200
+ o('INDEX_START IndexValue INDEX_END', function() {
201
+ return $2;
202
+ }), o('INDEX_SOAK Index', function() {
203
+ return extend($2, {
204
+ soak: true
205
+ });
206
+ })
207
+ ],
208
+ IndexValue: [
209
+ o('Expression', function() {
210
+ return new Index($1);
211
+ }), o('Slice', function() {
212
+ return new Slice($1);
213
+ })
214
+ ],
215
+ Object: [
216
+ o('{ AssignList OptComma }', function() {
217
+ return new Obj($2, $1.generated);
218
+ })
219
+ ],
220
+ AssignList: [
221
+ o('', function() {
222
+ return [];
223
+ }), o('AssignObj', function() {
224
+ return [$1];
225
+ }), o('AssignList , AssignObj', function() {
226
+ return $1.concat($3);
227
+ }), o('AssignList OptComma TERMINATOR AssignObj', function() {
228
+ return $1.concat($4);
229
+ }), o('AssignList OptComma INDENT AssignList OptComma OUTDENT', function() {
230
+ return $1.concat($4);
231
+ })
232
+ ],
233
+ Class: [
234
+ o('CLASS', function() {
235
+ return new Class;
236
+ }), o('CLASS Block', function() {
237
+ return new Class(null, null, $2);
238
+ }), o('CLASS EXTENDS Expression', function() {
239
+ return new Class(null, $3);
240
+ }), o('CLASS EXTENDS Expression Block', function() {
241
+ return new Class(null, $3, $4);
242
+ }), o('CLASS SimpleAssignable', function() {
243
+ return new Class($2);
244
+ }), o('CLASS SimpleAssignable Block', function() {
245
+ return new Class($2, null, $3);
246
+ }), o('CLASS SimpleAssignable EXTENDS Expression', function() {
247
+ return new Class($2, $4);
248
+ }), o('CLASS SimpleAssignable EXTENDS Expression Block', function() {
249
+ return new Class($2, $4, $5);
250
+ })
251
+ ],
252
+ Invocation: [
253
+ o('Value OptFuncExist Arguments', function() {
254
+ return new Call($1, $3, $2);
255
+ }), o('Invocation OptFuncExist Arguments', function() {
256
+ return new Call($1, $3, $2);
257
+ }), o('SUPER', function() {
258
+ return new Call('super', [new Splat(new Literal('arguments'))]);
259
+ }), o('SUPER Arguments', function() {
260
+ return new Call('super', $2);
261
+ })
262
+ ],
263
+ OptFuncExist: [
264
+ o('', function() {
265
+ return false;
266
+ }), o('FUNC_EXIST', function() {
267
+ return true;
268
+ })
269
+ ],
270
+ Arguments: [
271
+ o('CALL_START CALL_END', function() {
272
+ return [];
273
+ }), o('CALL_START ArgList OptComma CALL_END', function() {
274
+ return $2;
275
+ })
276
+ ],
277
+ This: [
278
+ o('THIS', function() {
279
+ return new Value(new Literal('this'));
280
+ }), o('@', function() {
281
+ return new Value(new Literal('this'));
282
+ })
283
+ ],
284
+ ThisProperty: [
285
+ o('@ Identifier', function() {
286
+ return new Value(LOC(1)(new Literal('this')), [LOC(2)(new Access($2))], 'this');
287
+ })
288
+ ],
289
+ Array: [
290
+ o('[ ]', function() {
291
+ return new Arr([]);
292
+ }), o('[ ArgList OptComma ]', function() {
293
+ return new Arr($2);
294
+ })
295
+ ],
296
+ RangeDots: [
297
+ o('..', function() {
298
+ return 'inclusive';
299
+ }), o('...', function() {
300
+ return 'exclusive';
301
+ })
302
+ ],
303
+ Range: [
304
+ o('[ Expression RangeDots Expression ]', function() {
305
+ return new Range($2, $4, $3);
306
+ })
307
+ ],
308
+ Slice: [
309
+ o('Expression RangeDots Expression', function() {
310
+ return new Range($1, $3, $2);
311
+ }), o('Expression RangeDots', function() {
312
+ return new Range($1, null, $2);
313
+ }), o('RangeDots Expression', function() {
314
+ return new Range(null, $2, $1);
315
+ }), o('RangeDots', function() {
316
+ return new Range(null, null, $1);
317
+ })
318
+ ],
319
+ ArgList: [
320
+ o('Arg', function() {
321
+ return [$1];
322
+ }), o('ArgList , Arg', function() {
323
+ return $1.concat($3);
324
+ }), o('ArgList OptComma TERMINATOR Arg', function() {
325
+ return $1.concat($4);
326
+ }), o('INDENT ArgList OptComma OUTDENT', function() {
327
+ return $2;
328
+ }), o('ArgList OptComma INDENT ArgList OptComma OUTDENT', function() {
329
+ return $1.concat($4);
330
+ })
331
+ ],
332
+ Arg: [
333
+ o('Expression'), o('Splat'), o('...', function() {
334
+ return new Expansion;
335
+ })
336
+ ],
337
+ SimpleArgs: [
338
+ o('Expression'), o('SimpleArgs , Expression', function() {
339
+ return [].concat($1, $3);
340
+ })
341
+ ],
342
+ Try: [
343
+ o('TRY Block', function() {
344
+ return new Try($2);
345
+ }), o('TRY Block Catch', function() {
346
+ return new Try($2, $3[0], $3[1]);
347
+ }), o('TRY Block FINALLY Block', function() {
348
+ return new Try($2, null, null, $4);
349
+ }), o('TRY Block Catch FINALLY Block', function() {
350
+ return new Try($2, $3[0], $3[1], $5);
351
+ })
352
+ ],
353
+ Catch: [
354
+ o('CATCH Identifier Block', function() {
355
+ return [$2, $3];
356
+ }), o('CATCH Object Block', function() {
357
+ return [LOC(2)(new Value($2)), $3];
358
+ }), o('CATCH Block', function() {
359
+ return [null, $2];
360
+ })
361
+ ],
362
+ Throw: [
363
+ o('THROW Expression', function() {
364
+ return new Throw($2);
365
+ })
366
+ ],
367
+ Parenthetical: [
368
+ o('( Body )', function() {
369
+ return new Parens($2);
370
+ }), o('( INDENT Body OUTDENT )', function() {
371
+ return new Parens($3);
372
+ })
373
+ ],
374
+ WhileSource: [
375
+ o('WHILE Expression', function() {
376
+ return new While($2);
377
+ }), o('WHILE Expression WHEN Expression', function() {
378
+ return new While($2, {
379
+ guard: $4
380
+ });
381
+ }), o('UNTIL Expression', function() {
382
+ return new While($2, {
383
+ invert: true
384
+ });
385
+ }), o('UNTIL Expression WHEN Expression', function() {
386
+ return new While($2, {
387
+ invert: true,
388
+ guard: $4
389
+ });
390
+ })
391
+ ],
392
+ While: [
393
+ o('WhileSource Block', function() {
394
+ return $1.addBody($2);
395
+ }), o('Statement WhileSource', function() {
396
+ return $2.addBody(LOC(1)(Block.wrap([$1])));
397
+ }), o('Expression WhileSource', function() {
398
+ return $2.addBody(LOC(1)(Block.wrap([$1])));
399
+ }), o('Loop', function() {
400
+ return $1;
401
+ })
402
+ ],
403
+ Loop: [
404
+ o('LOOP Block', function() {
405
+ return new While(LOC(1)(new Literal('true'))).addBody($2);
406
+ }), o('LOOP Expression', function() {
407
+ return new While(LOC(1)(new Literal('true'))).addBody(LOC(2)(Block.wrap([$2])));
408
+ })
409
+ ],
410
+ For: [
411
+ o('Statement ForBody', function() {
412
+ return new For($1, $2);
413
+ }), o('Expression ForBody', function() {
414
+ return new For($1, $2);
415
+ }), o('ForBody Block', function() {
416
+ return new For($2, $1);
417
+ })
418
+ ],
419
+ ForBody: [
420
+ o('FOR Range', function() {
421
+ return {
422
+ source: LOC(2)(new Value($2))
423
+ };
424
+ }), o('ForStart ForSource', function() {
425
+ $2.own = $1.own;
426
+ $2.name = $1[0];
427
+ $2.index = $1[1];
428
+ return $2;
429
+ })
430
+ ],
431
+ ForStart: [
432
+ o('FOR ForVariables', function() {
433
+ return $2;
434
+ }), o('FOR OWN ForVariables', function() {
435
+ $3.own = true;
436
+ return $3;
437
+ })
438
+ ],
439
+ ForValue: [
440
+ o('Identifier'), o('ThisProperty'), o('Array', function() {
441
+ return new Value($1);
442
+ }), o('Object', function() {
443
+ return new Value($1);
444
+ })
445
+ ],
446
+ ForVariables: [
447
+ o('ForValue', function() {
448
+ return [$1];
449
+ }), o('ForValue , ForValue', function() {
450
+ return [$1, $3];
451
+ })
452
+ ],
453
+ ForSource: [
454
+ o('FORIN Expression', function() {
455
+ return {
456
+ source: $2
457
+ };
458
+ }), o('FOROF Expression', function() {
459
+ return {
460
+ source: $2,
461
+ object: true
462
+ };
463
+ }), o('FORIN Expression WHEN Expression', function() {
464
+ return {
465
+ source: $2,
466
+ guard: $4
467
+ };
468
+ }), o('FOROF Expression WHEN Expression', function() {
469
+ return {
470
+ source: $2,
471
+ guard: $4,
472
+ object: true
473
+ };
474
+ }), o('FORIN Expression BY Expression', function() {
475
+ return {
476
+ source: $2,
477
+ step: $4
478
+ };
479
+ }), o('FORIN Expression WHEN Expression BY Expression', function() {
480
+ return {
481
+ source: $2,
482
+ guard: $4,
483
+ step: $6
484
+ };
485
+ }), o('FORIN Expression BY Expression WHEN Expression', function() {
486
+ return {
487
+ source: $2,
488
+ step: $4,
489
+ guard: $6
490
+ };
491
+ })
492
+ ],
493
+ Switch: [
494
+ o('SWITCH Expression INDENT Whens OUTDENT', function() {
495
+ return new Switch($2, $4);
496
+ }), o('SWITCH Expression INDENT Whens ELSE Block OUTDENT', function() {
497
+ return new Switch($2, $4, $6);
498
+ }), o('SWITCH INDENT Whens OUTDENT', function() {
499
+ return new Switch(null, $3);
500
+ }), o('SWITCH INDENT Whens ELSE Block OUTDENT', function() {
501
+ return new Switch(null, $3, $5);
502
+ })
503
+ ],
504
+ Whens: [
505
+ o('When'), o('Whens When', function() {
506
+ return $1.concat($2);
507
+ })
508
+ ],
509
+ When: [
510
+ o('LEADING_WHEN SimpleArgs Block', function() {
511
+ return [[$2, $3]];
512
+ }), o('LEADING_WHEN SimpleArgs Block TERMINATOR', function() {
513
+ return [[$2, $3]];
514
+ })
515
+ ],
516
+ IfBlock: [
517
+ o('IF Expression Block', function() {
518
+ return new If($2, $3, {
519
+ type: $1
520
+ });
521
+ }), o('IfBlock ELSE IF Expression Block', function() {
522
+ return $1.addElse(LOC(3, 5)(new If($4, $5, {
523
+ type: $3
524
+ })));
525
+ })
526
+ ],
527
+ If: [
528
+ o('IfBlock'), o('IfBlock ELSE Block', function() {
529
+ return $1.addElse($3);
530
+ }), o('Statement POST_IF Expression', function() {
531
+ return new If($3, LOC(1)(Block.wrap([$1])), {
532
+ type: $2,
533
+ statement: true
534
+ });
535
+ }), o('Expression POST_IF Expression', function() {
536
+ return new If($3, LOC(1)(Block.wrap([$1])), {
537
+ type: $2,
538
+ statement: true
539
+ });
540
+ })
541
+ ],
542
+ Operation: [
543
+ o('UNARY Expression', function() {
544
+ return new Op($1, $2);
545
+ }), o('UNARY_MATH Expression', function() {
546
+ return new Op($1, $2);
547
+ }), o('- Expression', (function() {
548
+ return new Op('-', $2);
549
+ }), {
550
+ prec: 'UNARY_MATH'
551
+ }), o('+ Expression', (function() {
552
+ return new Op('+', $2);
553
+ }), {
554
+ prec: 'UNARY_MATH'
555
+ }), o('-- SimpleAssignable', function() {
556
+ return new Op('--', $2);
557
+ }), o('++ SimpleAssignable', function() {
558
+ return new Op('++', $2);
559
+ }), o('SimpleAssignable --', function() {
560
+ return new Op('--', $1, null, true);
561
+ }), o('SimpleAssignable ++', function() {
562
+ return new Op('++', $1, null, true);
563
+ }), o('Expression ?', function() {
564
+ return new Existence($1);
565
+ }), o('Expression + Expression', function() {
566
+ return new Op('+', $1, $3);
567
+ }), o('Expression - Expression', function() {
568
+ return new Op('-', $1, $3);
569
+ }), o('Expression MATH Expression', function() {
570
+ return new Op($2, $1, $3);
571
+ }), o('Expression ** Expression', function() {
572
+ return new Op($2, $1, $3);
573
+ }), o('Expression SHIFT Expression', function() {
574
+ return new Op($2, $1, $3);
575
+ }), o('Expression COMPARE Expression', function() {
576
+ return new Op($2, $1, $3);
577
+ }), o('Expression LOGIC Expression', function() {
578
+ return new Op($2, $1, $3);
579
+ }), o('Expression RELATION Expression', function() {
580
+ if ($2.charAt(0) === '!') {
581
+ return new Op($2.slice(1), $1, $3).invert();
582
+ } else {
583
+ return new Op($2, $1, $3);
584
+ }
585
+ }), o('SimpleAssignable COMPOUND_ASSIGN Expression', function() {
586
+ return new Assign($1, $3, $2);
587
+ }), o('SimpleAssignable COMPOUND_ASSIGN INDENT Expression OUTDENT', function() {
588
+ return new Assign($1, $4, $2);
589
+ }), o('SimpleAssignable COMPOUND_ASSIGN TERMINATOR Expression', function() {
590
+ return new Assign($1, $4, $2);
591
+ }), o('SimpleAssignable EXTENDS Expression', function() {
592
+ return new Extends($1, $3);
593
+ })
594
+ ]
595
+ };
596
+
597
+ operators = [['left', '.', '?.', '::', '?::'], ['left', 'CALL_START', 'CALL_END'], ['nonassoc', '++', '--'], ['left', '?'], ['right', 'UNARY'], ['right', '**'], ['right', 'UNARY_MATH'], ['left', 'MATH'], ['left', '+', '-'], ['left', 'SHIFT'], ['left', 'RELATION'], ['left', 'COMPARE'], ['left', 'LOGIC'], ['nonassoc', 'INDENT', 'OUTDENT'], ['right', '=', ':', 'COMPOUND_ASSIGN', 'RETURN', 'THROW', 'EXTENDS'], ['right', 'FORIN', 'FOROF', 'BY', 'WHEN'], ['right', 'IF', 'ELSE', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'], ['left', 'POST_IF']];
598
+
599
+ tokens = [];
600
+
601
+ for (name in grammar) {
602
+ alternatives = grammar[name];
603
+ grammar[name] = (function() {
604
+ var _i, _j, _len, _len1, _ref, _results;
605
+ _results = [];
606
+ for (_i = 0, _len = alternatives.length; _i < _len; _i++) {
607
+ alt = alternatives[_i];
608
+ _ref = alt[0].split(' ');
609
+ for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
610
+ token = _ref[_j];
611
+ if (!grammar[token]) {
612
+ tokens.push(token);
613
+ }
614
+ }
615
+ if (name === 'Root') {
616
+ alt[1] = "return " + alt[1];
617
+ }
618
+ _results.push(alt);
619
+ }
620
+ return _results;
621
+ })();
622
+ }
623
+
624
+ exports.parser = new Parser({
625
+ tokens: tokens.join(' '),
626
+ bnf: grammar,
627
+ operators: operators.reverse(),
628
+ startSymbol: 'Root'
629
+ });
630
+
631
+ }).call(this);