123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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;
|