resin 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. data/amber/bin/amberc +10 -350
  2. data/amber/js/Benchfib.deploy.js +80 -89
  3. data/amber/js/Benchfib.js +80 -89
  4. data/amber/js/Canvas.deploy.js +558 -545
  5. data/amber/js/Canvas.js +563 -545
  6. data/amber/js/Compiler-AST.deploy.js +431 -243
  7. data/amber/js/Compiler-AST.js +487 -244
  8. data/amber/js/Compiler-Core.deploy.js +201 -1045
  9. data/amber/js/Compiler-Core.js +208 -1207
  10. data/amber/js/Compiler-Exceptions.deploy.js +37 -18
  11. data/amber/js/Compiler-Exceptions.js +42 -18
  12. data/amber/js/Compiler-IR.deploy.js +1071 -774
  13. data/amber/js/Compiler-IR.js +1194 -848
  14. data/amber/js/Compiler-Inlining.deploy.js +395 -373
  15. data/amber/js/Compiler-Inlining.js +395 -373
  16. data/amber/js/Compiler-Interpreter.deploy.js +1202 -0
  17. data/amber/js/Compiler-Interpreter.js +1631 -0
  18. data/amber/js/Compiler-Semantic.deploy.js +695 -600
  19. data/amber/js/Compiler-Semantic.js +721 -611
  20. data/amber/js/Compiler-Tests.deploy.js +699 -376
  21. data/amber/js/Compiler-Tests.js +834 -381
  22. data/amber/js/Compiler.deploy.js +8563 -1805
  23. data/amber/js/Compiler.js +11476 -2633
  24. data/amber/js/Examples.deploy.js +29 -29
  25. data/amber/js/Examples.js +29 -29
  26. data/amber/js/IDE.deploy.js +3292 -2649
  27. data/amber/js/IDE.js +3318 -2710
  28. data/amber/js/Importer-Exporter.deploy.js +393 -349
  29. data/amber/js/Importer-Exporter.js +398 -354
  30. data/amber/js/Kernel-Announcements.deploy.js +53 -44
  31. data/amber/js/Kernel-Announcements.js +55 -44
  32. data/amber/js/Kernel-Classes.deploy.js +566 -368
  33. data/amber/js/Kernel-Classes.js +660 -402
  34. data/amber/js/Kernel-Collections.deploy.js +1149 -1098
  35. data/amber/js/Kernel-Collections.js +1183 -1116
  36. data/amber/js/Kernel-Exceptions.deploy.js +173 -75
  37. data/amber/js/Kernel-Exceptions.js +215 -77
  38. data/amber/js/Kernel-Methods.deploy.js +530 -313
  39. data/amber/js/Kernel-Methods.js +632 -338
  40. data/amber/js/Kernel-Objects.deploy.js +1734 -1577
  41. data/amber/js/Kernel-Objects.js +1867 -1654
  42. data/amber/js/Kernel-Tests.deploy.js +1416 -973
  43. data/amber/js/Kernel-Tests.js +1495 -981
  44. data/amber/js/Kernel-Transcript.deploy.js +23 -24
  45. data/amber/js/Kernel-Transcript.js +25 -26
  46. data/amber/js/SUnit-Tests.deploy.js +402 -0
  47. data/amber/js/SUnit-Tests.js +518 -0
  48. data/amber/js/SUnit.deploy.js +535 -237
  49. data/amber/js/SUnit.js +634 -246
  50. data/amber/js/amber.js +90 -53
  51. data/amber/js/boot.js +441 -255
  52. data/amber/js/init.js +1 -3
  53. data/amber/js/lib/CodeMirror/codemirror.css +3 -0
  54. data/amber/js/lib/CodeMirror/codemirror.js +104 -55
  55. data/amber/js/lib/peg-0.7.0.min.js +9 -0
  56. data/amber/js/parser.js +1504 -802
  57. data/amber/js/parser.pegjs +170 -165
  58. data/amber/st/Canvas.st +6 -0
  59. data/amber/st/Compiler-AST.st +54 -3
  60. data/amber/st/Compiler-Core.st +6 -551
  61. data/amber/st/Compiler-Exceptions.st +4 -0
  62. data/amber/st/Compiler-IR.st +205 -87
  63. data/amber/st/Compiler-Interpreter.st +597 -0
  64. data/amber/st/Compiler-Semantic.st +46 -21
  65. data/amber/st/Compiler-Tests.st +254 -7
  66. data/amber/st/Compiler.st +3172 -1541
  67. data/amber/st/IDE.st +57 -93
  68. data/amber/st/Importer-Exporter.st +4 -7
  69. data/amber/st/Kernel-Announcements.st +8 -0
  70. data/amber/st/Kernel-Classes.st +149 -40
  71. data/amber/st/Kernel-Collections.st +43 -32
  72. data/amber/st/Kernel-Exceptions.st +70 -1
  73. data/amber/st/Kernel-Methods.st +165 -27
  74. data/amber/st/Kernel-Objects.st +215 -140
  75. data/amber/st/Kernel-Tests.st +195 -10
  76. data/amber/st/Kernel-Transcript.st +1 -3
  77. data/amber/st/SUnit-Tests.st +186 -0
  78. data/amber/st/SUnit.st +186 -14
  79. data/bin/resin +6 -0
  80. data/lib/resin/cli.rb +19 -0
  81. metadata +41 -25
  82. data/amber/js/lib/peg-0.6.2.min.js +0 -2
  83. data/bin/resin-compile +0 -6
  84. data/bin/runresin +0 -12
