Socket
Socket
Sign inDemoInstall

parsimmon

Package Overview
Dependencies
Maintainers
3
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

parsimmon - npm Package Compare versions

Comparing version 0.9.0 to 0.9.1

21

build/parsimmon.browser.js

@@ -121,3 +121,3 @@ // This unsightly UMD-module header is here to make this code work without

if (!(x instanceof RegExp)) {
throw new Error('not a regex: '+x);
throw new Error('not a regexp: '+x);
}

@@ -215,3 +215,7 @@ var f = flags(x);

var args = [].slice.call(arguments);
if (args.length === 0) {
throw new Error('seqMap needs at least one argument');
}
var mapper = args.pop();
assertFunction(mapper);
return seq.apply(null, args).map(function(results) {

@@ -438,3 +442,3 @@ return mapper.apply(null, results);

var regex = Parsimmon.regex = function(re, group) {
var regexp = Parsimmon.regexp = function(re, group) {
assertRegexp(re);

@@ -464,2 +468,3 @@ if (arguments.length >= 2) {

};
Parsimmon.regex = regexp;

@@ -476,8 +481,8 @@ var succeed = Parsimmon.succeed = function(value) {

var letter = Parsimmon.letter = regex(/[a-z]/i).desc('a letter')
var letters = Parsimmon.letters = regex(/[a-z]*/i)
var digit = Parsimmon.digit = regex(/[0-9]/).desc('a digit');
var digits = Parsimmon.digits = regex(/[0-9]*/)
var whitespace = Parsimmon.whitespace = regex(/\s+/).desc('whitespace');
var optWhitespace = Parsimmon.optWhitespace = regex(/\s*/);
var letter = Parsimmon.letter = regexp(/[a-z]/i).desc('a letter')
var letters = Parsimmon.letters = regexp(/[a-z]*/i)
var digit = Parsimmon.digit = regexp(/[0-9]/).desc('a digit');
var digits = Parsimmon.digits = regexp(/[0-9]*/)
var whitespace = Parsimmon.whitespace = regexp(/\s+/).desc('whitespace');
var optWhitespace = Parsimmon.optWhitespace = regexp(/\s*/);

@@ -484,0 +489,0 @@ var any = Parsimmon.any = Parser(function(stream, i) {

@@ -1,1 +0,1 @@

(function(r,t){if(typeof define==="function"&&define.amd){define([],t)}else if(typeof module==="object"&&module.exports){module.exports=t()}else{r.Parsimmon=t()}})(this,function(){"use strict";var r={};function t(r){if(!(this instanceof t))return new t(r);this._=r}r.Parser=t;var n=t.prototype;function e(r,t){return{status:true,index:r,value:t,furthest:-1,expected:[]}}function u(r,t){return{status:false,index:-1,value:null,furthest:r,expected:[t]}}function i(r,t){if(!t)return r;if(r.furthest>t.furthest)return r;var n=r.furthest===t.furthest?a(r.expected,t.expected):t.expected;return{status:r.status,index:r.index,value:r.value,furthest:t.furthest,expected:n}}function a(r,t){var n=r.length;var e=t.length;if(n===0){return t}else if(e===0){return r}var u={};for(var i=0;i<n;i++){u[r[i]]=true}for(var i=0;i<e;i++){u[t[i]]=true}var a=[];for(var f in u){if(u.hasOwnProperty(f)){a.push(f)}}a.sort();return a}function f(r){if(!(r instanceof t)){throw new Error("not a parser: "+r)}}function o(r){if(typeof r!=="number"){throw new Error("not a number: "+r)}}function s(r){if(!(r instanceof RegExp)){throw new Error("not a regex: "+r)}var t=E(r);for(var n=0;n<t.length;n++){var e=t.charAt(n);if(e!="i"&&e!="m"&&e!="u"){throw new Error('unsupported regexp flag "'+e+'": '+r)}}}function c(r){if(typeof r!=="function"){throw new Error("not a function: "+r)}}function v(r){if(typeof r!=="string"){throw new Error("not a string: "+r)}}function l(r){if(r.length===1)return r[0];return"one of "+r.join(", ")}function h(r,t){var n=t.index;var e=n.offset;if(e===r.length)return", got the end of the stream";var u=e>0?"'...":"'";var i=r.length-e>12?"...'":"'";return" at line "+n.line+" column "+n.column+", got "+u+r.slice(e,e+12)+i}var p=r.formatError=function(r,t){return"expected "+l(t.expected)+h(r,t)};n.parse=function(r){if(typeof r!=="string"){throw new Error(".parse must be called with a string as its argument")}var t=this.skip(W)._(r,0);return t.status?{status:true,value:t.value}:{status:false,index:G(r,t.furthest),expected:t.expected}};var d=r.seq=function(){var r=[].slice.call(arguments);var n=r.length;for(var u=0;u<n;u+=1){f(r[u])}return t(function(t,u){var a;var f=new Array(n);for(var o=0;o<n;o+=1){a=i(r[o]._(t,u),a);if(!a.status)return a;f[o]=a.value;u=a.index}return i(e(u,f),a)})};var g=r.seqMap=function(){var r=[].slice.call(arguments);var t=r.pop();return d.apply(null,r).map(function(r){return t.apply(null,r)})};var x=r.custom=function(r){return t(r(e,u))};var m=r.alt=function(){var r=[].slice.call(arguments);var n=r.length;if(n===0)return k("zero alternates");for(var e=0;e<n;e+=1){f(r[e])}return t(function(t,n){var e;for(var u=0;u<r.length;u+=1){e=i(r[u]._(t,n),e);if(e.status)return e}return e})};var w=r.sepBy=function(t,n){return y(t,n).or(r.of([]))};var y=r.sepBy1=function(r,t){f(r);f(t);var n=t.then(r).many();return r.chain(function(r){return n.map(function(t){return[r].concat(t)})})};n.or=function(r){return m(this,r)};n.then=function(r){if(typeof r==="function"){throw new Error("chaining features of .then are no longer supported, use .chain instead")}f(r);return d(this,r).map(function(r){return r[1]})};n.many=function(){var r=this;return t(function(t,n){var u=[];var a;var f;for(;;){a=i(r._(t,n),a);if(a.status){n=a.index;u.push(a.value)}else{return i(e(n,u),a)}}})};n.times=function(r,n){if(arguments.length<2)n=r;var u=this;o(r);o(n);return t(function(t,a){var f=[];var o=a;var s;var c;for(var v=0;v<r;v+=1){s=u._(t,a);c=i(s,c);if(s.status){a=s.index;f.push(s.value)}else return c}for(;v<n;v+=1){s=u._(t,a);c=i(s,c);if(s.status){a=s.index;f.push(s.value)}else break}return i(e(a,f),c)})};n.result=function(r){return this.map(function(t){return r})};n.atMost=function(r){return this.times(0,r)};n.atLeast=function(r){var t=this;return g(this.times(r),this.many(),function(r,t){return r.concat(t)})};n.map=function(r){c(r);var n=this;return t(function(t,u){var a=n._(t,u);if(!a.status)return a;return i(e(a.index,r(a.value)),a)})};n.skip=function(r){return d(this,r).map(function(r){return r[0]})};n.mark=function(){return g(H,this,H,function(r,t,n){return{start:r,value:t,end:n}})};n.desc=function(r){var n=this;return t(function(t,e){var u=n._(t,e);if(!u.status)u.expected=[r];return u})};var _=r.string=function(r){var n=r.length;var i="'"+r+"'";v(r);return t(function(t,a){var f=t.slice(a,a+n);if(f===r){return e(a+n,f)}else{return u(a,i)}})};var E=function(r){var t=""+r;return t.slice(t.lastIndexOf("/")+1)};var O=r.regex=function(r,n){s(r);if(arguments.length>=2){o(n)}else{n=0}var i=RegExp("^(?:"+r.source+")",E(r));var a=""+r;return t(function(r,t){var f=i.exec(r.slice(t));if(f){var o=f[0];var s=f[n];if(s!=null){return e(t+o.length,s)}}return u(t,a)})};var b=r.succeed=function(r){return t(function(t,n){return e(n,r)})};var k=r.fail=function(r){return t(function(t,n){return u(n,r)})};var A=r.letter=O(/[a-z]/i).desc("a letter");var z=r.letters=O(/[a-z]*/i);var P=r.digit=O(/[0-9]/).desc("a digit");var j=r.digits=O(/[0-9]*/);var q=r.whitespace=O(/\s+/).desc("whitespace");var B=r.optWhitespace=O(/\s*/);var M=r.any=t(function(r,t){if(t>=r.length)return u(t,"any character");return e(t+1,r.charAt(t))});var R=r.all=t(function(r,t){return e(r.length,r.slice(t))});var W=r.eof=t(function(r,t){if(t<r.length)return u(t,"EOF");return e(t,null)});var F=r.test=function(r){c(r);return t(function(t,n){var i=t.charAt(n);if(n<t.length&&r(i)){return e(n+1,i)}else{return u(n,"a character matching "+r)}})};var I=r.oneOf=function(r){return F(function(t){return r.indexOf(t)>=0})};var L=r.noneOf=function(r){return F(function(t){return r.indexOf(t)<0})};var C=r.takeWhile=function(r){c(r);return t(function(t,n){var u=n;while(u<t.length&&r(t.charAt(u)))u+=1;return e(u,t.slice(n,u))})};var D=r.lazy=function(r,n){if(arguments.length<2){n=r;r=undefined}var e=t(function(r,t){e._=n()._;return e._(r,t)});if(r)e=e.desc(r);return e};var G=function(r,t){var n=r.slice(0,t).split("\n");var e=n.length;var u=n[n.length-1].length+1;return{offset:t,line:e,column:u}};var H=r.index=t(function(r,t){return e(t,G(r,t))});n.concat=n.or;n.empty=k("empty");n.of=t.of=r.of=b;n.ap=function(r){return g(this,r,function(r,t){return r(t)})};n.chain=function(r){var n=this;return t(function(t,e){var u=n._(t,e);if(!u.status)return u;var a=r(u.value);return i(a._(t,u.index),u)})};return r});
(function(r,t){if(typeof define==="function"&&define.amd){define([],t)}else if(typeof module==="object"&&module.exports){module.exports=t()}else{r.Parsimmon=t()}})(this,function(){"use strict";var r={};function t(r){if(!(this instanceof t))return new t(r);this._=r}r.Parser=t;var n=t.prototype;function e(r,t){return{status:true,index:r,value:t,furthest:-1,expected:[]}}function u(r,t){return{status:false,index:-1,value:null,furthest:r,expected:[t]}}function a(r,t){if(!t)return r;if(r.furthest>t.furthest)return r;var n=r.furthest===t.furthest?i(r.expected,t.expected):t.expected;return{status:r.status,index:r.index,value:r.value,furthest:t.furthest,expected:n}}function i(r,t){var n=r.length;var e=t.length;if(n===0){return t}else if(e===0){return r}var u={};for(var a=0;a<n;a++){u[r[a]]=true}for(var a=0;a<e;a++){u[t[a]]=true}var i=[];for(var f in u){if(u.hasOwnProperty(f)){i.push(f)}}i.sort();return i}function f(r){if(!(r instanceof t)){throw new Error("not a parser: "+r)}}function o(r){if(typeof r!=="number"){throw new Error("not a number: "+r)}}function s(r){if(!(r instanceof RegExp)){throw new Error("not a regexp: "+r)}var t=E(r);for(var n=0;n<t.length;n++){var e=t.charAt(n);if(e!="i"&&e!="m"&&e!="u"){throw new Error('unsupported regexp flag "'+e+'": '+r)}}}function c(r){if(typeof r!=="function"){throw new Error("not a function: "+r)}}function v(r){if(typeof r!=="string"){throw new Error("not a string: "+r)}}function l(r){if(r.length===1)return r[0];return"one of "+r.join(", ")}function h(r,t){var n=t.index;var e=n.offset;if(e===r.length)return", got the end of the stream";var u=e>0?"'...":"'";var a=r.length-e>12?"...'":"'";return" at line "+n.line+" column "+n.column+", got "+u+r.slice(e,e+12)+a}var p=r.formatError=function(r,t){return"expected "+l(t.expected)+h(r,t)};n.parse=function(r){if(typeof r!=="string"){throw new Error(".parse must be called with a string as its argument")}var t=this.skip(W)._(r,0);return t.status?{status:true,value:t.value}:{status:false,index:G(r,t.furthest),expected:t.expected}};var d=r.seq=function(){var r=[].slice.call(arguments);var n=r.length;for(var u=0;u<n;u+=1){f(r[u])}return t(function(t,u){var i;var f=new Array(n);for(var o=0;o<n;o+=1){i=a(r[o]._(t,u),i);if(!i.status)return i;f[o]=i.value;u=i.index}return a(e(u,f),i)})};var g=r.seqMap=function(){var r=[].slice.call(arguments);if(r.length===0){throw new Error("seqMap needs at least one argument")}var t=r.pop();c(t);return d.apply(null,r).map(function(r){return t.apply(null,r)})};var x=r.custom=function(r){return t(r(e,u))};var m=r.alt=function(){var r=[].slice.call(arguments);var n=r.length;if(n===0)return k("zero alternates");for(var e=0;e<n;e+=1){f(r[e])}return t(function(t,n){var e;for(var u=0;u<r.length;u+=1){e=a(r[u]._(t,n),e);if(e.status)return e}return e})};var w=r.sepBy=function(t,n){return y(t,n).or(r.of([]))};var y=r.sepBy1=function(r,t){f(r);f(t);var n=t.then(r).many();return r.chain(function(r){return n.map(function(t){return[r].concat(t)})})};n.or=function(r){return m(this,r)};n.then=function(r){if(typeof r==="function"){throw new Error("chaining features of .then are no longer supported, use .chain instead")}f(r);return d(this,r).map(function(r){return r[1]})};n.many=function(){var r=this;return t(function(t,n){var u=[];var i;var f;for(;;){i=a(r._(t,n),i);if(i.status){n=i.index;u.push(i.value)}else{return a(e(n,u),i)}}})};n.times=function(r,n){if(arguments.length<2)n=r;var u=this;o(r);o(n);return t(function(t,i){var f=[];var o=i;var s;var c;for(var v=0;v<r;v+=1){s=u._(t,i);c=a(s,c);if(s.status){i=s.index;f.push(s.value)}else return c}for(;v<n;v+=1){s=u._(t,i);c=a(s,c);if(s.status){i=s.index;f.push(s.value)}else break}return a(e(i,f),c)})};n.result=function(r){return this.map(function(t){return r})};n.atMost=function(r){return this.times(0,r)};n.atLeast=function(r){var t=this;return g(this.times(r),this.many(),function(r,t){return r.concat(t)})};n.map=function(r){c(r);var n=this;return t(function(t,u){var i=n._(t,u);if(!i.status)return i;return a(e(i.index,r(i.value)),i)})};n.skip=function(r){return d(this,r).map(function(r){return r[0]})};n.mark=function(){return g(H,this,H,function(r,t,n){return{start:r,value:t,end:n}})};n.desc=function(r){var n=this;return t(function(t,e){var u=n._(t,e);if(!u.status)u.expected=[r];return u})};var _=r.string=function(r){var n=r.length;var a="'"+r+"'";v(r);return t(function(t,i){var f=t.slice(i,i+n);if(f===r){return e(i+n,f)}else{return u(i,a)}})};var E=function(r){var t=""+r;return t.slice(t.lastIndexOf("/")+1)};var O=r.regexp=function(r,n){s(r);if(arguments.length>=2){o(n)}else{n=0}var a=RegExp("^(?:"+r.source+")",E(r));var i=""+r;return t(function(r,t){var f=a.exec(r.slice(t));if(f){var o=f[0];var s=f[n];if(s!=null){return e(t+o.length,s)}}return u(t,i)})};r.regex=O;var b=r.succeed=function(r){return t(function(t,n){return e(n,r)})};var k=r.fail=function(r){return t(function(t,n){return u(n,r)})};var A=r.letter=O(/[a-z]/i).desc("a letter");var z=r.letters=O(/[a-z]*/i);var q=r.digit=O(/[0-9]/).desc("a digit");var M=r.digits=O(/[0-9]*/);var P=r.whitespace=O(/\s+/).desc("whitespace");var j=r.optWhitespace=O(/\s*/);var B=r.any=t(function(r,t){if(t>=r.length)return u(t,"any character");return e(t+1,r.charAt(t))});var R=r.all=t(function(r,t){return e(r.length,r.slice(t))});var W=r.eof=t(function(r,t){if(t<r.length)return u(t,"EOF");return e(t,null)});var F=r.test=function(r){c(r);return t(function(t,n){var a=t.charAt(n);if(n<t.length&&r(a)){return e(n+1,a)}else{return u(n,"a character matching "+r)}})};var I=r.oneOf=function(r){return F(function(t){return r.indexOf(t)>=0})};var L=r.noneOf=function(r){return F(function(t){return r.indexOf(t)<0})};var C=r.takeWhile=function(r){c(r);return t(function(t,n){var u=n;while(u<t.length&&r(t.charAt(u)))u+=1;return e(u,t.slice(n,u))})};var D=r.lazy=function(r,n){if(arguments.length<2){n=r;r=undefined}var e=t(function(r,t){e._=n()._;return e._(r,t)});if(r)e=e.desc(r);return e};var G=function(r,t){var n=r.slice(0,t).split("\n");var e=n.length;var u=n[n.length-1].length+1;return{offset:t,line:e,column:u}};var H=r.index=t(function(r,t){return e(t,G(r,t))});n.concat=n.or;n.empty=k("empty");n.of=t.of=r.of=b;n.ap=function(r){return g(this,r,function(r,t){return r(t)})};n.chain=function(r){var n=this;return t(function(t,e){var u=n._(t,e);if(!u.status)return u;var i=r(u.value);return a(i._(t,u.index),u)})};return r});

@@ -0,1 +1,6 @@

## version 0.9.1 (2016-07-08)
* `P.regex` is now an alias for `P.regexp`.
* `P.seqMap` now throws when passed zero arguments, or when the final argument is not a function.
## version 0.9.0 (2016-07-07)

@@ -2,0 +7,0 @@

{
"name": "parsimmon",
"version": "0.9.0",
"version": "0.9.1",
"description": "A monadic LL(infinity) parser combinator library",

@@ -5,0 +5,0 @@ "keywords": [

@@ -18,3 +18,3 @@ [![Build Status](https://secure.travis-ci.org/jneen/parsimmon.png)](http://travis-ci.org/jneen/parsimmon)

```javascript
var regex = Parsimmon.regex;
var regexp = Parsimmon.regexp;
var string = Parsimmon.string;

@@ -33,4 +33,4 @@ var optWhitespace = Parsimmon.optWhitespace;

var number = lexeme(regex(/[0-9]+/).map(Number));
var id = lexeme(regex(/[a-zA-Z_]\w*/));
var number = lexeme(regexp(/[0-9]+/).map(Number));
var id = lexeme(regexp(/[a-zA-Z_]\w*/));

@@ -79,5 +79,6 @@ var atom = number.or(id);

and will yield the same.
- `Parsimmon.regex(/myregex/, group=0)` is a parser that expects the stream
- `Parsimmon.regexp(/regexp/, group=0)` is a parser that expects the stream
to match the given regexp, and yields the given match group, or the
entire match. The regexp will always match starting at the current parse location. The regexp may only use the following flags: `imu`. `Parsimmon.regex` will throw an error for any other flag.
entire match. The regexp will always match starting at the current parse location. The regexp may only use the following flags: `imu`. `Parsimmon.regexp` will throw an error for any other flag.
- `Parsimmon.regex` is an alias for `Parsimmon.regexp`.
- `Parsimmon.succeed(result)` is a parser that doesn't consume any of

@@ -105,8 +106,8 @@ the string, and yields `result`.

- `Parsimmon.fail(message)` returns a failing parser with the given message.
- `Parsimmon.letter` is equivalent to `Parsimmon.regex(/[a-z]/i)`
- `Parsimmon.letters` is equivalent to `Parsimmon.regex(/[a-z]*/i)`
- `Parsimmon.digit` is equivalent to `Parsimmon.regex(/[0-9]/)`
- `Parsimmon.digits` is equivalent to `Parsimmon.regex(/[0-9]*/)`
- `Parsimmon.whitespace` is equivalent to `Parsimmon.regex(/\s+/)`
- `Parsimmon.optWhitespace` is equivalent to `Parsimmon.regex(/\s*/)`
- `Parsimmon.letter` is equivalent to `Parsimmon.regexp(/[a-z]/i)`
- `Parsimmon.letters` is equivalent to `Parsimmon.regexp(/[a-z]*/i)`
- `Parsimmon.digit` is equivalent to `Parsimmon.regexp(/[0-9]/)`
- `Parsimmon.digits` is equivalent to `Parsimmon.regexp(/[0-9]*/)`
- `Parsimmon.whitespace` is equivalent to `Parsimmon.regexp(/\s+/)`
- `Parsimmon.optWhitespace` is equivalent to `Parsimmon.regexp(/\s*/)`
- `Parsimmon.any` consumes and yields the next character of the stream.

@@ -205,3 +206,3 @@ - `Parsimmon.all` consumes and yields the entire remainder of the stream.

var rparen = lexeme(string(')'));
var number = lexeme(regex(/[0-9]+/)).map(parseInt);
var number = lexeme(regexp(/[0-9]+/)).map(parseInt);
```

@@ -208,0 +209,0 @@

@@ -121,3 +121,3 @@ // This unsightly UMD-module header is here to make this code work without

if (!(x instanceof RegExp)) {
throw new Error('not a regex: '+x);
throw new Error('not a regexp: '+x);
}

@@ -215,3 +215,7 @@ var f = flags(x);

var args = [].slice.call(arguments);
if (args.length === 0) {
throw new Error('seqMap needs at least one argument');
}
var mapper = args.pop();
assertFunction(mapper);
return seq.apply(null, args).map(function(results) {

@@ -438,3 +442,3 @@ return mapper.apply(null, results);

var regex = Parsimmon.regex = function(re, group) {
var regexp = Parsimmon.regexp = function(re, group) {
assertRegexp(re);

@@ -464,2 +468,3 @@ if (arguments.length >= 2) {

};
Parsimmon.regex = regexp;

@@ -476,8 +481,8 @@ var succeed = Parsimmon.succeed = function(value) {

var letter = Parsimmon.letter = regex(/[a-z]/i).desc('a letter')
var letters = Parsimmon.letters = regex(/[a-z]*/i)
var digit = Parsimmon.digit = regex(/[0-9]/).desc('a digit');
var digits = Parsimmon.digits = regex(/[0-9]*/)
var whitespace = Parsimmon.whitespace = regex(/\s+/).desc('whitespace');
var optWhitespace = Parsimmon.optWhitespace = regex(/\s*/);
var letter = Parsimmon.letter = regexp(/[a-z]/i).desc('a letter')
var letters = Parsimmon.letters = regexp(/[a-z]*/i)
var digit = Parsimmon.digit = regexp(/[0-9]/).desc('a digit');
var digits = Parsimmon.digits = regexp(/[0-9]*/)
var whitespace = Parsimmon.whitespace = regexp(/\s+/).desc('whitespace');
var optWhitespace = Parsimmon.optWhitespace = regexp(/\s*/);

@@ -484,0 +489,0 @@ var any = Parsimmon.any = Parser(function(stream, i) {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc