1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-03 01:39:24 +02:00
Oinktube/node_modules/@lezer/common/dist/parse.d.ts
2022-06-30 12:23:35 -03:00

48 lines
1.7 KiB
TypeScript

import { Tree } from "./tree";
export interface ChangedRange {
fromA: number;
toA: number;
fromB: number;
toB: number;
}
export declare class TreeFragment {
readonly from: number;
readonly to: number;
readonly tree: Tree;
readonly offset: number;
constructor(from: number, to: number, tree: Tree, offset: number, openStart?: boolean, openEnd?: boolean);
get openStart(): boolean;
get openEnd(): boolean;
static addTree(tree: Tree, fragments?: readonly TreeFragment[], partial?: boolean): TreeFragment[];
static applyChanges(fragments: readonly TreeFragment[], changes: readonly ChangedRange[], minGap?: number): readonly TreeFragment[];
}
export interface PartialParse {
advance(): Tree | null;
readonly parsedPos: number;
stopAt(pos: number): void;
readonly stoppedAt: number | null;
}
export declare abstract class Parser {
abstract createParse(input: Input, fragments: readonly TreeFragment[], ranges: readonly {
from: number;
to: number;
}[]): PartialParse;
startParse(input: Input | string, fragments?: readonly TreeFragment[], ranges?: readonly {
from: number;
to: number;
}[]): PartialParse;
parse(input: Input | string, fragments?: readonly TreeFragment[], ranges?: readonly {
from: number;
to: number;
}[]): Tree;
}
export interface Input {
readonly length: number;
chunk(from: number): string;
readonly lineChunks: boolean;
read(from: number, to: number): string;
}
export declare type ParseWrapper = (inner: PartialParse, input: Input, fragments: readonly TreeFragment[], ranges: readonly {
from: number;
to: number;
}[]) => PartialParse;