UNPKG

fruitsconfits

Version:

FruitsConfits - A well typed and sugared parser combinator framework for TypeScript/JavaScript.

24 lines (23 loc) 2.45 kB
import { ParserInputWithCtx, ParserFnFailedResult, ParserFnWithCtx } from './types'; export declare function formatErrorMessage<T extends ArrayLike<T[number]>, C, R>(result: ParserFnFailedResult<T, C, R>): string; export declare function zeroWidth<T extends ArrayLike<T[number]>, C, R>(helper?: () => R): ParserFnWithCtx<T, C, R>; export declare function zeroWidthError<T extends ArrayLike<T[number]>, C, R>(message: string): ParserFnWithCtx<T, C, R>; export declare function beginning<T extends ArrayLike<T[number]>, C, R>(helper?: () => R): ParserFnWithCtx<T, C, R>; export declare function end<T extends ArrayLike<T[number]>, C, R>(helper?: () => R): ParserFnWithCtx<T, C, R>; export declare function quantify<T extends ArrayLike<T[number]>, C, R>(min?: number, max?: number): (parser: ParserFnWithCtx<T, C, R>) => ParserFnWithCtx<T, C, R>; export declare function first<T extends ArrayLike<T[number]>, C, R>(...parsers: Array<ParserFnWithCtx<T, C, R>>): ParserFnWithCtx<T, C, R>; export declare function or<T extends ArrayLike<T[number]>, C, R>(...parsers: Array<ParserFnWithCtx<T, C, R>>): ParserFnWithCtx<T, C, R>; export declare function transform<T extends ArrayLike<T[number]>, C, R>(trans?: ((tokens: R[], input: ParserInputWithCtx<T, C>) => R[]), ctxTrans?: ((context: C) => C)): (...parsers: Array<ParserFnWithCtx<T, C, R>>) => ParserFnWithCtx<T, C, R>; export declare function combine<T extends ArrayLike<T[number]>, C, R>(...parsers: Array<ParserFnWithCtx<T, C, R>>): ParserFnWithCtx<T, C, R>; export declare function lookAhead<T extends ArrayLike<T[number]>, C, R>(...parsers: Array<ParserFnWithCtx<T, C, R>>): ParserFnWithCtx<T, C, R>; export declare function lookBehind<T extends ArrayLike<T[number]>, C, R>(n: number, helper?: () => R): (...parsers: Array<ParserFnWithCtx<T, C, R>>) => ParserFnWithCtx<T, C, R>; export declare type ApplyProductionRulesArg<T extends ArrayLike<T[number]>, C, R> = { rules: Array<ParserFnWithCtx<R[], C, R> | { parser: ParserFnWithCtx<R[], C, R>; rtol: boolean; }>; maxApply?: number; check: ParserFnWithCtx<R[], C, R>; }; export declare function applyProductionRules<T extends ArrayLike<T[number]>, C, R>(args: ApplyProductionRulesArg<T, C, R>): (lexer: ParserFnWithCtx<T, C, R>) => ParserFnWithCtx<T, C, R>; export declare function makeProgram<T extends ArrayLike<T[number]>, C, R>(parser: ParserFnWithCtx<T, C, R>): ParserFnWithCtx<T, C, R>;