pari

A simple parser combinator.

Usage no npm install needed!

<script type="module">
  import pari from 'https://cdn.skypack.dev/pari';
</script>

README

pari

A simple parser combinator.

usage


import { char, zeroOrMore } from 'pari';

// char takes a Regex that matches one character.
const charResult = char('[a-z]').run('s');

// parsers may take other parsers as arguments
const zomResult = zeroOrMore(char('[a-z]')).run('string');

available parsers

import {
  char,
  zeroOrMore,
  sequence,
  oneOrMore,
  spaceArround,
  separatedBy,
  between,
  zeroOrOne,
  spaceBefore,
  spaceAfter,
  lazy
} from 'pari';

define your parser

import { Parser } from 'pari';

const myParser = new Parser(state => {
  // do something with state
  return newState;
});

// parser has three methods

someParser.chain(anotherParser); // chain another parser.

someParser.map(state => {
  // do extra operations on the result.
  return newState;
});

someParser.mapErr(state => {
  // same as `map` but on error.
  return newState;
});