UNPKG

parser-ts

Version:

String parser combinators for TypeScript

55 lines (54 loc) 1.21 kB
import { Either } from 'fp-ts/lib/Either' import { Stream } from './Stream' /** * @category model * @since 0.6.0 */ export interface ParseError<I> { input: Stream<I> expected: Array<string> fatal: boolean } /** * @category model * @since 0.6.0 */ export interface ParseSuccess<I, A> { value: A next: Stream<I> start: Stream<I> } /** * @category model * @since 0.6.0 */ export type ParseResult<I, A> = Either<ParseError<I>, ParseSuccess<I, A>> /** * @category constructors * @since 0.6.0 */ export declare const success: <I, A>(value: A, next: Stream<I>, start: Stream<I>) => ParseResult<I, A> /** * @category constructors * @since 0.6.0 */ export declare const error: <I, A = never>( input: Stream<I>, expected?: Array<string>, fatal?: boolean ) => ParseResult<I, A> /** * @category combinators * @since 0.6.0 */ export declare const withExpected: <I>(err: ParseError<I>, expected: Array<string>) => ParseError<I> /** * @category combinators * @since 0.6.0 */ export declare const escalate: <I>(err: ParseError<I>) => ParseError<I> /** * @category combinators * @since 0.6.0 */ export declare const extend: <I>(err1: ParseError<I>, err2: ParseError<I>) => ParseError<I>