mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-03 01:39:24 +02:00
48 lines
1.7 KiB
TypeScript
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;
|