Comparing version 1.6.2 to 1.6.4
@@ -1,1 +0,1 @@ | ||
!function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Parsimmon=t():n.Parsimmon=t()}(this,function(){return function(n){function t(e){if(r[e])return r[e].exports;var u=r[e]={i:e,l:!1,exports:{}};return n[e].call(u.exports,u,u.exports,t),u.l=!0,u.exports}var r={};return t.m=n,t.c=r,t.i=function(n){return n},t.d=function(n,r,e){t.o(n,r)||Object.defineProperty(n,r,{configurable:!1,enumerable:!0,get:e})},t.n=function(n){var r=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(r,"a",r),r},t.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},t.p="",t(t.s=0)}([function(n,t,r){"use strict";function e(n){if(!(this instanceof e))return new e(n);this._=n}function u(n){return n instanceof e}function i(n){return"[object Array]"==={}.toString.call(n)}function o(n,t){return{status:!0,index:n,value:t,furthest:-1,expected:[]}}function a(n,t){return{status:!1,index:-1,value:null,furthest:n,expected:[t]}}function f(n,t){if(!t)return n;if(n.furthest>t.furthest)return n;var r=n.furthest===t.furthest?s(n.expected,t.expected):t.expected;return{status:n.status,index:n.index,value:n.value,furthest:t.furthest,expected:r}}function c(n,t){var r=n.slice(0,t).split("\n");return{offset:t,line:r.length,column:r[r.length-1].length+1}}function s(n,t){var r=n.length,e=t.length;if(0===r)return t;if(0===e)return n;for(var u={},i=0;i<r;i++)u[n[i]]=!0;for(var o=0;o<e;o++)u[t[o]]=!0;var a=[];for(var f in u)u.hasOwnProperty(f)&&a.push(f);return a.sort(),a}function l(n){if(!u(n))throw new Error("not a parser: "+n)}function h(n){if(!i(n))throw new Error("not an array: "+n)}function p(n){if("number"!=typeof n)throw new Error("not a number: "+n)}function d(n){if(!(n instanceof RegExp))throw new Error("not a regexp: "+n);for(var t=w(n),r=0;r<t.length;r++){var e=t.charAt(r);if("i"!==e&&"m"!==e&&"u"!==e)throw new Error('unsupported regexp flag "'+e+'": '+n)}}function v(n){if("function"!=typeof n)throw new Error("not a function: "+n)}function g(n){if("string"!=typeof n)throw new Error("not a string: "+n)}function m(n){return 1===n.length?n[0]:"one of "+n.join(", ")}function y(n,t){var r=t.index,e=r.offset;if(e===n.length)return", got the end of the input";var u=e>0?"'...":"'",i=n.length-e>12?"...'":"'";return" at line "+r.line+" column "+r.column+", got "+u+n.slice(e,e+12)+i}function x(n,t){return"expected "+m(t.expected)+y(n,t)}function w(n){var t=""+n;return t.slice(t.lastIndexOf("/")+1)}function E(n){return RegExp("^(?:"+n.source+")",w(n))}function _(){for(var n=[].slice.call(arguments),t=n.length,r=0;r<t;r+=1)l(n[r]);return e(function(r,e){for(var u,i=new Array(t),a=0;a<t;a+=1){if(u=f(n[a]._(r,e),u),!u.status)return u;i[a]=u.value,e=u.index}return f(o(e,i),u)})}function b(){for(var n={},t=0,r=[].slice.call(arguments),a=r.length,c=0;c<a;c+=1){var s=r[c];if(!u(s)){if(i(s)){if(2===s.length&&"string"==typeof s[0]&&u(s[1])){var l=s[0];if(n[l])throw new Error("seqObj: duplicate key "+l);n[l]=!0,t++;continue}}throw new Error("seqObj arguments must be parsers or [string, parser] array pairs.")}}if(0===t)throw new Error("seqObj expects at least one named parser, found zero");return e(function(n,t){for(var e,u={},c=0;c<a;c+=1){var s,l;if(i(r[c])?(s=r[c][0],l=r[c][1]):(s=null,l=r[c]),e=f(l._(n,t),e),!e.status)return e;s&&(u[s]=e.value),t=e.index}return f(o(t,u),e)})}function O(){var n=[].slice.call(arguments);if(0===n.length)throw new Error("seqMap needs at least one argument");var t=n.pop();return v(t),_.apply(null,n).map(function(n){return t.apply(null,n)})}function k(n){var t={};for(var r in n)({}).hasOwnProperty.call(n,r)&&function(r){var e=function(){return n[r](t)};t[r]=G(e)}(r);return t}function j(){var n=[].slice.call(arguments),t=n.length;if(0===t)return F("zero alternates");for(var r=0;r<t;r+=1)l(n[r]);return e(function(t,r){for(var e,u=0;u<n.length;u+=1)if(e=f(n[u]._(t,r),e),e.status)return e;return e})}function P(n,t){return q(n,t).or(z([]))}function q(n,t){l(n),l(t);var r=t.then(n).many();return n.chain(function(n){return r.map(function(t){return[n].concat(t)})})}function A(n){g(n);var t="'"+n+"'";return e(function(r,e){var u=e+n.length,i=r.slice(e,u);return i===n?o(u,i):a(e,t)})}function B(n,t){d(n),arguments.length>=2?p(t):t=0;var r=E(n),u=""+n;return e(function(n,e){var i=r.exec(n.slice(e));if(i){if(0<=t&&t<=i.length){var f=i[0],c=i[t];return o(e+f.length,c)}return a(e,"valid match group (0 to "+i.length+") in "+u)}return a(e,u)})}function z(n){return e(function(t,r){return o(r,n)})}function F(n){return e(function(t,r){return a(r,n)})}function M(n){if(u(n))return e(function(t,r){var e=n._(t,r);return e.index=r,e.value="",e});if("string"==typeof n)return M(A(n));if(n instanceof RegExp)return M(B(n));throw new Error("not a string, regexp, or parser: "+n)}function R(n){return l(n),e(function(t,r){var e=n._(t,r),u=t.slice(r,e.index);return e.status?a(r,'not "'+u+'"'):o(r,null)})}function L(n){return v(n),e(function(t,r){var e=t.charAt(r);return r<t.length&&n(e)?o(r+1,e):a(r,"a character matching "+n)})}function S(n){return L(function(t){return n.indexOf(t)>=0})}function W(n){return L(function(t){return n.indexOf(t)<0})}function I(n){return e(n(o,a))}function C(n,t){return L(function(r){return n<=r&&r<=t}).desc(n+"-"+t)}function D(n){return v(n),e(function(t,r){for(var e=r;e<t.length&&n(t.charAt(e));)e++;return o(e,t.slice(r,e))})}function G(n,t){arguments.length<2&&(t=n,n=void 0);var r=e(function(n,e){return r._=t()._,r._(n,e)});return n?r.desc(n):r}function H(){return F("fantasy-land/empty")}var J=e.prototype;J.parse=function(n){if("string"!=typeof n)throw new Error(".parse must be called with a string as its argument");var t=this.skip(T)._(n,0);return t.status?{status:!0,value:t.value}:{status:!1,index:c(n,t.furthest),expected:t.expected}},J.tryParse=function(n){var t=this.parse(n);if(t.status)return t.value;var r=x(n,t),e=new Error(r);throw e.type="ParsimmonError",e.result=t,e},J.or=function(n){return j(this,n)},J.trim=function(n){return this.wrap(n,n)},J.wrap=function(n,t){return O(n,this,t,function(n,t){return t})},J.thru=function(n){return n(this)},J.then=function(n){return l(n),_(this,n).map(function(n){return n[1]})},J.many=function(){var n=this;return e(function(t,r){for(var e=[],u=void 0;;){if(u=f(n._(t,r),u),!u.status)return f(o(r,e),u);r=u.index,e.push(u.value)}})},J.tie=function(){return this.map(function(n){h(n);for(var t="",r=0;r<n.length;r++)g(n[r]),t+=n[r];return t})},J.times=function(n,t){var r=this;return arguments.length<2&&(t=n),p(n),p(t),e(function(e,u){for(var i=[],a=void 0,c=void 0,s=0;s<n;s+=1){if(a=r._(e,u),c=f(a,c),!a.status)return c;u=a.index,i.push(a.value)}for(;s<t&&(a=r._(e,u),c=f(a,c),a.status);s+=1)u=a.index,i.push(a.value);return f(o(u,i),c)})},J.result=function(n){return this.map(function(){return n})},J.atMost=function(n){return this.times(0,n)},J.atLeast=function(n){return O(this.times(n),this.many(),function(n,t){return n.concat(t)})},J.map=function(n){v(n);var t=this;return e(function(r,e){var u=t._(r,e);return u.status?f(o(u.index,n(u.value)),u):u})},J.skip=function(n){return _(this,n).map(function(n){return n[0]})},J.mark=function(){return O(K,this,K,function(n,t,r){return{start:n,value:t,end:r}})},J.node=function(n){return O(K,this,K,function(t,r,e){return{name:n,value:r,start:t,end:e}})},J.sepBy=function(n){return P(this,n)},J.sepBy1=function(n){return q(this,n)},J.lookahead=function(n){return this.skip(M(n))},J.notFollowedBy=function(n){return this.skip(R(n))},J.desc=function(n){var t=this;return e(function(r,e){var u=t._(r,e);return u.status||(u.expected=[n]),u})},J.fallback=function(n){return this.or(z(n))},J.ap=function(n){return O(n,this,function(n,t){return n(t)})},J.chain=function(n){var t=this;return e(function(r,e){var u=t._(r,e);return u.status?f(n(u.value)._(r,u.index),u):u})},J.concat=J.or,J.empty=H,J.of=z,J["fantasy-land/ap"]=J.ap,J["fantasy-land/chain"]=J.chain,J["fantasy-land/concat"]=J.concat,J["fantasy-land/empty"]=J.empty,J["fantasy-land/of"]=J.of,J["fantasy-land/map"]=J.map;var K=e(function(n,t){return o(t,c(n,t))}),N=e(function(n,t){return t>=n.length?a(t,"any character"):o(t+1,n.charAt(t))}),Q=e(function(n,t){return o(n.length,n.slice(t))}),T=e(function(n,t){return t<n.length?a(t,"EOF"):o(t,null)}),U=B(/[0-9]/).desc("a digit"),V=B(/[0-9]*/).desc("optional digits"),X=B(/[a-z]/i).desc("a letter"),Y=B(/[a-z]*/i).desc("optional letters"),Z=B(/\s*/).desc("optional whitespace"),$=B(/\s+/).desc("whitespace");e.all=Q,e.alt=j,e.any=N,e.createLanguage=k,e.custom=I,e.digit=U,e.digits=V,e.empty=H,e.eof=T,e.fail=F,e.formatError=x,e.index=K,e.isParser=u,e.lazy=G,e.letter=X,e.letters=Y,e.lookahead=M,e.makeFailure=a,e.makeSuccess=o,e.noneOf=W,e.notFollowedBy=R,e.of=z,e.oneOf=S,e.optWhitespace=Z,e.Parser=e,e.range=C,e.regex=B,e.regexp=B,e.sepBy=P,e.sepBy1=q,e.seq=_,e.seqMap=O,e.seqObj=b,e.string=A,e.succeed=z,e.takeWhile=D,e.test=L,e.whitespace=$,e["fantasy-land/empty"]=H,e["fantasy-land/of"]=z,n.exports=e}])}); | ||
!function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Parsimmon=t():n.Parsimmon=t()}(this,function(){return function(n){function t(e){if(r[e])return r[e].exports;var u=r[e]={i:e,l:!1,exports:{}};return n[e].call(u.exports,u,u.exports,t),u.l=!0,u.exports}var r={};return t.m=n,t.c=r,t.i=function(n){return n},t.d=function(n,r,e){t.o(n,r)||Object.defineProperty(n,r,{configurable:!1,enumerable:!0,get:e})},t.n=function(n){var r=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(r,"a",r),r},t.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},t.p="",t(t.s=0)}([function(n,t,r){"use strict";function e(n){if(!(this instanceof e))return new e(n);this._=n}function u(n){return n instanceof e}function i(n){return"[object Array]"==={}.toString.call(n)}function o(n,t){return{status:!0,index:n,value:t,furthest:-1,expected:[]}}function a(n,t){return{status:!1,index:-1,value:null,furthest:n,expected:[t]}}function f(n,t){if(!t)return n;if(n.furthest>t.furthest)return n;var r=n.furthest===t.furthest?s(n.expected,t.expected):t.expected;return{status:n.status,index:n.index,value:n.value,furthest:t.furthest,expected:r}}function c(n,t){var r=n.slice(0,t).split("\n");return{offset:t,line:r.length,column:r[r.length-1].length+1}}function s(n,t){var r=n.length,e=t.length;if(0===r)return t;if(0===e)return n;for(var u={},i=0;i<r;i++)u[n[i]]=!0;for(var o=0;o<e;o++)u[t[o]]=!0;var a=[];for(var f in u)u.hasOwnProperty(f)&&a.push(f);return a.sort(),a}function l(n){if(!u(n))throw new Error("not a parser: "+n)}function h(n){if(!i(n))throw new Error("not an array: "+n)}function p(n){if("number"!=typeof n)throw new Error("not a number: "+n)}function d(n){if(!(n instanceof RegExp))throw new Error("not a regexp: "+n);for(var t=w(n),r=0;r<t.length;r++){var e=t.charAt(r);if("i"!==e&&"m"!==e&&"u"!==e)throw new Error('unsupported regexp flag "'+e+'": '+n)}}function v(n){if("function"!=typeof n)throw new Error("not a function: "+n)}function g(n){if("string"!=typeof n)throw new Error("not a string: "+n)}function y(n){return 1===n.length?n[0]:"one of "+n.join(", ")}function m(n,t){var r=t.index,e=r.offset;if(e===n.length)return", got the end of the input";var u=e>0?"'...":"'",i=n.length-e>12?"...'":"'";return" at line "+r.line+" column "+r.column+", got "+u+n.slice(e,e+12)+i}function x(n,t){return"expected "+y(t.expected)+m(n,t)}function w(n){var t=""+n;return t.slice(t.lastIndexOf("/")+1)}function E(n){return RegExp("^(?:"+n.source+")",w(n))}function _(){for(var n=[].slice.call(arguments),t=n.length,r=0;r<t;r+=1)l(n[r]);return e(function(r,e){for(var u,i=new Array(t),a=0;a<t;a+=1){if(u=f(n[a]._(r,e),u),!u.status)return u;i[a]=u.value,e=u.index}return f(o(e,i),u)})}function b(){for(var n={},t=0,r=[].slice.call(arguments),a=r.length,c=0;c<a;c+=1){var s=r[c];if(!u(s)){if(i(s)){if(2===s.length&&"string"==typeof s[0]&&u(s[1])){var l=s[0];if(n[l])throw new Error("seqObj: duplicate key "+l);n[l]=!0,t++;continue}}throw new Error("seqObj arguments must be parsers or [string, parser] array pairs.")}}if(0===t)throw new Error("seqObj expects at least one named parser, found zero");return e(function(n,t){for(var e,u={},c=0;c<a;c+=1){var s,l;if(i(r[c])?(s=r[c][0],l=r[c][1]):(s=null,l=r[c]),e=f(l._(n,t),e),!e.status)return e;s&&(u[s]=e.value),t=e.index}return f(o(t,u),e)})}function O(){var n=[].slice.call(arguments);if(0===n.length)throw new Error("seqMap needs at least one argument");var t=n.pop();return v(t),_.apply(null,n).map(function(n){return t.apply(null,n)})}function k(n){var t={};for(var r in n)({}).hasOwnProperty.call(n,r)&&function(r){var e=function(){return n[r](t)};t[r]=G(e)}(r);return t}function j(){var n=[].slice.call(arguments),t=n.length;if(0===t)return F("zero alternates");for(var r=0;r<t;r+=1)l(n[r]);return e(function(t,r){for(var e,u=0;u<n.length;u+=1)if(e=f(n[u]._(t,r),e),e.status)return e;return e})}function P(n,t){return q(n,t).or(B([]))}function q(n,t){return l(n),l(t),O(n,t.then(n).many(),function(n,t){return[n].concat(t)})}function z(n){g(n);var t="'"+n+"'";return e(function(r,e){var u=e+n.length,i=r.slice(e,u);return i===n?o(u,i):a(e,t)})}function A(n,t){d(n),arguments.length>=2?p(t):t=0;var r=E(n),u=""+n;return e(function(n,e){var i=r.exec(n.slice(e));if(i){if(0<=t&&t<=i.length){var f=i[0],c=i[t];return o(e+f.length,c)}return a(e,"valid match group (0 to "+i.length+") in "+u)}return a(e,u)})}function B(n){return e(function(t,r){return o(r,n)})}function F(n){return e(function(t,r){return a(r,n)})}function M(n){if(u(n))return e(function(t,r){var e=n._(t,r);return e.index=r,e.value="",e});if("string"==typeof n)return M(z(n));if(n instanceof RegExp)return M(A(n));throw new Error("not a string, regexp, or parser: "+n)}function R(n){return l(n),e(function(t,r){var e=n._(t,r),u=t.slice(r,e.index);return e.status?a(r,'not "'+u+'"'):o(r,null)})}function L(n){return v(n),e(function(t,r){var e=t.charAt(r);return r<t.length&&n(e)?o(r+1,e):a(r,"a character matching "+n)})}function S(n){return L(function(t){return n.indexOf(t)>=0})}function W(n){return L(function(t){return n.indexOf(t)<0})}function I(n){return e(n(o,a))}function C(n,t){return L(function(r){return n<=r&&r<=t}).desc(n+"-"+t)}function D(n){return v(n),e(function(t,r){for(var e=r;e<t.length&&n(t.charAt(e));)e++;return o(e,t.slice(r,e))})}function G(n,t){arguments.length<2&&(t=n,n=void 0);var r=e(function(n,e){return r._=t()._,r._(n,e)});return n?r.desc(n):r}function H(){return F("fantasy-land/empty")}var J=e.prototype;J.parse=function(n){if("string"!=typeof n)throw new Error(".parse must be called with a string as its argument");var t=this.skip(T)._(n,0);return t.status?{status:!0,value:t.value}:{status:!1,index:c(n,t.furthest),expected:t.expected}},J.tryParse=function(n){var t=this.parse(n);if(t.status)return t.value;var r=x(n,t),e=new Error(r);throw e.type="ParsimmonError",e.result=t,e},J.or=function(n){return j(this,n)},J.trim=function(n){return this.wrap(n,n)},J.wrap=function(n,t){return O(n,this,t,function(n,t){return t})},J.thru=function(n){return n(this)},J.then=function(n){return l(n),_(this,n).map(function(n){return n[1]})},J.many=function(){var n=this;return e(function(t,r){for(var e=[],u=void 0;;){if(u=f(n._(t,r),u),!u.status)return f(o(r,e),u);if(r===u.index)throw new Error("infinite loop detected in .many() parser --- calling .many() on a parser which can accept zero characters is usually the cause");r=u.index,e.push(u.value)}})},J.tie=function(){return this.map(function(n){h(n);for(var t="",r=0;r<n.length;r++)g(n[r]),t+=n[r];return t})},J.times=function(n,t){var r=this;return arguments.length<2&&(t=n),p(n),p(t),e(function(e,u){for(var i=[],a=void 0,c=void 0,s=0;s<n;s+=1){if(a=r._(e,u),c=f(a,c),!a.status)return c;u=a.index,i.push(a.value)}for(;s<t&&(a=r._(e,u),c=f(a,c),a.status);s+=1)u=a.index,i.push(a.value);return f(o(u,i),c)})},J.result=function(n){return this.map(function(){return n})},J.atMost=function(n){return this.times(0,n)},J.atLeast=function(n){return O(this.times(n),this.many(),function(n,t){return n.concat(t)})},J.map=function(n){v(n);var t=this;return e(function(r,e){var u=t._(r,e);return u.status?f(o(u.index,n(u.value)),u):u})},J.skip=function(n){return _(this,n).map(function(n){return n[0]})},J.mark=function(){return O(K,this,K,function(n,t,r){return{start:n,value:t,end:r}})},J.node=function(n){return O(K,this,K,function(t,r,e){return{name:n,value:r,start:t,end:e}})},J.sepBy=function(n){return P(this,n)},J.sepBy1=function(n){return q(this,n)},J.lookahead=function(n){return this.skip(M(n))},J.notFollowedBy=function(n){return this.skip(R(n))},J.desc=function(n){var t=this;return e(function(r,e){var u=t._(r,e);return u.status||(u.expected=[n]),u})},J.fallback=function(n){return this.or(B(n))},J.ap=function(n){return O(n,this,function(n,t){return n(t)})},J.chain=function(n){var t=this;return e(function(r,e){var u=t._(r,e);return u.status?f(n(u.value)._(r,u.index),u):u})},J.concat=J.or,J.empty=H,J.of=B,J["fantasy-land/ap"]=J.ap,J["fantasy-land/chain"]=J.chain,J["fantasy-land/concat"]=J.concat,J["fantasy-land/empty"]=J.empty,J["fantasy-land/of"]=J.of,J["fantasy-land/map"]=J.map;var K=e(function(n,t){return o(t,c(n,t))}),N=e(function(n,t){return t>=n.length?a(t,"any character"):o(t+1,n.charAt(t))}),Q=e(function(n,t){return o(n.length,n.slice(t))}),T=e(function(n,t){return t<n.length?a(t,"EOF"):o(t,null)}),U=A(/[0-9]/).desc("a digit"),V=A(/[0-9]*/).desc("optional digits"),X=A(/[a-z]/i).desc("a letter"),Y=A(/[a-z]*/i).desc("optional letters"),Z=A(/\s*/).desc("optional whitespace"),$=A(/\s+/).desc("whitespace");e.all=Q,e.alt=j,e.any=N,e.createLanguage=k,e.custom=I,e.digit=U,e.digits=V,e.empty=H,e.eof=T,e.fail=F,e.formatError=x,e.index=K,e.isParser=u,e.lazy=G,e.letter=X,e.letters=Y,e.lookahead=M,e.makeFailure=a,e.makeSuccess=o,e.noneOf=W,e.notFollowedBy=R,e.of=B,e.oneOf=S,e.optWhitespace=Z,e.Parser=e,e.range=C,e.regex=A,e.regexp=A,e.sepBy=P,e.sepBy1=q,e.seq=_,e.seqMap=O,e.seqObj=b,e.string=z,e.succeed=B,e.takeWhile=D,e.test=L,e.whitespace=$,e["fantasy-land/empty"]=H,e["fantasy-land/of"]=B,n.exports=e}])}); |
@@ -0,1 +1,9 @@ | ||
## version 1.6.4 (2018-01-01) | ||
* Fixes `parser.many()` to throw an error if it detects an infinite parse loop. | ||
## version 1.6.3 (2018-01-01) | ||
* Unpublished due to a Travis CI build issues. | ||
## version 1.6.2 (2017-07-08) | ||
@@ -2,0 +10,0 @@ |
{ | ||
"name": "parsimmon", | ||
"version": "1.6.2", | ||
"version": "1.6.4", | ||
"description": "A monadic LL(infinity) parser combinator library", | ||
"keywords": [ | ||
"parsing", | ||
"parse", | ||
"parser combinators" | ||
], | ||
"keywords": ["parsing", "parse", "parsers", "parser combinators"], | ||
"author": "Jeanine Adkisson <jneen at jneen dot net>", | ||
"contributors": [ | ||
"Brian Mock <brian@mockbrian.com>" | ||
], | ||
"repository": "git://github.com/jneen/parsimmon", | ||
"files": [ | ||
"src", | ||
"build" | ||
], | ||
"contributors": ["Brian Mock <brian@mockbrian.com>"], | ||
"repository": "https://github.com/jneen/parsimmon", | ||
"files": ["src", "build"], | ||
"main": "src/parsimmon.js", | ||
@@ -26,4 +17,4 @@ "browser": "build/parsimmon.umd.min.js", | ||
"mocha": "^3.4.2", | ||
"ncp": "^2.0.0", | ||
"nyc": "^11.0.3", | ||
"prettier": "1.7.4", | ||
"rimraf": "^2.5.4", | ||
@@ -37,11 +28,13 @@ "webpack": "^2.6.1" | ||
"prepublishOnly": "npm run test && npm run build", | ||
"lint": "eslint src test", | ||
"lint:fix": "eslint --fix src test", | ||
"lint": | ||
"prettier --list-different '{examples,src,test}/**/*.js' webpack.config.js && eslint examples src test webpack.config.js", | ||
"lint:fix": | ||
"prettier --write '{examples,src,test}/**/*.js' webpack.config.js && eslint --fix examples src test webpack.config.js", | ||
"precoverage": "npm run test", | ||
"coverage": "nyc report --reporter=text-lcov | coveralls", | ||
"pretest": "npm run lint", | ||
"test": "nyc --reporter=lcov npm run test:mocha", | ||
"test:mocha": "mocha -i src --ui tdd --reporter dot test/setup.js test/core/*.test.js test/laws/*.test.js", | ||
"watch:test": "mocha --ui tdd --reporter min --watch test/setup.js test/core/*.test.js test/laws/*.test.js" | ||
"test": "nyc --reporter=lcov --reporter=text-summary npm run test:mocha", | ||
"test:mocha": "mocha --reporter dot", | ||
"test:watch": "mocha --reporter min --watch" | ||
} | ||
} |
@@ -1,2 +0,2 @@ | ||
'use strict'; | ||
"use strict"; | ||
@@ -19,3 +19,3 @@ function Parsimmon(action) { | ||
function isArray(x) { | ||
return {}.toString.call(x) === '[object Array]'; | ||
return {}.toString.call(x) === "[object Array]"; | ||
} | ||
@@ -50,5 +50,6 @@ | ||
} | ||
var expected = (result.furthest === last.furthest) | ||
? unsafeUnion(result.expected, last.expected) | ||
: last.expected; | ||
var expected = | ||
result.furthest === last.furthest | ||
? unsafeUnion(result.expected, last.expected) | ||
: last.expected; | ||
return { | ||
@@ -64,3 +65,3 @@ status: result.status, | ||
function makeLineColumnIndex(input, i) { | ||
var lines = input.slice(0, i).split('\n'); | ||
var lines = input.slice(0, i).split("\n"); | ||
// Note that unlike the character offset, the line and column offsets are | ||
@@ -111,3 +112,3 @@ // 1-based. | ||
if (!isParser(p)) { | ||
throw new Error('not a parser: ' + p); | ||
throw new Error("not a parser: " + p); | ||
} | ||
@@ -119,3 +120,3 @@ } | ||
if (!isArray(x)) { | ||
throw new Error('not an array: ' + x); | ||
throw new Error("not an array: " + x); | ||
} | ||
@@ -125,4 +126,4 @@ } | ||
function assertNumber(x) { | ||
if (typeof x !== 'number') { | ||
throw new Error('not a number: ' + x); | ||
if (typeof x !== "number") { | ||
throw new Error("not a number: " + x); | ||
} | ||
@@ -133,3 +134,3 @@ } | ||
if (!(x instanceof RegExp)) { | ||
throw new Error('not a regexp: '+x); | ||
throw new Error("not a regexp: " + x); | ||
} | ||
@@ -142,3 +143,3 @@ var f = flags(x); | ||
// future, this will need to be revisited. | ||
if (c !== 'i' && c !== 'm' && c !== 'u') { | ||
if (c !== "i" && c !== "m" && c !== "u") { | ||
throw new Error('unsupported regexp flag "' + c + '": ' + x); | ||
@@ -150,4 +151,4 @@ } | ||
function assertFunction(x) { | ||
if (typeof x !== 'function') { | ||
throw new Error('not a function: ' + x); | ||
if (typeof x !== "function") { | ||
throw new Error("not a function: " + x); | ||
} | ||
@@ -157,4 +158,4 @@ } | ||
function assertString(x) { | ||
if (typeof x !== 'string') { | ||
throw new Error('not a string: ' + x); | ||
if (typeof x !== "string") { | ||
throw new Error("not a string: " + x); | ||
} | ||
@@ -167,3 +168,3 @@ } | ||
} | ||
return 'one of ' + expected.join(', '); | ||
return "one of " + expected.join(", "); | ||
} | ||
@@ -175,23 +176,29 @@ | ||
if (i === input.length) { | ||
return ', got the end of the input'; | ||
return ", got the end of the input"; | ||
} | ||
var prefix = (i > 0 ? '\'...' : '\''); | ||
var suffix = (input.length - i > 12 ? '...\'' : '\''); | ||
return ' at line ' + index.line + ' column ' + index.column | ||
+ ', got ' + prefix + input.slice(i, i + 12) + suffix; | ||
var prefix = i > 0 ? "'..." : "'"; | ||
var suffix = input.length - i > 12 ? "...'" : "'"; | ||
return ( | ||
" at line " + | ||
index.line + | ||
" column " + | ||
index.column + | ||
", got " + | ||
prefix + | ||
input.slice(i, i + 12) + | ||
suffix | ||
); | ||
} | ||
function formatError(input, error) { | ||
return 'expected ' + | ||
formatExpected(error.expected) + | ||
formatGot(input, error); | ||
return "expected " + formatExpected(error.expected) + formatGot(input, error); | ||
} | ||
function flags(re) { | ||
var s = '' + re; | ||
return s.slice(s.lastIndexOf('/') + 1); | ||
var s = "" + re; | ||
return s.slice(s.lastIndexOf("/") + 1); | ||
} | ||
function anchoredRegexp(re) { | ||
return RegExp('^(?:' + re.source + ')', flags(re)); | ||
return RegExp("^(?:" + re.source + ")", flags(re)); | ||
} | ||
@@ -234,9 +241,7 @@ | ||
var isWellFormed = | ||
p.length === 2 && | ||
typeof p[0] === 'string' && | ||
isParser(p[1]); | ||
p.length === 2 && typeof p[0] === "string" && isParser(p[1]); | ||
if (isWellFormed) { | ||
var key = p[0]; | ||
if (seenKeys[key]) { | ||
throw new Error('seqObj: duplicate key ' + key); | ||
throw new Error("seqObj: duplicate key " + key); | ||
} | ||
@@ -249,8 +254,7 @@ seenKeys[key] = true; | ||
throw new Error( | ||
'seqObj arguments must be parsers or ' + | ||
'[string, parser] array pairs.' | ||
"seqObj arguments must be parsers or [string, parser] array pairs." | ||
); | ||
} | ||
if (totalKeys === 0) { | ||
throw new Error('seqObj expects at least one named parser, found zero'); | ||
throw new Error("seqObj expects at least one named parser, found zero"); | ||
} | ||
@@ -286,3 +290,3 @@ return Parsimmon(function(input, i) { | ||
if (args.length === 0) { | ||
throw new Error('seqMap needs at least one argument'); | ||
throw new Error("seqMap needs at least one argument"); | ||
} | ||
@@ -306,3 +310,3 @@ var mapper = args.pop(); | ||
language[key] = lazy(func); | ||
}(key)); | ||
})(key); | ||
} | ||
@@ -317,3 +321,3 @@ } | ||
if (numParsers === 0) { | ||
return fail('zero alternates'); | ||
return fail("zero alternates"); | ||
} | ||
@@ -344,6 +348,4 @@ for (var j = 0; j < numParsers; j += 1) { | ||
var pairs = separator.then(parser).many(); | ||
return parser.chain(function(r) { | ||
return pairs.map(function(rs) { | ||
return [r].concat(rs); | ||
}); | ||
return seqMap(parser, pairs, function(r, rs) { | ||
return [r].concat(rs); | ||
}); | ||
@@ -355,4 +357,4 @@ } | ||
_.parse = function(input) { | ||
if (typeof input !== 'string') { | ||
throw new Error('.parse must be called with a string as its argument'); | ||
if (typeof input !== "string") { | ||
throw new Error(".parse must be called with a string as its argument"); | ||
} | ||
@@ -382,3 +384,3 @@ var result = this.skip(eof)._(input, 0); | ||
var err = new Error(msg); | ||
err.type = 'ParsimmonError'; | ||
err.type = "ParsimmonError"; | ||
err.result = result; | ||
@@ -398,10 +400,5 @@ throw err; | ||
_.wrap = function(leftParser, rightParser) { | ||
return seqMap( | ||
leftParser, | ||
this, | ||
rightParser, | ||
function(left, middle) { | ||
return middle; | ||
} | ||
); | ||
return seqMap(leftParser, this, rightParser, function(left, middle) { | ||
return middle; | ||
}); | ||
}; | ||
@@ -415,3 +412,5 @@ | ||
assertParser(next); | ||
return seq(this, next).map(function(results) { return results[1]; }); | ||
return seq(this, next).map(function(results) { | ||
return results[1]; | ||
}); | ||
}; | ||
@@ -429,2 +428,8 @@ | ||
if (result.status) { | ||
if (i === result.index) { | ||
throw new Error( | ||
"infinite loop detected in .many() parser --- calling .many() on " + | ||
"a parser which can accept zero characters is usually the cause" | ||
); | ||
} | ||
i = result.index; | ||
@@ -442,3 +447,3 @@ accum.push(result.value); | ||
assertArray(args); | ||
var s = ''; | ||
var s = ""; | ||
for (var i = 0; i < args.length; i++) { | ||
@@ -516,3 +521,5 @@ assertString(args[i]); | ||
_.skip = function(next) { | ||
return seq(this, next).map(function(results) { return results[0]; }); | ||
return seq(this, next).map(function(results) { | ||
return results[0]; | ||
}); | ||
}; | ||
@@ -594,3 +601,3 @@ | ||
assertString(str); | ||
var expected = '\'' + str + '\''; | ||
var expected = "'" + str + "'"; | ||
return Parsimmon(function(input, i) { | ||
@@ -615,3 +622,3 @@ var j = i + str.length; | ||
var anchored = anchoredRegexp(re); | ||
var expected = '' + re; | ||
var expected = "" + re; | ||
return Parsimmon(function(input, i) { | ||
@@ -626,3 +633,3 @@ var match = anchored.exec(input.slice(i)); | ||
var message = | ||
'valid match group (0 to ' + match.length + ') in ' + expected; | ||
"valid match group (0 to " + match.length + ") in " + expected; | ||
return makeFailure(i, message); | ||
@@ -651,6 +658,6 @@ } | ||
result.index = i; | ||
result.value = ''; | ||
result.value = ""; | ||
return result; | ||
}); | ||
} else if (typeof x === 'string') { | ||
} else if (typeof x === "string") { | ||
return lookahead(string(x)); | ||
@@ -660,3 +667,3 @@ } else if (x instanceof RegExp) { | ||
} | ||
throw new Error('not a string, regexp, or parser: ' + x); | ||
throw new Error("not a string, regexp, or parser: " + x); | ||
} | ||
@@ -682,3 +689,3 @@ | ||
} else { | ||
return makeFailure(i, 'a character matching ' + predicate); | ||
return makeFailure(i, "a character matching " + predicate); | ||
} | ||
@@ -708,3 +715,3 @@ }); | ||
return begin <= ch && ch <= end; | ||
}).desc(begin + '-' + end); | ||
}).desc(begin + "-" + end); | ||
} | ||
@@ -745,3 +752,3 @@ | ||
function empty() { | ||
return fail('fantasy-land/empty'); | ||
return fail("fantasy-land/empty"); | ||
} | ||
@@ -752,8 +759,8 @@ | ||
_.of = succeed; | ||
_['fantasy-land/ap'] = _.ap; | ||
_['fantasy-land/chain'] = _.chain; | ||
_['fantasy-land/concat'] = _.concat; | ||
_['fantasy-land/empty'] = _.empty; | ||
_['fantasy-land/of'] = _.of; | ||
_['fantasy-land/map'] = _.map; | ||
_["fantasy-land/ap"] = _.ap; | ||
_["fantasy-land/chain"] = _.chain; | ||
_["fantasy-land/concat"] = _.concat; | ||
_["fantasy-land/empty"] = _.empty; | ||
_["fantasy-land/of"] = _.of; | ||
_["fantasy-land/map"] = _.map; | ||
@@ -768,3 +775,3 @@ // -*- Base Parsers -*- | ||
if (i >= input.length) { | ||
return makeFailure(i, 'any character'); | ||
return makeFailure(i, "any character"); | ||
} | ||
@@ -780,3 +787,3 @@ return makeSuccess(i + 1, input.charAt(i)); | ||
if (i < input.length) { | ||
return makeFailure(i, 'EOF'); | ||
return makeFailure(i, "EOF"); | ||
} | ||
@@ -786,8 +793,8 @@ return makeSuccess(i, null); | ||
var digit = regexp(/[0-9]/).desc('a digit'); | ||
var digits = regexp(/[0-9]*/).desc('optional digits'); | ||
var letter = regexp(/[a-z]/i).desc('a letter'); | ||
var letters = regexp(/[a-z]*/i).desc('optional letters'); | ||
var optWhitespace = regexp(/\s*/).desc('optional whitespace'); | ||
var whitespace = regexp(/\s+/).desc('whitespace'); | ||
var digit = regexp(/[0-9]/).desc("a digit"); | ||
var digits = regexp(/[0-9]*/).desc("optional digits"); | ||
var letter = regexp(/[a-z]/i).desc("a letter"); | ||
var letters = regexp(/[a-z]*/i).desc("optional letters"); | ||
var optWhitespace = regexp(/\s*/).desc("optional whitespace"); | ||
var whitespace = regexp(/\s+/).desc("whitespace"); | ||
@@ -832,5 +839,5 @@ Parsimmon.all = all; | ||
Parsimmon.whitespace = whitespace; | ||
Parsimmon['fantasy-land/empty'] = empty; | ||
Parsimmon['fantasy-land/of'] = succeed; | ||
Parsimmon["fantasy-land/empty"] = empty; | ||
Parsimmon["fantasy-land/of"] = succeed; | ||
module.exports = Parsimmon; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
41352
719