@@ -1,2 +0,0 @@
1
- /* PEG.js 0.6.2 (http://pegjs.majda.cz/) */(function(){function contains(a,b){var c=a.length;for(var d=0;d<c;d++)if(a[d]===b)return!0;return!1}function each(a,b){var c=a.length;for(var d=0;d<c;d++)b(a[d])}function map(a,b){var c=[],d=a.length;for(var e=0;e<d;e++)c[e]=b(a[e]);return c}function padLeft(a,b,c){var d=a,e=c-a.length;for(var f=0;f<e;f++)d=b+d;return d}function escape(a){var b=a.charCodeAt(0);if(b<=255)var c="x",d=2;else var c="u",d=4;return"\\"+c+padLeft(b.toString(16).toUpperCase(),"0",d)}function quote(a){return'"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/[\x80-\uFFFF]/g,escape)+'"'}function quoteForRegexpClass(a){return a.replace(/\\/g,"\\\\").replace(/\0/g,"\\0").replace(/\//g,"\\/").replace(/]/g,"\\]").replace(/-/g,"\\-").replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/[\x80-\uFFFF]/g,escape)}function buildNodeVisitor(a){return function(b){return a[b.type].apply(null,arguments)}}var undefined,PEG={VERSION:"0.6.2",buildParser:function(a){return PEG.compiler.compile(PEG.parser.parse(a))}};PEG.GrammarError=function(a){this.name="PEG.GrammarError",this.message=a},PEG.GrammarError.prototype=Error.prototype,PEG.parser=function(){var a={parse:function(a,b){function i(a,b,c){var d=a,e=c-a.length;for(var f=0;f<e;f++)d=b+d;return d}function j(a){var b=a.charCodeAt(0);if(b<=255)var c="x",d=2;else var c="u",d=4;return"\\"+c+i(b.toString(16).toUpperCase(),"0",d)}function k(a){return'"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/[\x80-\uFFFF]/g,j)+'"'}function l(a){if(d<f)return;d>f&&(f=d,g=[]),g.push(a)}function m(){var a="grammar@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=d,e=d,f=bg();if(f!==null){var g=n(),i=g!==null?g:"";if(i!==null){var j=o();if(j!==null){var k=[];while(j!==null){k.push(j);var j=o()}}else var k=null;if(k!==null)var l=[f,i,k];else{var l=null;d=e}}else{var l=null;d=e}}else{var l=null;d=e}var m=l!==null?function(a,b){var c={};return each(b,function(a){c[a.name]=a}),{type:"grammar",initializer:a!==""?a:null,rules:c,startRule:b[0].name}}(l[1],l[2]):null;if(m!==null)var p=m;else{var p=null;d=c}return h[a]={nextPos:d,result:p},p}function n(){var a="initializer@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=d,e=d,f=v();if(f!==null){var g=B(),i=g!==null?g:"";if(i!==null)var j=[f,i];else{var j=null;d=e}}else{var j=null;d=e}var k=j!==null?function(a){return{type:"initializer",code:a}}(j[0]):null;if(k!==null)var l=k;else{var l=null;d=c}return h[a]={nextPos:d,result:l},l}function o(){var b="rule@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d,i=L();if(i!==null){var j=M();if(j!==null)var k=j;else{if(a.substr(d,0)===""){var m="";d+=0}else{var m=null;e&&l('""')}if(m!==null)var k=m;else var k=null}if(k!==null){var n=z();if(n!==null){var o=p();if(o!==null){var q=B(),r=q!==null?q:"";if(r!==null)var s=[i,k,n,o,r];else{var s=null;d=g}}else{var s=null;d=g}}else{var s=null;d=g}}else{var s=null;d=g}}else{var s=null;d=g}var t=s!==null?function(a,b,c){return{type:"rule",name:a,displayName:b!==""?b:null,expression:c}}(s[0],s[1],s[3]):null;if(t!==null)var u=t;else{var u=null;d=f}return h[b]={nextPos:d,result:u},u}function p(){var a="choice@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=d,e=d,f=q();if(f!==null){var g=[],i=d,j=C();if(j!==null){var k=q();if(k!==null)var l=[j,k];else{var l=null;d=i}}else{var l=null;d=i}while(l!==null){g.push(l);var i=d,j=C();if(j!==null){var k=q();if(k!==null)var l=[j,k];else{var l=null;d=i}}else{var l=null;d=i}}if(g!==null)var m=[f,g];else{var m=null;d=e}}else{var m=null;d=e}var n=m!==null?function(a,b){if(b.length>0){var c=[a].concat(map(b,function(a){return a[1]}));return{type:"choice",alternatives:c}}return a}(m[0],m[1]):null;if(n!==null)var o=n;else{var o=null;d=c}return h[a]={nextPos:d,result:o},o}function q(){var a="sequence@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=d,e=d,f=[],g=r();while(g!==null){f.push(g);var g=r()}if(f!==null){var i=v();if(i!==null)var j=[f,i];else{var j=null;d=e}}else{var j=null;d=e}var k=j!==null?function(a,b){var c=a.length!=1?{type:"sequence",elements:a}:a[0];return{type:"action",expression:c,code:b}}(j[0],j[1]):null;if(k!==null)var l=k;else{var l=null;d=c}if(l!==null)var m=l;else{var n=d,o=[],p=r();while(p!==null){o.push(p);var p=r()}var q=o!==null?function(a){return a.length!=1?{type:"sequence",elements:a}:a[0]}(o):null;if(q!==null)var s=q;else{var s=null;d=n}if(s!==null)var m=s;else var m=null}return h[a]={nextPos:d,result:m},m}function r(){var a="labeled@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=d,e=d,f=L();if(f!==null){var g=A();if(g!==null){var i=s();if(i!==null)var j=[f,g,i];else{var j=null;d=e}}else{var j=null;d=e}}else{var j=null;d=e}var k=j!==null?function(a,b){return{type:"labeled",label:a,expression:b}}(j[0],j[2]):null;if(k!==null)var l=k;else{var l=null;d=c}if(l!==null)var m=l;else{var n=s();if(n!==null)var m=n;else var m=null}return h[a]={nextPos:d,result:m},m}function s(){var a="prefixed@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=d,e=d,f=D();if(f!==null){var g=v();if(g!==null)var i=[f,g];else{var i=null;d=e}}else{var i=null;d=e}var j=i!==null?function(a){return{type:"semantic_and",code:a}}(i[1]):null;if(j!==null)var k=j;else{var k=null;d=c}if(k!==null)var l=k;else{var m=d,n=d,o=D();if(o!==null){var p=t();if(p!==null)var q=[o,p];else{var q=null;d=n}}else{var q=null;d=n}var r=q!==null?function(a){return{type:"simple_and",expression:a}}(q[1]):null;if(r!==null)var s=r;else{var s=null;d=m}if(s!==null)var l=s;else{var u=d,w=d,x=E();if(x!==null){var y=v();if(y!==null)var z=[x,y];else{var z=null;d=w}}else{var z=null;d=w}var A=z!==null?function(a){return{type:"semantic_not",code:a}}(z[1]):null;if(A!==null)var B=A;else{var B=null;d=u}if(B!==null)var l=B;else{var C=d,F=d,G=E();if(G!==null){var H=t();if(H!==null)var I=[G,H];else{var I=null;d=F}}else{var I=null;d=F}var J=I!==null?function(a){return{type:"simple_not",expression:a}}(I[1]):null;if(J!==null)var K=J;else{var K=null;d=C}if(K!==null)var l=K;else{var L=t();if(L!==null)var l=L;else var l=null}}}}return h[a]={nextPos:d,result:l},l}function t(){var a="suffixed@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=d,e=d,f=u();if(f!==null){var g=F();if(g!==null)var i=[f,g];else{var i=null;d=e}}else{var i=null;d=e}var j=i!==null?function(a){return{type:"optional",expression:a}}(i[0]):null;if(j!==null)var k=j;else{var k=null;d=c}if(k!==null)var l=k;else{var m=d,n=d,o=u();if(o!==null){var p=G();if(p!==null)var q=[o,p];else{var q=null;d=n}}else{var q=null;d=n}var r=q!==null?function(a){return{type:"zero_or_more",expression:a}}(q[0]):null;if(r!==null)var s=r;else{var s=null;d=m}if(s!==null)var l=s;else{var t=d,v=d,w=u();if(w!==null){var x=H();if(x!==null)var y=[w,x];else{var y=null;d=v}}else{var y=null;d=v}var z=y!==null?function(a){return{type:"one_or_more",expression:a}}(y[0]):null;if(z!==null)var A=z;else{var A=null;d=t}if(A!==null)var l=A;else{var B=u();if(B!==null)var l=B;else var l=null}}}return h[a]={nextPos:d,result:l},l}function u(){var b="primary@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d,i=L();if(i!==null){var j=d,k=e;e=!1;var m=d,n=M();if(n!==null)var o=n;else{if(a.substr(d,0)===""){var q="";d+=0}else{var q=null;e&&l('""')}if(q!==null)var o=q;else var o=null}if(o!==null){var r=z();if(r!==null)var s=[o,r];else{var s=null;d=m}}else{var s=null;d=m}e=k;if(s===null)var t="";else{var t=null;d=j}if(t!==null)var u=[i,t];else{var u=null;d=g}}else{var u=null;d=g}var v=u!==null?function(a){return{type:"rule_ref",name:a}}(u[0]):null;if(v!==null)var w=v;else{var w=null;d=f}if(w!==null)var x=w;else{var y=d,A=M(),B=A!==null?function(a){return{type:"literal",value:a}}(A):null;if(B!==null)var C=B;else{var C=null;d=y}if(C!==null)var x=C;else{var D=d,E=K(),F=E!==null?function(){return{type:"any"}}():null;if(F!==null)var G=F;else{var G=null;d=D}if(G!==null)var x=G;else{var H=T();if(H!==null)var x=H;else{var N=d,O=d,P=I();if(P!==null){var Q=p();if(Q!==null){var R=J();if(R!==null)var S=[P,Q,R];else{var S=null;d=O}}else{var S=null;d=O}}else{var S=null;d=O}var U=S!==null?function(a){return a}(S[1]):null;if(U!==null)var V=U;else{var V=null;d=N}if(V!==null)var x=V;else var x=null}}}}return h[b]={nextPos:d,result:x},x}function v(){var a="action@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=e;e=!1;var f=d,g=d,i=w();if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(a){return a.substr(1,a.length-2)}(k[0]):null;if(m!==null)var n=m;else{var n=null;d=f}return e=c,e&&n===null&&l("action"),h[a]={nextPos:d,result:n},n}function w(){var b="braced@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="{"){var i="{";d+=1}else{var i=null;e&&l('"{"')}if(i!==null){var j=[],k=w();if(k!==null)var m=k;else{var n=y();if(n!==null)var m=n;else var m=null}while(m!==null){j.push(m);var k=w();if(k!==null)var m=k;else{var n=y();if(n!==null)var m=n;else var m=null}}if(j!==null){if(a.substr(d,1)==="}"){var o="}";d+=1}else{var o=null;e&&l('"}"')}if(o!==null)var p=[i,j,o];else{var p=null;d=g}}else{var p=null;d=g}}else{var p=null;d=g}var q=p!==null?function(a){return"{"+a.join("")+"}"}(p[1]):null;if(q!==null)var r=q;else{var r=null;d=f}return h[b]={nextPos:d,result:r},r}function x(){var a="nonBraceCharacters@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=d,e=y();if(e!==null){var f=[];while(e!==null){f.push(e);var e=y()}}else var f=null;var g=f!==null?function(a){return a.join("")}(f):null;if(g!==null)var i=g;else{var i=null;d=c}return h[a]={nextPos:d,result:i},i}function y(){var b="nonBraceCharacter@"+d,c=h[b];if(c)return d=c.nextPos,c.result;if(a.substr(d).match(/^[^{}]/)!==null){var f=a.charAt(d);d++}else{var f=null;e&&l("[^{}]")}return h[b]={nextPos:d,result:f},f}function z(){var b="equals@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="="){var i="=";d+=1}else{var i=null;e&&l('"="')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return"="}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function A(){var b="colon@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)===":"){var i=":";d+=1}else{var i=null;e&&l('":"')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return":"}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function B(){var b="semicolon@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)===";"){var i=";";d+=1}else{var i=null;e&&l('";"')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return";"}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function C(){var b="slash@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="/"){var i="/";d+=1}else{var i=null;e&&l('"/"')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return"/"}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function D(){var b="and@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="&"){var i="&";d+=1}else{var i=null;e&&l('"&"')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return"&"}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function E(){var b="not@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="!"){var i="!";d+=1}else{var i=null;e&&l('"!"')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return"!"}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function F(){var b="question@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="?"){var i="?";d+=1}else{var i=null;e&&l('"?"')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return"?"}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function G(){var b="star@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="*"){var i="*";d+=1}else{var i=null;e&&l('"*"')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return"*"}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function H(){var b="plus@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="+"){var i="+";d+=1}else{var i=null;e&&l('"+"')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return"+"}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function I(){var b="lparen@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="("){var i="(";d+=1}else{var i=null;e&&l('"("')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return"("}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function J(){var b="rparen@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)===")"){var i=")";d+=1}else{var i=null;e&&l('")"')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return")"}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function K(){var b="dot@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="."){var i=".";d+=1}else{var i=null;e&&l('"."')}if(i!==null){var j=bg();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(){return"."}():null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function L(){var b="identifier@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=e;e=!1;var g=d,i=d,j=bd();if(j!==null)var k=j;else{if(a.substr(d,1)==="_"){var m="_";d+=1}else{var m=null;e&&l('"_"')}if(m!==null)var k=m;else{if(a.substr(d,1)==="$"){var n="$";d+=1}else{var n=null;e&&l('"$"')}if(n!==null)var k=n;else var k=null}}if(k!==null){var o=[],p=bd();if(p!==null)var q=p;else{var r=bb();if(r!==null)var q=r;else{if(a.substr(d,1)==="_"){var s="_";d+=1}else{var s=null;e&&l('"_"')}if(s!==null)var q=s;else{if(a.substr(d,1)==="$"){var t="$";d+=1}else{var t=null;e&&l('"$"')}if(t!==null)var q=t;else var q=null}}}while(q!==null){o.push(q);var p=bd();if(p!==null)var q=p;else{var r=bb();if(r!==null)var q=r;else{if(a.substr(d,1)==="_"){var s="_";d+=1}else{var s=null;e&&l('"_"')}if(s!==null)var q=s;else{if(a.substr(d,1)==="$"){var t="$";d+=1}else{var t=null;e&&l('"$"')}if(t!==null)var q=t;else var q=null}}}}if(o!==null){var u=bg();if(u!==null)var v=[k,o,u];else{var v=null;d=i}}else{var v=null;d=i}}else{var v=null;d=i}var w=v!==null?function(a,b){return a+b.join("")}(v[0],v[1]):null;if(w!==null)var x=w;else{var x=null;d=g}return e=f,e&&x===null&&l("identifier"),h[b]={nextPos:d,result:x},x}function M(){var a="literal@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=e;e=!1;var f=d,g=d,i=N();if(i!==null)var j=i;else{var k=Q();if(k!==null)var j=k;else var j=null}if(j!==null){var m=bg();if(m!==null)var n=[j,m];else{var n=null;d=g}}else{var n=null;d=g}var o=n!==null?function(a){return a}(n[0]):null;if(o!==null)var p=o;else{var p=null;d=f}return e=c,e&&p===null&&l("literal"),h[a]={nextPos:d,result:p},p}function N(){var b="doubleQuotedLiteral@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==='"'){var i='"';d+=1}else{var i=null;e&&l('"\\""')}if(i!==null){var j=[],k=O();while(k!==null){j.push(k);var k=O()}if(j!==null){if(a.substr(d,1)==='"'){var m='"';d+=1}else{var m=null;e&&l('"\\""')}if(m!==null)var n=[i,j,m];else{var n=null;d=g}}else{var n=null;d=g}}else{var n=null;d=g}var o=n!==null?function(a){return a.join("")}(n[1]):null;if(o!==null)var p=o;else{var p=null;d=f}return h[b]={nextPos:d,result:p},p}function O(){var a="doubleQuotedCharacter@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=P();if(c!==null)var e=c;else{var f=Y();if(f!==null)var e=f;else{var g=Z();if(g!==null)var e=g;else{var i=$();if(i!==null)var e=i;else{var j=_();if(j!==null)var e=j;else{var k=ba();if(k!==null)var e=k;else var e=null}}}}}return h[a]={nextPos:d,result:e},e}function P(){var b="simpleDoubleQuotedCharacter@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d,i=d,j=e;e=!1;if(a.substr(d,1)==='"'){var k='"';d+=1}else{var k=null;e&&l('"\\""')}if(k!==null)var m=k;else{if(a.substr(d,1)==="\\"){var n="\\";d+=1}else{var n=null;e&&l('"\\\\"')}if(n!==null)var m=n;else{var o=bl();if(o!==null)var m=o;else var m=null}}e=j;if(m===null)var p="";else{var p=null;d=i}if(p!==null){if(a.length>d){var q=a.charAt(d);d++}else{var q=null;e&&l("any character")}if(q!==null)var r=[p,q];else{var r=null;d=g}}else{var r=null;d=g}var s=r!==null?function(a){return a}(r[1]):null;if(s!==null)var t=s;else{var t=null;d=f}return h[b]={nextPos:d,result:t},t}function Q(){var b="singleQuotedLiteral@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="'"){var i="'";d+=1}else{var i=null;e&&l('"\'"')}if(i!==null){var j=[],k=R();while(k!==null){j.push(k);var k=R()}if(j!==null){if(a.substr(d,1)==="'"){var m="'";d+=1}else{var m=null;e&&l('"\'"')}if(m!==null)var n=[i,j,m];else{var n=null;d=g}}else{var n=null;d=g}}else{var n=null;d=g}var o=n!==null?function(a){return a.join("")}(n[1]):null;if(o!==null)var p=o;else{var p=null;d=f}return h[b]={nextPos:d,result:p},p}function R(){var a="singleQuotedCharacter@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=S();if(c!==null)var e=c;else{var f=Y();if(f!==null)var e=f;else{var g=Z();if(g!==null)var e=g;else{var i=$();if(i!==null)var e=i;else{var j=_();if(j!==null)var e=j;else{var k=ba();if(k!==null)var e=k;else var e=null}}}}}return h[a]={nextPos:d,result:e},e}function S(){var b="simpleSingleQuotedCharacter@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d,i=d,j=e;e=!1;if(a.substr(d,1)==="'"){var k="'";d+=1}else{var k=null;e&&l('"\'"')}if(k!==null)var m=k;else{if(a.substr(d,1)==="\\"){var n="\\";d+=1}else{var n=null;e&&l('"\\\\"')}if(n!==null)var m=n;else{var o=bl();if(o!==null)var m=o;else var m=null}}e=j;if(m===null)var p="";else{var p=null;d=i}if(p!==null){if(a.length>d){var q=a.charAt(d);d++}else{var q=null;e&&l("any character")}if(q!==null)var r=[p,q];else{var r=null;d=g}}else{var r=null;d=g}var s=r!==null?function(a){return a}(r[1]):null;if(s!==null)var t=s;else{var t=null;d=f}return h[b]={nextPos:d,result:t},t}function T(){var b="class@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=e;e=!1;var g=d,i=d;if(a.substr(d,1)==="["){var j="[";d+=1}else{var j=null;e&&l('"["')}if(j!==null){if(a.substr(d,1)==="^"){var k="^";d+=1}else{var k=null;e&&l('"^"')}var m=k!==null?k:"";if(m!==null){var n=[],o=U();if(o!==null)var p=o;else{var q=V();if(q!==null)var p=q;else var p=null}while(p!==null){n.push(p);var o=U();if(o!==null)var p=o;else{var q=V();if(q!==null)var p=q;else var p=null}}if(n!==null){if(a.substr(d,1)==="]"){var r="]";d+=1}else{var r=null;e&&l('"]"')}if(r!==null){var s=bg();if(s!==null)var t=[j,m,n,r,s];else{var t=null;d=i}}else{var t=null;d=i}}else{var t=null;d=i}}else{var t=null;d=i}}else{var t=null;d=i}var u=t!==null?function(a,b){var c=map(b,function(a){return a.data}),d="["+a+map(b,function(a){return a.rawText}).join("")+"]";return{type:"class",inverted:a==="^",parts:c,rawText:d}}(t[1],t[2]):null;if(u!==null)var v=u;else{var v=null;d=g}return e=f,e&&v===null&&l("character class"),h[b]={nextPos:d,result:v},v}function U(){var b="classCharacterRange@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d,i=V();if(i!==null){if(a.substr(d,1)==="-"){var j="-";d+=1}else{var j=null;e&&l('"-"')}if(j!==null){var k=V();if(k!==null)var m=[i,j,k];else{var m=null;d=g}}else{var m=null;d=g}}else{var m=null;d=g}var n=m!==null?function(a,b){if(a.data.charCodeAt(0)>b.data.charCodeAt(0))throw new this.SyntaxError("Invalid character range: "+a.rawText+"-"+b.rawText+".");return{data:[a.data,b.data],rawText:a.rawText+"-"+b.rawText}}(m[0],m[2]):null;if(n!==null)var o=n;else{var o=null;d=f}return h[b]={nextPos:d,result:o},o}function V(){var a="classCharacter@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=d,e=W(),f=e!==null?function(a){return{data:a,rawText:quoteForRegexpClass(a)}}(e):null;if(f!==null)var g=f;else{var g=null;d=c}return h[a]={nextPos:d,result:g},g}function W(){var a="bracketDelimitedCharacter@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=X();if(c!==null)var e=c;else{var f=Y();if(f!==null)var e=f;else{var g=Z();if(g!==null)var e=g;else{var i=$();if(i!==null)var e=i;else{var j=_();if(j!==null)var e=j;else{var k=ba();if(k!==null)var e=k;else var e=null}}}}}return h[a]={nextPos:d,result:e},e}function X(){var b="simpleBracketDelimitedCharacter@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d,i=d,j=e;e=!1;if(a.substr(d,1)==="]"){var k="]";d+=1}else{var k=null;e&&l('"]"')}if(k!==null)var m=k;else{if(a.substr(d,1)==="\\"){var n="\\";d+=1}else{var n=null;e&&l('"\\\\"')}if(n!==null)var m=n;else{var o=bl();if(o!==null)var m=o;else var m=null}}e=j;if(m===null)var p="";else{var p=null;d=i}if(p!==null){if(a.length>d){var q=a.charAt(d);d++}else{var q=null;e&&l("any character")}if(q!==null)var r=[p,q];else{var r=null;d=g}}else{var r=null;d=g}var s=r!==null?function(a){return a}(r[1]):null;if(s!==null)var t=s;else{var t=null;d=f}return h[b]={nextPos:d,result:t},t}function Y(){var b="simpleEscapeSequence@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="\\"){var i="\\";d+=1}else{var i=null;e&&l('"\\\\"')}if(i!==null){var j=d,k=e;e=!1;var m=bb();if(m!==null)var n=m;else{if(a.substr(d,1)==="x"){var o="x";d+=1}else{var o=null;e&&l('"x"')}if(o!==null)var n=o;else{if(a.substr(d,1)==="u"){var p="u";d+=1}else{var p=null;e&&l('"u"')}if(p!==null)var n=p;else{var q=bl();if(q!==null)var n=q;else var n=null}}}e=k;if(n===null)var r="";else{var r=null;d=j}if(r!==null){if(a.length>d){var s=a.charAt(d);d++}else{var s=null;e&&l("any character")}if(s!==null)var t=[i,r,s];else{var t=null;d=g}}else{var t=null;d=g}}else{var t=null;d=g}var u=t!==null?function(a){return a.replace("b","\b").replace("f","\f").replace("n","\n").replace("r","\r").replace("t","\t").replace("v"," ")}(t[2]):null;if(u!==null)var v=u;else{var v=null;d=f}return h[b]={nextPos:d,result:v},v}function Z(){var b="zeroEscapeSequence@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,2)==="\\0"){var i="\\0";d+=2}else{var i=null;e&&l('"\\\\0"')}if(i!==null){var j=d,k=e;e=!1;var m=bb();e=k;if(m===null)var n="";else{var n=null;d=j}if(n!==null)var o=[i,n];else{var o=null;d=g}}else{var o=null;d=g}var p=o!==null?function(){return""}():null;if(p!==null)var q=p;else{var q=null;d=f}return h[b]={nextPos:d,result:q},q}function $(){var b="hexEscapeSequence@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,2)==="\\x"){var i="\\x";d+=2}else{var i=null;e&&l('"\\\\x"')}if(i!==null){var j=bc();if(j!==null){var k=bc();if(k!==null)var m=[i,j,k];else{var m=null;d=g}}else{var m=null;d=g}}else{var m=null;d=g}var n=m!==null?function(a,b){return String.fromCharCode(parseInt("0x"+a+b))}(m[1],m[2]):null;if(n!==null)var o=n;else{var o=null;d=f}return h[b]={nextPos:d,result:o},o}function _(){var b="unicodeEscapeSequence@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,2)==="\\u"){var i="\\u";d+=2}else{var i=null;e&&l('"\\\\u"')}if(i!==null){var j=bc();if(j!==null){var k=bc();if(k!==null){var m=bc();if(m!==null){var n=bc();if(n!==null)var o=[i,j,k,m,n];else{var o=null;d=g}}else{var o=null;d=g}}else{var o=null;d=g}}else{var o=null;d=g}}else{var o=null;d=g}var p=o!==null?function(a,b,c,d){return String.fromCharCode(parseInt("0x"+a+b+c+d))}(o[1],o[2],o[3],o[4]):null;if(p!==null)var q=p;else{var q=null;d=f}return h[b]={nextPos:d,result:q},q}function ba(){var b="eolEscapeSequence@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="\\"){var i="\\";d+=1}else{var i=null;e&&l('"\\\\"')}if(i!==null){var j=bk();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(a){return a}(k[1]):null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function bb(){var b="digit@"+d,c=h[b];if(c)return d=c.nextPos,c.result;if(a.substr(d).match(/^[0-9]/)!==null){var f=a.charAt(d);d++}else{var f=null;e&&l("[0-9]")}return h[b]={nextPos:d,result:f},f}function bc(){var b="hexDigit@"+d,c=h[b];if(c)return d=c.nextPos,c.result;if(a.substr(d).match(/^[0-9a-fA-F]/)!==null){var f=a.charAt(d);d++}else{var f=null;e&&l("[0-9a-fA-F]")}return h[b]={nextPos:d,result:f},f}function bd(){var a="letter@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=be();if(c!==null)var e=c;else{var f=bf();if(f!==null)var e=f;else var e=null}return h[a]={nextPos:d,result:e},e}function be(){var b="lowerCaseLetter@"+d,c=h[b];if(c)return d=c.nextPos,c.result;if(a.substr(d).match(/^[a-z]/)!==null){var f=a.charAt(d);d++}else{var f=null;e&&l("[a-z]")}return h[b]={nextPos:d,result:f},f}function bf(){var b="upperCaseLetter@"+d,c=h[b];if(c)return d=c.nextPos,c.result;if(a.substr(d).match(/^[A-Z]/)!==null){var f=a.charAt(d);d++}else{var f=null;e&&l("[A-Z]")}return h[b]={nextPos:d,result:f},f}function bg(){var a="__@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=[],e=bm();if(e!==null)var f=e;else{var g=bk();if(g!==null)var f=g;else{var i=bh();if(i!==null)var f=i;else var f=null}}while(f!==null){c.push(f);var e=bm();if(e!==null)var f=e;else{var g=bk();if(g!==null)var f=g;else{var i=bh();if(i!==null)var f=i;else var f=null}}}return h[a]={nextPos:d,result:c},c}function bh(){var a="comment@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=e;e=!1;var f=bi();if(f!==null)var g=f;else{var i=bj();if(i!==null)var g=i;else var g=null}return e=c,e&&g===null&&l("comment"),h[a]={nextPos:d,result:g},g}function bi(){var b="singleLineComment@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d;if(a.substr(d,2)==="//"){var g="//";d+=2}else{var g=null;e&&l('"//"')}if(g!==null){var i=[],j=d,k=d,m=e;e=!1;var n=bl();e=m;if(n===null)var o="";else{var o=null;d=k}if(o!==null){if(a.length>d){var p=a.charAt(d);d++}else{var p=null;e&&l("any character")}if(p!==null)var q=[o,p];else{var q=null;d=j}}else{var q=null;d=j}while(q!==null){i.push(q);var j=d,k=d,m=e;e=!1;var n=bl();e=m;if(n===null)var o="";else{var o=null;d=k}if(o!==null){if(a.length>d){var p=a.charAt(d);d++}else{var p=null;e&&l("any character")}if(p!==null)var q=[o,p];else{var q=null;d=j}}else{var q=null;d=j}}if(i!==null)var r=[g,i];else{var r=null;d=f}}else{var r=null;d=f}return h[b]={nextPos:d,result:r},r}function bj(){var b="multiLineComment@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d;if(a.substr(d,2)==="/*"){var g="/*";d+=2}else{var g=null;e&&l('"/*"')}if(g!==null){var i=[],j=d,k=d,m=e;e=!1;if(a.substr(d,2)==="*/"){var n="*/";d+=2}else{var n=null;e&&l('"*/"')}e=m;if(n===null)var o="";else{var o=null;d=k}if(o!==null){if(a.length>d){var p=a.charAt(d);d++}else{var p=null;e&&l("any character")}if(p!==null)var q=[o,p];else{var q=null;d=j}}else{var q=null;d=j}while(q!==null){i.push(q);var j=d,k=d,m=e;e=!1;if(a.substr(d,2)==="*/"){var n="*/";d+=2}else{var n=null;e&&l('"*/"')}e=m;if(n===null)var o="";else{var o=null;d=k}if(o!==null){if(a.length>d){var p=a.charAt(d);d++}else{var p=null;e&&l("any character")}if(p!==null)var q=[o,p];else{var q=null;d=j}}else{var q=null;d=j}}if(i!==null){if(a.substr(d,2)==="*/"){var r="*/";d+=2}else{var r=null;e&&l('"*/"')}if(r!==null)var s=[g,i,r];else{var s=null;d=f}}else{var s=null;d=f}}else{var s=null;d=f}return h[b]={nextPos:d,result:s},s}function bk(){var b="eol@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=e;e=!1;if(a.substr(d,1)==="\n"){var g="\n";d+=1}else{var g=null;e&&l('"\\n"')}if(g!==null)var i=g;else{if(a.substr(d,2)==="\r\n"){var j="\r\n";d+=2}else{var j=null;e&&l('"\\r\\n"')}if(j!==null)var i=j;else{if(a.substr(d,1)==="\r"){var k="\r";d+=1}else{var k=null;e&&l('"\\r"')}if(k!==null)var i=k;else{if(a.substr(d,1)==="\u2028"){var m="\u2028";d+=1}else{var m=null;e&&l('"\\u2028"')}if(m!==null)var i=m;else{if(a.substr(d,1)==="\u2029"){var n="\u2029";d+=1}else{var n=null;e&&l('"\\u2029"')}if(n!==null)var i=n;else var i=null}}}}return e=f,e&&i===null&&l("end of line"),h[b]={nextPos:d,result:i},i}function bl(){var b="eolChar@"+d,c=h[b];if(c)return d=c.nextPos,c.result;if(a.substr(d).match(/^[\n\r\u2028\u2029]/)!==null){var f=a.charAt(d);d++}else{var f=null;e&&l("[\\n\\r\\u2028\\u2029]")}return h[b]={nextPos:d,result:f},f}function bm(){var b="whitespace@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=e;e=!1;if(a.substr(d).match(/^[ \xA0\uFEFF\u1680\u180E\u2000-\u200A\u202F\u205F\u3000]/)!==null){var g=a.charAt(d);d++}else{var g=null;e&&l("[ \t \f\\xA0\\uFEFF\\u1680\\u180E\\u2000-\\u200A\\u202F\\u205F\\u3000]")}return e=f,e&&g===null&&l("whitespace"),h[b]={nextPos:d,result:g},g}function bn(){function b(a){a.sort();var b=null,c=[];for(var d=0;d<a.length;d++)a[d]!==b&&(c.push(a[d]),b=a[d]);switch(c.length){case 0:return"end of input";case 1:return c[0];default:return c.slice(0,c.length-1).join(", ")+" or "+c[c.length-1]}}var c=b(g),e=Math.max(d,f),h=e<a.length?k(a.charAt(e)):"end of input";return"Expected "+c+" but "+h+" found."}function bo(){var b=1,c=1,d=!1;for(var e=0;e<f;e++){var g=a.charAt(e);g==="\n"?(d||b++,c=1,d=!1):g==="\r"|g==="\u2028"||g==="\u2029"?(b++,c=1,d=!0):(c++,d=!1)}return{line:b,column:c}}var c={__:bg,action:v,and:D,braced:w,bracketDelimitedCharacter:W,choice:p,"class":T,classCharacter:V,classCharacterRange:U,colon:A,comment:bh,digit:bb,dot:K,doubleQuotedCharacter:O,doubleQuotedLiteral:N,eol:bk,eolChar:bl,eolEscapeSequence:ba,equals:z,grammar:m,hexDigit:bc,hexEscapeSequence:$,identifier:L,initializer:n,labeled:r,letter:bd,literal:M,lowerCaseLetter:be,lparen:I,multiLineComment:bj,nonBraceCharacter:y,nonBraceCharacters:x,not:E,plus:H,prefixed:s,primary:u,question:F,rparen:J,rule:o,semicolon:B,sequence:q,simpleBracketDelimitedCharacter:X,simpleDoubleQuotedCharacter:P,simpleEscapeSequence:Y,simpleSingleQuotedCharacter:S,singleLineComment:bi,singleQuotedCharacter:R,singleQuotedLiteral:Q,slash:C,star:G,suffixed:t,unicodeEscapeSequence:_,upperCaseLetter:bf,whitespace:bm,zeroEscapeSequence:Z};if(b!==undefined){if(c[b]===undefined)throw new Error("Invalid rule name: "+k(b)+".")}else b="grammar";var d=0,e=!0,f=0,g=[],h={},bp=c[b]();if(bp===null||d!==a.length){var bq=bo();throw new this.SyntaxError(bn(),bq.line,bq.column)}return bp},toSource:function(){return this._source}};return a.SyntaxError=function(a,b,c){this.name="SyntaxError",this.message=a,this.line=b,this.column=c},a.SyntaxError.prototype=Error.prototype,a}(),PEG.compiler={compile:function(ast){var CHECK_NAMES=["missingReferencedRules","leftRecursion"],PASS_NAMES=["proxyRules"];for(var i=0;i<CHECK_NAMES.length;i++)this.checks[CHECK_NAMES[i]](ast);for(var i=0;i<PASS_NAMES.length;i++)ast=this.passes[PASS_NAMES[i]](ast);var source=this.emitter(ast),result=eval(source);return result._source=source,result}},PEG.compiler.checks={missingReferencedRules:function(a){function b(){}function c(a){e(a.expression)}function d(a){return function(b){each(b[a],e)}}var e=buildNodeVisitor({grammar:function(a){for(var b in a.rules)e(a.rules[b])},rule:c,choice:d("alternatives"),sequence:d("elements"),labeled:c,simple_and:c,simple_not:c,semantic_and:b,semantic_not:b,optional:c,zero_or_more:c,one_or_more:c,action:c,rule_ref:function(b){if(a.rules[b.name]===undefined)throw new PEG.GrammarError('Referenced rule "'+b.name+'" does not exist.')},literal:b,any:b,"class":b});e(a)},leftRecursion:function(a){function b(){}function c(a,b){d(a.expression,b)}var d=buildNodeVisitor({grammar:function(a,b){for(var c in a.rules)d(a.rules[c],b)},rule:function(a,b){d(a.expression,b.concat(a.name))},choice:function(a,b){each(a.alternatives,function(a){d(a,b)})},sequence:function(a,b){a.elements.length>0&&d(a.elements[0],b)},labeled:c,simple_and:c,simple_not:c,semantic_and:b,semantic_not:b,optional:c,zero_or_more:c,one_or_more:c,action:c,rule_ref:function(b,c){if(contains(c,b.name))throw new PEG.GrammarError('Left recursion detected for rule "'+b.name+'".');d(a.rules[b.name],c)},literal:b,any:b,"class":b});d(a,[])}},PEG.compiler.passes={proxyRules:function(a){function b(a){return a.type==="rule"&&a.expression.type==="rule_ref"}function c(a,b,c){function d(){}function e(a,b,c){g(a.expression,b,c)}function f(a){return function(b,c,d){each(b[a],function(a){g(a,c,d)})}}var g=buildNodeVisitor({grammar:function(a,b,c){for(var d in a.rules)
2
- g(a.rules[d],b,c)},rule:e,choice:f("alternatives"),sequence:f("elements"),labeled:e,simple_and:e,simple_not:e,semantic_and:d,semantic_not:d,optional:e,zero_or_more:e,one_or_more:e,action:e,rule_ref:function(a,b,c){a.name===b&&(a.name=c)},literal:d,any:d,"class":d});g(a,b,c)}for(var d in a.rules)b(a.rules[d])&&(c(a,a.rules[d].name,a.rules[d].expression.name),d===a.startRule&&(a.startRule=a.rules[d].expression.name),delete a.rules[d]);return a}},PEG.compiler.emitter=function(a){function b(){function a(a){return map(a,function(a){return a.replace(/\$\{([a-zA-Z_][a-zA-Z0-9_]*)(\|([a-zA-Z_][a-zA-Z0-9_]*))?\}/g,function(a,b,c,e){var f=d[b];if(f===undefined)throw new Error('Undefined variable: "'+b+'".');if(e!==undefined&&e!=""){if(e==="string")return quote(f);throw new Error('Unrecognized filter: "'+e+'".')}return f})})}function b(a){return map(a,function(a){if(!/\n/.test(a))return a;var b=a.match(/^\s*/)[0],c=a.split("\n"),d=[c[0]].concat(map(c.slice(1),function(a){return b+a}));return d.join("\n")})}var c=Array.prototype.slice.call(arguments),d=c[c.length-1]instanceof Object?c.pop():{};return b(a(c)).join("\n")}var c={_counters:{},next:function(a){return this._counters[a]=this._counters[a]||0,a+this._counters[a]++},reset:function(){this._counters={}}},d=buildNodeVisitor({grammar:function(a){var c=a.initializer!==null?d(a.initializer):"",e=[];for(var f in a.rules)e.push(quote(f)+": parse_"+f);e.sort();var g=[];for(var f in a.rules)g.push(d(a.rules[f]));return b("(function(){"," /* Generated by PEG.js 0.6.2 (http://pegjs.majda.cz/). */"," "," var result = {"," /*"," * Parses the input with a generated parser. If the parsing is successfull,"," * returns a value explicitly or implicitly specified by the grammar from"," * which the parser was generated (see |PEG.buildParser|). If the parsing is"," * unsuccessful, throws |PEG.parser.SyntaxError| describing the error."," */"," parse: function(input, startRule) {"," var parseFunctions = {"," ${parseFunctionTableItems}"," };"," "," if (startRule !== undefined) {"," if (parseFunctions[startRule] === undefined) {",' throw new Error("Invalid rule name: " + quote(startRule) + ".");'," }"," } else {"," startRule = ${startRule|string};"," }"," "," var pos = 0;"," var reportMatchFailures = true;"," var rightmostMatchFailuresPos = 0;"," var rightmostMatchFailuresExpected = [];"," var cache = {};"," "," function padLeft(input, padding, length) {"," var result = input;"," "," var padLength = length - input.length;"," for (var i = 0; i < padLength; i++) {"," result = padding + result;"," }"," "," return result;"," }"," "," function escape(ch) {"," var charCode = ch.charCodeAt(0);"," "," if (charCode <= 0xFF) {"," var escapeChar = 'x';"," var length = 2;"," } else {"," var escapeChar = 'u';"," var length = 4;"," }"," "," return '\\\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length);"," }"," "," function quote(s) {"," /*"," * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a"," * string literal except for the closing quote character, backslash,"," * carriage return, line separator, paragraph separator, and line feed."," * Any character may appear in the form of an escape sequence."," */"," return '\"' + s"," .replace(/\\\\/g, '\\\\\\\\') // backslash"," .replace(/\"/g, '\\\\\"') // closing quote character"," .replace(/\\r/g, '\\\\r') // carriage return"," .replace(/\\n/g, '\\\\n') // line feed"," .replace(/[\\x80-\\uFFFF]/g, escape) // non-ASCII characters"," + '\"';"," }"," "," function matchFailed(failure) {"," if (pos < rightmostMatchFailuresPos) {"," return;"," }"," "," if (pos > rightmostMatchFailuresPos) {"," rightmostMatchFailuresPos = pos;"," rightmostMatchFailuresExpected = [];"," }"," "," rightmostMatchFailuresExpected.push(failure);"," }"," "," ${parseFunctionDefinitions}"," "," function buildErrorMessage() {"," function buildExpected(failuresExpected) {"," failuresExpected.sort();"," "," var lastFailure = null;"," var failuresExpectedUnique = [];"," for (var i = 0; i < failuresExpected.length; i++) {"," if (failuresExpected[i] !== lastFailure) {"," failuresExpectedUnique.push(failuresExpected[i]);"," lastFailure = failuresExpected[i];"," }"," }"," "," switch (failuresExpectedUnique.length) {"," case 0:"," return 'end of input';"," case 1:"," return failuresExpectedUnique[0];"," default:"," return failuresExpectedUnique.slice(0, failuresExpectedUnique.length - 1).join(', ')"," + ' or '"," + failuresExpectedUnique[failuresExpectedUnique.length - 1];"," }"," }"," "," var expected = buildExpected(rightmostMatchFailuresExpected);"," var actualPos = Math.max(pos, rightmostMatchFailuresPos);"," var actual = actualPos < input.length"," ? quote(input.charAt(actualPos))"," : 'end of input';"," "," return 'Expected ' + expected + ' but ' + actual + ' found.';"," }"," "," function computeErrorPosition() {"," /*"," * The first idea was to use |String.split| to break the input up to the"," * error position along newlines and derive the line and column from"," * there. However IE's |split| implementation is so broken that it was"," * enough to prevent it."," */"," "," var line = 1;"," var column = 1;"," var seenCR = false;"," "," for (var i = 0; i < rightmostMatchFailuresPos; i++) {"," var ch = input.charAt(i);"," if (ch === '\\n') {"," if (!seenCR) { line++; }"," column = 1;"," seenCR = false;"," } else if (ch === '\\r' | ch === '\\u2028' || ch === '\\u2029') {"," line++;"," column = 1;"," seenCR = true;"," } else {"," column++;"," seenCR = false;"," }"," }"," "," return { line: line, column: column };"," }"," "," ${initializerCode}"," "," var result = parseFunctions[startRule]();"," "," /*"," * The parser is now in one of the following three states:"," *"," * 1. The parser successfully parsed the whole input."," *"," * - |result !== null|"," * - |pos === input.length|"," * - |rightmostMatchFailuresExpected| may or may not contain something"," *"," * 2. The parser successfully parsed only a part of the input."," *"," * - |result !== null|"," * - |pos < input.length|"," * - |rightmostMatchFailuresExpected| may or may not contain something"," *"," * 3. The parser did not successfully parse any part of the input."," *"," * - |result === null|"," * - |pos === 0|"," * - |rightmostMatchFailuresExpected| contains at least one failure"," *"," * All code following this comment (including called functions) must"," * handle these states."," */"," if (result === null || pos !== input.length) {"," var errorPosition = computeErrorPosition();"," throw new this.SyntaxError("," buildErrorMessage(),"," errorPosition.line,"," errorPosition.column"," );"," }"," "," return result;"," },"," "," /* Returns the parser source code. */"," toSource: function() { return this._source; }"," };"," "," /* Thrown when a parser encounters a syntax error. */"," "," result.SyntaxError = function(message, line, column) {"," this.name = 'SyntaxError';"," this.message = message;"," this.line = line;"," this.column = column;"," };"," "," result.SyntaxError.prototype = Error.prototype;"," "," return result;","})()",{initializerCode:c,parseFunctionTableItems:e.join(",\n"),parseFunctionDefinitions:g.join("\n\n"),startRule:a.startRule})},initializer:function(a){return a.code},rule:function(a){c.reset();var e=c.next("result");if(a.displayName!==null)var f=b("var savedReportMatchFailures = reportMatchFailures;","reportMatchFailures = false;"),g=b("reportMatchFailures = savedReportMatchFailures;"),h=b("if (reportMatchFailures && ${resultVar} === null) {"," matchFailed(${displayName|string});","}",{displayName:a.displayName,resultVar:e});else var f="",g="",h="";return b("function parse_${name}() {"," var cacheKey = '${name}@' + pos;"," var cachedResult = cache[cacheKey];"," if (cachedResult) {"," pos = cachedResult.nextPos;"," return cachedResult.result;"," }"," "," ${setReportMatchFailuresCode}"," ${code}"," ${restoreReportMatchFailuresCode}"," ${reportMatchFailureCode}"," "," cache[cacheKey] = {"," nextPos: pos,"," result: ${resultVar}"," };"," return ${resultVar};","}",{name:a.name,setReportMatchFailuresCode:f,restoreReportMatchFailuresCode:g,reportMatchFailureCode:h,code:d(a.expression,e),resultVar:e})},choice:function(a,e){var f=b("var ${resultVar} = null;",{resultVar:e});for(var g=a.alternatives.length-1;g>=0;g--){var h=c.next("result");f=b("${alternativeCode}","if (${alternativeResultVar} !== null) {"," var ${resultVar} = ${alternativeResultVar};","} else {"," ${code};","}",{alternativeCode:d(a.alternatives[g],h),alternativeResultVar:h,code:f,resultVar:e})}return f},sequence:function(a,e){var f=c.next("savedPos"),g=map(a.elements,function(){return c.next("result")}),h=b("var ${resultVar} = ${elementResultVarArray};",{resultVar:e,elementResultVarArray:"["+g.join(", ")+"]"});for(var i=a.elements.length-1;i>=0;i--)h=b("${elementCode}","if (${elementResultVar} !== null) {"," ${code}","} else {"," var ${resultVar} = null;"," pos = ${savedPosVar};","}",{elementCode:d(a.elements[i],g[i]),elementResultVar:g[i],code:h,savedPosVar:f,resultVar:e});return b("var ${savedPosVar} = pos;","${code}",{code:h,savedPosVar:f})},labeled:function(a,b){return d(a.expression,b)},simple_and:function(a,e){var f=c.next("savedPos"),g=c.next("savedReportMatchFailuresVar"),h=c.next("result");return b("var ${savedPosVar} = pos;","var ${savedReportMatchFailuresVar} = reportMatchFailures;","reportMatchFailures = false;","${expressionCode}","reportMatchFailures = ${savedReportMatchFailuresVar};","if (${expressionResultVar} !== null) {"," var ${resultVar} = '';"," pos = ${savedPosVar};","} else {"," var ${resultVar} = null;","}",{expressionCode:d(a.expression,h),expressionResultVar:h,savedPosVar:f,savedReportMatchFailuresVar:g,resultVar:e})},simple_not:function(a,e){var f=c.next("savedPos"),g=c.next("savedReportMatchFailuresVar"),h=c.next("result");return b("var ${savedPosVar} = pos;","var ${savedReportMatchFailuresVar} = reportMatchFailures;","reportMatchFailures = false;","${expressionCode}","reportMatchFailures = ${savedReportMatchFailuresVar};","if (${expressionResultVar} === null) {"," var ${resultVar} = '';","} else {"," var ${resultVar} = null;"," pos = ${savedPosVar};","}",{expressionCode:d(a.expression,h),expressionResultVar:h,savedPosVar:f,savedReportMatchFailuresVar:g,resultVar:e})},semantic_and:function(a,c){return b("var ${resultVar} = (function() {${actionCode}})() ? '' : null;",{actionCode:a.code,resultVar:c})},semantic_not:function(a,c){return b("var ${resultVar} = (function() {${actionCode}})() ? null : '';",{actionCode:a.code,resultVar:c})},optional:function(a,e){var f=c.next("result");return b("${expressionCode}","var ${resultVar} = ${expressionResultVar} !== null ? ${expressionResultVar} : '';",{expressionCode:d(a.expression,f),expressionResultVar:f,resultVar:e})},zero_or_more:function(a,e){var f=c.next("result");return b("var ${resultVar} = [];","${expressionCode}","while (${expressionResultVar} !== null) {"," ${resultVar}.push(${expressionResultVar});"," ${expressionCode}","}",{expressionCode:d(a.expression,f),expressionResultVar:f,resultVar:e})},one_or_more:function(a,e){var f=c.next("result");return b("${expressionCode}","if (${expressionResultVar} !== null) {"," var ${resultVar} = [];"," while (${expressionResultVar} !== null) {"," ${resultVar}.push(${expressionResultVar});"," ${expressionCode}"," }","} else {"," var ${resultVar} = null;","}",{expressionCode:d(a.expression,f),expressionResultVar:f,resultVar:e})},action:function(a,e){var f=c.next("result"),g=c.next("result"),h=c.next("savedPos");if(a.expression.type==="sequence"){var i=[],j=[],k=a.expression.elements,l=k.length;for(var m=0;m<l;m++)k[m].type==="labeled"&&(i.push(k[m].label),j.push(f+"["+m+"]"))}else if(a.expression.type==="labeled")var i=[a.expression.label],j=[f];else var i=[],j=[];return b("var ${savedPosVar} = pos;","${expressionCode}","var ${actionResultVar} = ${expressionResultVar} !== null"," ? (function(${formalParams}) {${actionCode}})(${actualParams})"," : null;","if (${actionResultVar} !== null) {"," var ${resultVar} = ${actionResultVar};","} else {"," var ${resultVar} = null;"," pos = ${savedPosVar};","}",{expressionCode:d(a.expression,f),expressionResultVar:f,actionCode:a.code,actionResultVar:g,formalParams:i.join(", "),actualParams:j.join(", "),savedPosVar:h,resultVar:e})},rule_ref:function(a,c){return b("var ${resultVar} = ${ruleMethod}();",{ruleMethod:"parse_"+a.name,resultVar:c})},literal:function(a,c){return b("if (input.substr(pos, ${length}) === ${value|string}) {"," var ${resultVar} = ${value|string};"," pos += ${length};","} else {"," var ${resultVar} = null;"," if (reportMatchFailures) {"," matchFailed(${valueQuoted|string});"," }","}",{value:a.value,valueQuoted:quote(a.value),length:a.value.length,resultVar:c})},any:function(a,c){return b("if (input.length > pos) {"," var ${resultVar} = input.charAt(pos);"," pos++;","} else {"," var ${resultVar} = null;"," if (reportMatchFailures) {"," matchFailed('any character');"," }","}",{resultVar:c})},"class":function(a,c){if(a.parts.length>0)var d="/^["+(a.inverted?"^":"")+map(a.parts,function(a){return a instanceof Array?quoteForRegexpClass(a[0])+"-"+quoteForRegexpClass(a[1]):quoteForRegexpClass(a)}).join("")+"]/";else var d=a.inverted?"/^[\\S\\s]/":"/^(?!)/";return b("if (input.substr(pos).match(${regexp}) !== null) {"," var ${resultVar} = input.charAt(pos);"," pos++;","} else {"," var ${resultVar} = null;"," if (reportMatchFailures) {"," matchFailed(${rawText|string});"," }","}",{regexp:d,rawText:a.rawText,resultVar:c})}});return d(a)};if(typeof module=="object")module.exports=PEG;else if(typeof window=="object")window.PEG=PEG;else throw new Error('Can\'t export PEG library (no "module" nor "window" object detected).')})()
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rubygems'
4
- require 'resin/compiler'
5
-
6
- Resin::Compiler.run
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- begin
4
- require 'resin/app'
5
- rescue LoadError => e
6
- require 'rubygems'
7
- path = File.expand_path '../../lib', __FILE__
8
- $:.unshift(path) if File.directory?(path) && !$:.include?(path)
9
- require 'resin/app'
10
- end
11
-
12
- Resin::Server.run!