Comparing version 1.2.0 to 1.3.0
15
index.js
@@ -7,3 +7,3 @@ "use strict"; | ||
exports.Parser = Parser; | ||
exports.toValue = exports.toPromise = exports.takeLeft = exports.takeRight = exports.recursiveParser = exports.whitespace = exports.skip = exports.possibly = exports.lookAhead = exports.anythingExcept = exports.everythingUntil = exports.between = exports.choice = exports.sepBy1 = exports.sepBy = exports.sequenceOf = exports.namedSequenceOf = exports.anyOfString = exports.letters = exports.letter = exports.digits = exports.digit = exports.regex = exports.str = exports.char = exports.leftMapTo = exports.mapTo = exports.many1 = exports.many = exports.succeedWith = exports.fail = exports.decide = exports.parse = exports.tapParser = exports.composeParsers = exports.pipeParsers = void 0; | ||
exports.toValue = exports.toPromise = exports.takeLeft = exports.takeRight = exports.recursiveParser = exports.whitespace = exports.endOfInput = exports.skip = exports.possibly = exports.lookAhead = exports.anythingExcept = exports.everythingUntil = exports.between = exports.choice = exports.sepBy1 = exports.sepBy = exports.sequenceOf = exports.namedSequenceOf = exports.anyOfString = exports.letters = exports.letter = exports.digits = exports.digit = exports.regex = exports.str = exports.char = exports.leftMapTo = exports.mapTo = exports.many1 = exports.many = exports.succeedWith = exports.fail = exports.decide = exports.parse = exports.tapParser = exports.composeParsers = exports.pipeParsers = void 0; | ||
@@ -597,6 +597,17 @@ var _data = require("data.either"); | ||
}); | ||
}; // whitespace :: Parser e a String | ||
}; // endOfInput :: Parser e a b | ||
exports.skip = skip; | ||
const endOfInput = new Parser(function endOfInput$state(state) { | ||
return state.chain(function endOfInput$state$chain([index, targetString]) { | ||
if (index !== targetString.length) { | ||
return (0, _data.Left)([index, `ParseError 'endOfInput' (position ${index}): Expected end of input but got '${targetString.slice(index, index + 1)}'`]); | ||
} | ||
return (0, _data.Right)([index, targetString, null]); | ||
}); | ||
}); // whitespace :: Parser e a String | ||
exports.endOfInput = endOfInput; | ||
const whitespace = many(anyOfString(' \n\t\r')).map(x => x.join('')); // recursiveParser :: (() => Parser e a b) -> Parser e a b | ||
@@ -603,0 +614,0 @@ |
{ | ||
"name": "arcsecond", | ||
"version": "1.2.0", | ||
"version": "1.3.0", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "index", |
@@ -718,2 +718,22 @@ # Arcsecond | ||
### endOfInput | ||
`endOfInput :: Parser e a b` | ||
`endOfInput` is a parser that only succeeds when there is no more input to be parsed. | ||
**Example** | ||
```javascript | ||
const newParser = sequenceOf ([ | ||
str ('abc'), | ||
endOfInput | ||
]); | ||
parse (newParser) ('abc') | ||
// -> Either.Right([ 'abc', null ]) | ||
parse (newParser) ('abcd') | ||
// -> Either.Left([ 3, 'ParseError \'endOfInput\' (position 3): Expected end of input but got \'d\'' ]) | ||
``` | ||
### skip | ||
@@ -720,0 +740,0 @@ |
Sorry, the diff of this file is not supported yet
277690
26
2847
1103