| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 | // Generated by dts-bundle v0.7.3declare module 'regexpp' {    import * as AST from "regexpp/ast";    import { RegExpParser } from "regexpp/parser";    import { RegExpValidator } from "regexpp/validator";    import { RegExpVisitor } from "regexpp/visitor";    export { AST, RegExpParser, RegExpValidator };    export function parseRegExpLiteral(source: string | RegExp, options?: RegExpParser.Options): AST.RegExpLiteral;    export function validateRegExpLiteral(source: string, options?: RegExpValidator.Options): void;    export function visitRegExpAST(node: AST.Node, handlers: RegExpVisitor.Handlers): void;}declare module 'regexpp/ast' {    export type Node = BranchNode | LeafNode;    export type BranchNode = RegExpLiteral | Pattern | Alternative | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion | CharacterClassRange;    export type LeafNode = BoundaryAssertion | CharacterSet | Character | Backreference | Flags;    export type Element = Assertion | Quantifier | QuantifiableElement;    export type QuantifiableElement = Group | CapturingGroup | CharacterClass | CharacterSet | Character | Backreference | LookaheadAssertion;    export type CharacterClassElement = EscapeCharacterSet | UnicodePropertyCharacterSet | Character | CharacterClassRange;    export interface NodeBase {        type: Node["type"];        parent: Node["parent"];        start: number;        end: number;        raw: string;    }    export interface RegExpLiteral extends NodeBase {        type: "RegExpLiteral";        parent: null;        pattern: Pattern;        flags: Flags;    }    export interface Pattern extends NodeBase {        type: "Pattern";        parent: RegExpLiteral | null;        alternatives: Alternative[];    }    export interface Alternative extends NodeBase {        type: "Alternative";        parent: Pattern | Group | CapturingGroup | LookaroundAssertion;        elements: Element[];    }    export interface Group extends NodeBase {        type: "Group";        parent: Alternative | Quantifier;        alternatives: Alternative[];    }    export interface CapturingGroup extends NodeBase {        type: "CapturingGroup";        parent: Alternative | Quantifier;        name: string | null;        alternatives: Alternative[];        references: Backreference[];    }    export type LookaroundAssertion = LookaheadAssertion | LookbehindAssertion;    export interface LookaheadAssertion extends NodeBase {        type: "Assertion";        parent: Alternative | Quantifier;        kind: "lookahead";        negate: boolean;        alternatives: Alternative[];    }    export interface LookbehindAssertion extends NodeBase {        type: "Assertion";        parent: Alternative;        kind: "lookbehind";        negate: boolean;        alternatives: Alternative[];    }    export interface Quantifier extends NodeBase {        type: "Quantifier";        parent: Alternative;        min: number;        max: number;        greedy: boolean;        element: QuantifiableElement;    }    export interface CharacterClass extends NodeBase {        type: "CharacterClass";        parent: Alternative | Quantifier;        negate: boolean;        elements: CharacterClassElement[];    }    export interface CharacterClassRange extends NodeBase {        type: "CharacterClassRange";        parent: CharacterClass;        min: Character;        max: Character;    }    export type Assertion = BoundaryAssertion | LookaroundAssertion;    export type BoundaryAssertion = EdgeAssertion | WordBoundaryAssertion;    export interface EdgeAssertion extends NodeBase {        type: "Assertion";        parent: Alternative | Quantifier;        kind: "start" | "end";    }    export interface WordBoundaryAssertion extends NodeBase {        type: "Assertion";        parent: Alternative | Quantifier;        kind: "word";        negate: boolean;    }    export type CharacterSet = AnyCharacterSet | EscapeCharacterSet | UnicodePropertyCharacterSet;    export interface AnyCharacterSet extends NodeBase {        type: "CharacterSet";        parent: Alternative | Quantifier;        kind: "any";    }    export interface EscapeCharacterSet extends NodeBase {        type: "CharacterSet";        parent: Alternative | Quantifier | CharacterClass;        kind: "digit" | "space" | "word";        negate: boolean;    }    export interface UnicodePropertyCharacterSet extends NodeBase {        type: "CharacterSet";        parent: Alternative | Quantifier | CharacterClass;        kind: "property";        key: string;        value: string | null;        negate: boolean;    }    export interface Character extends NodeBase {        type: "Character";        parent: Alternative | Quantifier | CharacterClass | CharacterClassRange;        value: number;    }    export interface Backreference extends NodeBase {        type: "Backreference";        parent: Alternative | Quantifier;        ref: number | string;        resolved: CapturingGroup;    }    export interface Flags extends NodeBase {        type: "Flags";        parent: RegExpLiteral | null;        dotAll: boolean;        global: boolean;        hasIndices: boolean;        ignoreCase: boolean;        multiline: boolean;        sticky: boolean;        unicode: boolean;    }}declare module 'regexpp/parser' {    import { Flags, RegExpLiteral, Pattern } from "regexpp/ast";    import { EcmaVersion } from "regexpp/ecma-versions";    export namespace RegExpParser {        interface Options {            strict?: boolean;            ecmaVersion?: EcmaVersion;        }    }    export class RegExpParser {        constructor(options?: RegExpParser.Options);        parseLiteral(source: string, start?: number, end?: number): RegExpLiteral;        parseFlags(source: string, start?: number, end?: number): Flags;        parsePattern(source: string, start?: number, end?: number, uFlag?: boolean): Pattern;    }}declare module 'regexpp/validator' {    import { EcmaVersion } from "regexpp/ecma-versions";    export namespace RegExpValidator {        interface Options {            strict?: boolean;            ecmaVersion?: EcmaVersion;            onLiteralEnter?(start: number): void;            onLiteralLeave?(start: number, end: number): void;            onFlags?(start: number, end: number, global: boolean, ignoreCase: boolean, multiline: boolean, unicode: boolean, sticky: boolean, dotAll: boolean, hasIndices: boolean): void;            onPatternEnter?(start: number): void;            onPatternLeave?(start: number, end: number): void;            onDisjunctionEnter?(start: number): void;            onDisjunctionLeave?(start: number, end: number): void;            onAlternativeEnter?(start: number, index: number): void;            onAlternativeLeave?(start: number, end: number, index: number): void;            onGroupEnter?(start: number): void;            onGroupLeave?(start: number, end: number): void;            onCapturingGroupEnter?(start: number, name: string | null): void;            onCapturingGroupLeave?(start: number, end: number, name: string | null): void;            onQuantifier?(start: number, end: number, min: number, max: number, greedy: boolean): void;            onLookaroundAssertionEnter?(start: number, kind: "lookahead" | "lookbehind", negate: boolean): void;            onLookaroundAssertionLeave?(start: number, end: number, kind: "lookahead" | "lookbehind", negate: boolean): void;            onEdgeAssertion?(start: number, end: number, kind: "start" | "end"): void;            onWordBoundaryAssertion?(start: number, end: number, kind: "word", negate: boolean): void;            onAnyCharacterSet?(start: number, end: number, kind: "any"): void;            onEscapeCharacterSet?(start: number, end: number, kind: "digit" | "space" | "word", negate: boolean): void;            onUnicodePropertyCharacterSet?(start: number, end: number, kind: "property", key: string, value: string | null, negate: boolean): void;            onCharacter?(start: number, end: number, value: number): void;            onBackreference?(start: number, end: number, ref: number | string): void;            onCharacterClassEnter?(start: number, negate: boolean): void;            onCharacterClassLeave?(start: number, end: number, negate: boolean): void;            onCharacterClassRange?(start: number, end: number, min: number, max: number): void;        }    }    export class RegExpValidator {        constructor(options?: RegExpValidator.Options);        validateLiteral(source: string, start?: number, end?: number): void;        validateFlags(source: string, start?: number, end?: number): void;        validatePattern(source: string, start?: number, end?: number, uFlag?: boolean): void;    }}declare module 'regexpp/visitor' {    import { Alternative, Assertion, Backreference, CapturingGroup, Character, CharacterClass, CharacterClassRange, CharacterSet, Flags, Group, Node, Pattern, Quantifier, RegExpLiteral } from "regexpp/ast";    export class RegExpVisitor {        constructor(handlers: RegExpVisitor.Handlers);        visit(node: Node): void;    }    export namespace RegExpVisitor {        interface Handlers {            onAlternativeEnter?(node: Alternative): void;            onAlternativeLeave?(node: Alternative): void;            onAssertionEnter?(node: Assertion): void;            onAssertionLeave?(node: Assertion): void;            onBackreferenceEnter?(node: Backreference): void;            onBackreferenceLeave?(node: Backreference): void;            onCapturingGroupEnter?(node: CapturingGroup): void;            onCapturingGroupLeave?(node: CapturingGroup): void;            onCharacterEnter?(node: Character): void;            onCharacterLeave?(node: Character): void;            onCharacterClassEnter?(node: CharacterClass): void;            onCharacterClassLeave?(node: CharacterClass): void;            onCharacterClassRangeEnter?(node: CharacterClassRange): void;            onCharacterClassRangeLeave?(node: CharacterClassRange): void;            onCharacterSetEnter?(node: CharacterSet): void;            onCharacterSetLeave?(node: CharacterSet): void;            onFlagsEnter?(node: Flags): void;            onFlagsLeave?(node: Flags): void;            onGroupEnter?(node: Group): void;            onGroupLeave?(node: Group): void;            onPatternEnter?(node: Pattern): void;            onPatternLeave?(node: Pattern): void;            onQuantifierEnter?(node: Quantifier): void;            onQuantifierLeave?(node: Quantifier): void;            onRegExpLiteralEnter?(node: RegExpLiteral): void;            onRegExpLiteralLeave?(node: RegExpLiteral): void;        }    }}declare module 'regexpp/ecma-versions' {    export type EcmaVersion = 5 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022;}
 |