fruitsconfits
Version:
FruitsConfits - A well typed and sugared parser combinator framework for TypeScript/JavaScript.
24 lines (23 loc) • 2.45 kB
TypeScript
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>;