fruitsconfits
Version:
FruitsConfits - A well typed and sugared parser combinator framework for TypeScript/JavaScript.
37 lines (36 loc) • 3.03 kB
TypeScript
import { ParserFnWithCtx } from './types';
import { ApplyProductionRulesArg, makeProgram } from './parser';
export declare function objSequence<T extends ArrayLike<T[number]>, C, R>(helper: (token: T[number]) => R, comparator: (a: T[number], b: T[number]) => boolean): (needle: T) => ParserFnWithCtx<T, C, R>;
export declare function objClass<T extends ArrayLike<T[number]>, C, R>(helper: (token: T[number]) => R, comparator: (a: T[number], b: T[number]) => boolean): (...needles: Array<T[number]>) => ParserFnWithCtx<T, C, R>;
export declare function objClassNot<T extends ArrayLike<T[number]>, C, R>(helper: (token: T[number]) => R, comparator: (a: T[number], b: T[number]) => boolean): (...needles: Array<T[number]>) => ParserFnWithCtx<T, C, R>;
export declare function objClassByNeedleFn<T extends ArrayLike<T[number]>, C, R>(helper: (token: T[number]) => R, comparator: (a: T[number], b: T[number]) => boolean): (needle: (src: T[number]) => boolean) => ParserFnWithCtx<T, C, R>;
export declare function getObjectParsers<T extends ArrayLike<T[number]>, C, R>(params: {
rawToToken: (rawToken: T[number]) => R;
concatTokens: (tokens: R[]) => R[];
comparator: (a: T[number], b: T[number]) => boolean;
}): {
seq: (needle: T) => ParserFnWithCtx<T, C, R>;
cls: (...needles: T[number][]) => ParserFnWithCtx<T, C, R>;
notCls: (...needles: T[number][]) => ParserFnWithCtx<T, C, R>;
clsFn: (needle: (src: T[number]) => boolean) => ParserFnWithCtx<T, C, R>;
classes: {
any: ParserFnWithCtx<T, C, R>;
};
cat: (...parsers: ParserFnWithCtx<T, C, R>[]) => ParserFnWithCtx<T, C, R>;
once: (parser: ParserFnWithCtx<T, C, R>) => ParserFnWithCtx<T, C, R>;
repeat: (parser: ParserFnWithCtx<T, C, R>) => ParserFnWithCtx<T, C, R>;
qty: (min?: number | undefined, max?: number | undefined) => (parser: ParserFnWithCtx<T, C, R>) => ParserFnWithCtx<T, C, R>;
zeroWidth: (helper?: (() => R) | undefined) => ParserFnWithCtx<T, C, R>;
err: (message: string) => ParserFnWithCtx<T, C, R>;
beginning: (helper?: (() => R) | undefined) => ParserFnWithCtx<T, C, R>;
end: (helper?: (() => R) | undefined) => ParserFnWithCtx<T, C, R>;
first: (...parsers: Array<ParserFnWithCtx<T, C, R>>) => ParserFnWithCtx<T, C, R>;
or: (...parsers: Array<ParserFnWithCtx<T, C, R>>) => ParserFnWithCtx<T, C, R>;
combine: (...parsers: ParserFnWithCtx<T, C, R>[]) => ParserFnWithCtx<T, C, R>;
erase: (...parsers: ParserFnWithCtx<T, C, R>[]) => ParserFnWithCtx<T, C, R>;
trans: (fn: (tokens: R[]) => R[]) => (...parsers: ParserFnWithCtx<T, C, R>[]) => ParserFnWithCtx<T, C, R>;
ahead: (...parsers: Array<ParserFnWithCtx<T, C, R>>) => ParserFnWithCtx<T, C, R>;
behind: (n: number, helper?: (() => R) | undefined) => (...parsers: ParserFnWithCtx<T, C, R>[]) => ParserFnWithCtx<T, C, R>;
rules: (args: ApplyProductionRulesArg<T, C, R>) => (lexer: ParserFnWithCtx<T, C, R>) => ParserFnWithCtx<T, C, R>;
makeProgram: typeof makeProgram;
};