Skip to main content
Module

x/pazza/mod.ts>serial

Parser combinators library designed for Deno, but also works on browsers and Node.js.
Go to Latest
function serial
Re-export
import { serial } from "https://deno.land/x/pazza@v0.3.0/mod.ts";

Execute a series of parsers and follow its order. Once a parser fails, the whole parser will fail and return last parsing error.

const parser = serial(char("<"), char("-"), char(">"));
parser("<->").output; // ==> ["<", "-", ">"]
parser(">-<").ok === false;
parser("<-!").ok === false;
parser("<_>").ok === false;

Type Parameters

P extends IParser<unknown, unknown, string, unknown, unknown>[]

Parameters

...parsers: P

Series of parser. Order is sensitive.

Returns

SerialParser<string, P>

Execute a series of parsers and follow its order. Once a parser fails, the whole parser will fail and return last parsing error.

const parser = serial(byte(13), byte(10), byte(65));
parser(Uint8Array.of(13, 10, 65)).output; // ==> Uint8Array [13, 10, 65]
parser(Uint8Array.of(13, 65, 10)).ok === false;
parser(Uint8Array.of(13, 10, 66)).ok === false;
parser(Uint8Array.of(13, 11, 65)).ok === false;

Type Parameters

P extends IParser<unknown, unknown, Uint8Array, unknown, unknown>[]

Parameters

...parsers: P

Series of parser. Order is sensitive.

Returns

SerialParser<Uint8Array, P>