RunKit + npm: parsimmon

node v10.24.1
version: master
endpointsharetweet
var P = Parsimmon = require("parsimmon@1.8.0") var assert = require('assert') var except = function (allowed, forbidden) { return Parsimmon.Parser(function (stream, i) { var forbiddenResult = forbidden._(stream, i) if (forbiddenResult.status) { return Parsimmon.makeFailure(i, "something that is not '" + forbiddenResult.value + "'") } else { var allowedResult = allowed._(stream, i) if (allowedResult.status) { return allowedResult } else { return Parsimmon.makeFailure(i, allowedResult.expected.join(',') + ' (except ' + forbiddenResult.expected.join(',') + ')') } } }) } var nonBLetter = except(P.letter, P.string('b')) console.log( nonBLetter.parse('a').status ) // => true console.log( nonBLetter.parse('c').status ) // => true console.log( nonBLetter.parse('b').status ) // => false console.log( nonBLetter.parse('b').expected ) // => [ 'something that is not \'b\'' ] console.log( nonBLetter.parse('/').expected ) // => [ 'a letter (except \'b\')' ]
Created from: https://runkit.com/npm/parsimmon
Loading…

no comments

    sign in to comment