/
parser.min.js
66 lines (66 loc) · 12.6 KB
/
parser.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
caterwaul.module("parser",function(a){(function(){var g=a.gensym("memo"),f=0,c=function(i,h){return(function(){var j=i[g]?i[g]:i[g]=++f,k=h.id(),m=h.memo_table(),l=("@"+(k)+"_"+(j)+""),n=j&&k&&m.hasOwnProperty(l)?m[l]:(m[l]=i([h]));
return n}).call(this)},b=function(i,h){return(function(l){var j,n,k,o,m;for(var m=new l.constructor(),k=0,o=l.length;k<o;++k){j=l[k],m.push.apply(m,Array.prototype.slice.call((c(i,j))))
}return m}).call(this,h)},d=function(i,h){return(function(l){var j,n,k,o,m;for(var k=0,o=l.length;k<o;++k){j=l[k],(j.caterwaul_parser||(function(){throw new Error((""+(i)+": "+(j)+" is not marked with the .caterwaul_parser attribute"))
}).call(this))}return l}).call(this,(function(l){var j,n,k,o,m;for(var m=new l.constructor(),k=0,o=l.length;k<o;++k){j=l[k],m.push.apply(m,Array.prototype.slice.call((j instanceof Array?j:[j])))
}return m}).call(this,(function(l){var j,n,k,o,m;for(var k=0,o=l.length;k<o;++k){j=l[k],(j||(function(){throw new Error((""+(i)+": undefined parser given as parameter "+(k)+""))
}).call(this))}return l}).call(this,Array.prototype.slice.call((h)))))},e=function(j,i,h){return(function(k){return h=h||[],k.toString=function(){return(""+(i)+"("+((function(l){return l.join(", ")
}).call(this,((function(n){var l,p,m,q,o;for(var o=new n.constructor(),m=0,q=n.length;m<q;++m){l=n[m],o.push((l.toString()))}return o}).call(this,h))))+")")},k.caterwaul_parser=true,k
}).call(this,(j))};return a.parser={annotate:e,parsers:d},a.merge(a.parser,(function(){var u=function(){var I=d("bfs",arguments);var H=function(J){return(function(M){var K,O,L,P,N;
for(var O=(J),L=0,P=M.length;L<P;++L){K=M[L],O=(b(K,O))}return O}).call(this,I)};(e(H,"bfs",I));return H},A=function(){var I=d("bfc",arguments);var H=function(J){return t((function(M){var K,O,L,P,N;
for(var O=(C(J)),L=0,P=M.length;L<P;++L){K=M[L],O=(l(K)(O))}return O}).call(this,I))};(e(H,"bfc",I));return H},C=function(H){return(function(K){var I,M,J,N,L;for(var L=new K.constructor(),J=0,N=K.length;
J<N;++J){I=K[J],L.push(([I]))}return L}).call(this,H)},l=function(H){return function(I){return(function(K){var N,M,J,O,L;for(var L=new K.constructor(),J=0,O=K.length;
J<O;++J){N=K[J],L.push.apply(L,Array.prototype.slice.call(((function(){var P=c(H,N[N.length-1]);return P.length===1?N.push(P[0])&&[N]:(function(S){var Q,U,R,V,T;
for(var T=new S.constructor(),R=0,V=S.length;R<V;++R){Q=S[R],T.push(((N).concat(([Q]))))}return T}).call(this,P)}).call(this))))}return L}).call(this,I)}},y=function(H){return function(I){return(function(K){var N,M,J,O,L;
for(var L=new K.constructor(),J=0,O=K.length;J<O;++J){N=K[J],L.push.apply(L,Array.prototype.slice.call(((function(R){var P,T,Q,U,S;for(var S=new R.constructor(),Q=0,U=R.length;
Q<U;++Q){P=R[Q],S.push(((N).concat(([P]))))}return S}).call(this,c(H,N[N.length-1])))))}return L}).call(this,I)}},t=function(H){return(function(J){var M,L,I,N,K;
for(var K=new J.constructor(),I=0,N=J.length;I<N;++I){M=J[I],K.push((M[M.length-1].map(function(O){return(function(R){var P,T,Q,U,S;for(var S=new R.constructor(),Q=0,U=R.length;
Q<U;++Q){P=R[Q],S.push((P.value()))}return S}).call(this,M.slice(1,M.length))})))}return K}).call(this,H)},F=function(){var I=d("alt",arguments);var H=function(J){return(function(L){var O,N,K,P,M;
for(var M=new L.constructor(),K=0,P=L.length;K<P;++K){O=L[K],M.push.apply(M,Array.prototype.slice.call(((function(U){var T,W,S,R,V;for(var T=U[0],S=0,R=U.length,Q;
S<R;++S){T=U[S];if(Q=((function(X){return X.length&&X}).call(this,(c(T,O))))){return Q}}return false}).call(this,I)||[])))}return M}).call(this,J)};(e(H,"alt",I));
return H},k=function(){var I=d("all",arguments);var H=function(J){return(function(L){var O,N,K,P,M;for(var M=new L.constructor(),K=0,P=L.length;K<P;++K){O=L[K],M.push.apply(M,Array.prototype.slice.call(((function(T){var S,V,R,Q,U;
for(var U=new T.constructor(),R=0,Q=T.length;R<Q;++R){S=T[R],U.push.apply(U,Array.prototype.slice.call((c(S,O))))}return U}).call(this,I))))}return M}).call(this,J)
};(e(H,"all",I));return H},x=function(I){var H=function(J){return(function(){var K=q(I),L=function(M){return r(M)?K(M):null};return h((function(Q){var M,P,R,N,O;
for(var O=[],M=Q,R=0;M!==null;++R){O.push(M),M=(L(M))}return O}).call(this,C(J)))}).call(this)};(e(H,"manyc",[I]));return H},i=function(H){return D(A(H,x(H)),function(I){return([I[0]]).concat((I[1]))
})},z=function(J,I){var H=(function(){var K=I||u,L=function(M){return L(M)},L=F(K(J,e(L,"recursive",[])),J);return L}).call(this);(e(H,"many",[J,I]));return H},B=function(I){var H=F(I,v());
(e(H,"optional",[I]));return H},s=function(H){return function(I){return(function(K){var N,M,J,O,L;for(var L=new K.constructor(),J=0,O=K.length;J<O;++J){N=K[J],L.push.apply(L,Array.prototype.slice.call(((function(){var P=(function(Q){return Q&&c(H,Q)
}).call(this,(N[N.length-1]));return P?P.length?(function(S){var Q,U,R,V,T;for(var T=new S.constructor(),R=0,V=S.length;R<V;++R){Q=S[R],T.push(((N).concat(([Q]))))
}return T}).call(this,P):[(N).concat(([null]))]:[N]}).call(this))))}return L}).call(this,I)}},q=function(H){return function(I){return(function(K){var N,M,J,O,L;for(var L=new K.constructor(),J=0,O=K.length;
J<O;++J){N=K[J],L.push.apply(L,Array.prototype.slice.call(((function(){var Q=(function(R){return R&&c(H,R)}).call(this,(N[N.length-1])),P=Q&&Q.length;return Q?P?P===1?N.push(Q[0])&&[N]:(function(T){var R,V,S,W,U;
for(var U=new T.constructor(),S=0,W=T.length;S<W;++S){R=T[S],U.push(((N).concat(([R]))))}return U}).call(this,Q):N.push(null)&&[N]:[N]}).call(this))))}return L}).call(this,I)
}},r=function(H){return(function(J){var N,M,I,O,L;for(var N=J[0],I=0,O=J.length,K;I<O;++I){N=J[I];if(K=(N[N.length-1])){return K}}return false}).call(this,H)},h=function(H){return(function(J){var M,L,I,N,K;
for(var K=new J.constructor(),I=0,N=J.length;I<N;++I){M=J[I],K.push((M[M.length-2].map(function(O){return(function(R){var P,T,Q,U,S;for(var S=new R.constructor(),Q=0,U=R.length;
Q<U;++Q){P=R[Q],S.push((P.value()))}return S}).call(this,M.slice(1,M.length-1))})))}return K}).call(this,H[H.length-1])},v=function(){var H=function(I){return I};
(e(H,"zero",[]));return H},o=function(){var H=function(I){return[]};(e(H,"fail",[]));return H},p=function(I){var H=function(J){return(function(M){var K,O,L,P,N;for(var N=new M.constructor(),L=0,P=M.length;
L<P;++L){K=M[L],(c(I,K).length)&&N.push(K)}return N}).call(this,J)};(e(H,"match",[I]));return H},m=function(I){var H=function(J){return(function(M){var K,O,L,P,N;
for(var N=new M.constructor(),L=0,P=M.length;L<P;++L){K=M[L],(c(I,K).length)||N.push(K)}return N}).call(this,J)};(e(H,"reject",[I]));return H},w=function(I){var H=function(J){return(function(P){var K,O,Q,M,N;
for(var N=new P.constructor(),Q=0,M=P.length,L;Q<M;++Q){K=P[Q],(L=(I(K)))&&N.push(L)}return N}).call(this,J)};(e(H,"pluralize",[I]));return H},n=function(I){var H=function(J){return(function(M){var K,O,L,P,N;
for(var N=new M.constructor(),L=0,P=M.length;L<P;++L){K=M[L],N.push((K.change({value:I(K.input(),K.position())})))}return N}).call(this,J)};(e(H,"iv",[I]));return H
},D=function(J,I){var H=function(K){return(function(N){var L,P,M,Q,O;for(var O=new N.constructor(),M=0,Q=N.length;M<Q;++M){L=N[M],O.push((L.map(I)))}return O}).call(this,J(K))
};(e(H,"map",[J,I]));return H},G=function(J,I){var H=function(K){return(function(N){var L,P,M,Q,O;for(var O=new N.constructor(),M=0,Q=N.length;M<Q;++M){L=N[M],O.push.apply(O,Array.prototype.slice.call(((function(T){var W,V,S,R,U;
for(var U=new T.constructor(),S=0,R=T.length;S<R;++S){W=T[S],U.push((L.map(function(X){return W})))}return U}).call(this,I(L.value())))))}return O}).call(this,J(K))
};(e(H,"flat_map",[J,I]));return H},E=function(J,I){var H=function(K){return(function(N){var L,P,M,Q,O;for(var O=new N.constructor(),M=0,Q=N.length;M<Q;++M){L=N[M],O.push((I(L)))
}return O}).call(this,J(K))};(e(H,"map_state",[J,I]));return H},j=function(J,I){var H=function(K){return(function(N){var L,P,M,Q,O;for(var O=new N.constructor(),M=0,Q=N.length;
M<Q;++M){L=N[M],O.push.apply(O,Array.prototype.slice.call((I(L))))}return O}).call(this,J(K))};(e(H,"flat_map_state",[J,I]));return H};return{bfs:u,bfc:A,state_matrix:C,step_matrix_mutable:l,step_matrix_immutable:y,row_composite_states_from:t,alt:F,all:k,manyc:x,manyc_one:i,many:z,optional:B,step_matrix_immutable_null:s,step_matrix_mutable_null:q,has_non_null_states:r,row_null_states_from:h,zero:v,fail:o,match:p,reject:m,pluralize:w,iv:n,map:D,flat_map:G,map_state:E,flat_map_state:j}
}).call(this)),a.parser.logical_state=function(h){return(function(){var n=h.defaults||{},m=n.position,i=n.value,j=n.id||function(o){return ++f},k=function(q,s,o,r){return arguments.length>1?(function(p){return p.i=q,p.p=s,p.v=o,p.table=r,p
}).call(this,(this)):(function(p){return p.i=q,p.p=m,p.v=i,p.table={},p}).call(this,(this))},l=function(o){return{id:function(){return this.cached_id?this.cached_id:this.cached_id=j.call(this)
},input:function(){return this.i},next:function(q,p){return q===1?o.call(this,this.p,p):(function(t){var r,v,s,w,u;for(var u=new t.constructor(),s=0,w=t.length;s<w;
++s){r=t[s],u.push.apply(u,Array.prototype.slice.call((r.next(1,p))))}return u}).call(this,this.next(q-1,p))},position:function(){return this.p},map:function(p){return new this.constructor(this.i,this.p,p(this.v),this.table)
},value:function(){return this.v},memo_table:function(){return this.table},toString:function(){return(""+(this.i)+" @ "+(this.p)+" : "+(this.v)+"")},change:function(p){return new this.constructor("input" in p?p.input:this.i,"position" in p?p.position:this.p,"value" in p?p.value:this.v,this.table)
}}};return(function(o){return a.merge(o.prototype,l(h.step)),o}).call(this,(k))}).call(this)},a.parser.linear_string_state=a.merge(a.parser.logical_state({step:function(i,h){return[(this).change({position:i+1,value:h})]
},id:function(){return this.position()},defaults:{position:0}}),{end:function(){var h=function(i){return(function(l){var j,n,k,o,m;for(var m=new l.constructor(),k=0,o=l.length;
k<o;++k){j=l[k],(j.position()===j.input().length)&&m.push(j)}return m}).call(this,i)};(e(h,"end",[]));return h}}),a.merge(a.parser,{anchor_regexp:function(h){return(function(){var k=/^\/(.*)\/(\w*)$/.exec(h.toString()),i=k[1],j=k[2];
return new RegExp(("^"+(i)+"$"),j)}).call(this)},linear_string:function(i){var h=function(j){return(function(m){var k,o,l,p,n;for(var n=new m.constructor(),l=0,p=m.length;
l<p;++l){k=m[l],n.push.apply(n,Array.prototype.slice.call((k.input().substr(k.position(),i.length)===i?k.next(i.length,i):[])))}return n}).call(this,j)};(e(h,"linear_string",[i]));
return h},linear_regexp:function(i){var h=(function(){var l=a.regexp(i).minimum_length()||(function(){throw new Error(("regexp must require at least one character: "+(i)+""))
}).call(this),k=a.parser.anchor_regexp(i),m=function(n){return(function(s){var o,r,t,p,q;for(var q=new s.constructor(),t=0,p=s.length;t<p;++t){o=s[t],q.push.apply(q,Array.prototype.slice.call((j(o))))
}return q}).call(this,n)},j=function(n){return(function(){var t=n.input(),v=n.position(),r=t.length-v,o=function(s){return s<=r&&k.test(t.substr(v,s))},p=function(s){return o(s)?p(s<<1):s
},u=function(w,s,x){return w<x-1?o(s)?u(s,s+x>>1,x):u(w,w+s>>1,s):s},q=o(l)?(function(){var w=p(l),s=u(l,l+w>>1,w);return n.next(s,k.exec(t.substr(v,s)))}).call(this):[];
return q}).call(this)};return m}).call(this);(e(h,"linear_regexp",[i]));return h}}),a.parser.structure_state=a.parser.logical_state({step:function(i,h){return(function(l){var j,n,k,o,m;
for(var m=new l.constructor(),k=0,o=l.length;k<o;++k){j=l[k],m.push((this.change({value:h,input:j[1],position:j[0]})))}return m}).call(this,(function(m){var l=[];
for(var j in m){Object.prototype.hasOwnProperty.call(m,j)&&l.push([j,m[j]])}return l}).call(this,(this.input())))}}),a.parser.array_state=a.parser.logical_state({step:function(i,h){return(function(l){var j,n,k,o,m;
for(var m=new l.constructor(),k=0,o=l.length;k<o;++k){j=l[k],m.push((this.change({value:h,input:j,position:k})))}return m}).call(this,Array.prototype.slice.call((this.input())))
}}),a.merge((a.parser.proxy_state=function(h,i){return(function(j){return j.state=h,j.value_function=i,j}).call(this,(this))}).prototype,{id:function(){return !!this.cached_id||(this.cached_id=++f)
},input:function(){return this.value_function.call(this)},next:function(i,h){return this.state.next(i,h)},position:function(){return this.state.position()},map:function(h){return this.state.map(h)
},value:function(){return this.state.value()},memo_table:function(){return this.state.memo_table()}}),a.merge(a.parser,{position_state:function(h){return new a.parser.proxy_state(h,function(i){return this.position()
})},position:function(h){return function(i){return h((function(n){var j,m,o,k,l;for(var l=new n.constructor(),o=0,k=n.length;o<k;++o){j=n[o],l.push((a.parser.position_state(j)))
}return l}).call(this,i))}}})}).call(this)});