| // Generated by dts-bundle v0.7.3 | |
| declare 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; | |
| } | |