1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027 |
- // Generated by dts-bundle v0.7.3
- declare module "@eslint-community/regexpp" {
- import * as AST from "@eslint-community/regexpp/ast";
- import { RegExpParser } from "@eslint-community/regexpp/parser";
- import { RegExpValidator } from "@eslint-community/regexpp/validator";
- import { RegExpVisitor } from "@eslint-community/regexpp/visitor";
- export { AST, RegExpParser, RegExpValidator };
- /**
- * Parse a given regular expression literal then make AST object.
- * @param source The source code to parse.
- * @param options The options to parse.
- * @returns The AST of the regular expression.
- */
- export function parseRegExpLiteral(
- source: RegExp | string,
- options?: RegExpParser.Options
- ): AST.RegExpLiteral;
- /**
- * Validate a given regular expression literal.
- * @param source The source code to validate.
- * @param options The options to validate.
- */
- export function validateRegExpLiteral(
- source: string,
- options?: RegExpValidator.Options
- ): void;
- export function visitRegExpAST(
- node: AST.Node,
- handlers: RegExpVisitor.Handlers
- ): void;
- }
- declare module "@eslint-community/regexpp/ast" {
- /**
- * The type which includes all nodes.
- */
- export type Node = BranchNode | LeafNode;
- /**
- * The type which includes all branch nodes.
- */
- export type BranchNode =
- | Alternative
- | CapturingGroup
- | CharacterClass
- | CharacterClassRange
- | ClassIntersection
- | ClassStringDisjunction
- | ClassSubtraction
- | ExpressionCharacterClass
- | Group
- | LookaroundAssertion
- | Pattern
- | Quantifier
- | RegExpLiteral
- | StringAlternative;
- /**
- * The type which includes all leaf nodes.
- */
- export type LeafNode =
- | Backreference
- | BoundaryAssertion
- | Character
- | CharacterSet
- | Flags;
- /**
- * The type which includes all atom nodes.
- */
- export type Element = Assertion | QuantifiableElement | Quantifier;
- /**
- * The type which includes all atom nodes that Quantifier node can have as children.
- */
- export type QuantifiableElement =
- | Backreference
- | CapturingGroup
- | Character
- | CharacterClass
- | CharacterSet
- | ExpressionCharacterClass
- | Group
- | LookaheadAssertion;
- /**
- * The type which includes all character class atom nodes.
- */
- export type CharacterClassElement =
- | ClassRangesCharacterClassElement
- | UnicodeSetsCharacterClassElement;
- export type ClassRangesCharacterClassElement =
- | Character
- | CharacterClassRange
- | EscapeCharacterSet
- | UnicodePropertyCharacterSet;
- export type UnicodeSetsCharacterClassElement =
- | Character
- | CharacterClassRange
- | ClassStringDisjunction
- | EscapeCharacterSet
- | ExpressionCharacterClass
- | UnicodePropertyCharacterSet
- | UnicodeSetsCharacterClass;
- /**
- * The type which defines common properties for all node types.
- */
- export interface NodeBase {
- /** The node type. */
- type: Node["type"];
- /** The parent node. */
- parent: Node["parent"];
- /** The 0-based index that this node starts. */
- start: number;
- /** The 0-based index that this node ends. */
- end: number;
- /** The raw text of this node. */
- raw: string;
- }
- /**
- * The root node.
- */
- export interface RegExpLiteral extends NodeBase {
- type: "RegExpLiteral";
- parent: null;
- pattern: Pattern;
- flags: Flags;
- }
- /**
- * The pattern.
- */
- export interface Pattern extends NodeBase {
- type: "Pattern";
- parent: RegExpLiteral | null;
- alternatives: Alternative[];
- }
- /**
- * The alternative.
- * E.g. `a|b`
- */
- export interface Alternative extends NodeBase {
- type: "Alternative";
- parent: CapturingGroup | Group | LookaroundAssertion | Pattern;
- elements: Element[];
- }
- /**
- * The uncapturing group.
- * E.g. `(?:ab)`
- */
- export interface Group extends NodeBase {
- type: "Group";
- parent: Alternative | Quantifier;
- alternatives: Alternative[];
- }
- /**
- * The capturing group.
- * E.g. `(ab)`, `(?<name>ab)`
- */
- export interface CapturingGroup extends NodeBase {
- type: "CapturingGroup";
- parent: Alternative | Quantifier;
- name: string | null;
- alternatives: Alternative[];
- references: Backreference[];
- }
- /**
- * The lookaround assertion.
- */
- export type LookaroundAssertion = LookaheadAssertion | LookbehindAssertion;
- /**
- * The lookahead assertion.
- * E.g. `(?=ab)`, `(?!ab)`
- */
- export interface LookaheadAssertion extends NodeBase {
- type: "Assertion";
- parent: Alternative | Quantifier;
- kind: "lookahead";
- negate: boolean;
- alternatives: Alternative[];
- }
- /**
- * The lookbehind assertion.
- * E.g. `(?<=ab)`, `(?<!ab)`
- */
- export interface LookbehindAssertion extends NodeBase {
- type: "Assertion";
- parent: Alternative;
- kind: "lookbehind";
- negate: boolean;
- alternatives: Alternative[];
- }
- /**
- * The quantifier.
- * E.g. `a?`, `a*`, `a+`, `a{1,2}`, `a??`, `a*?`, `a+?`, `a{1,2}?`
- */
- export interface Quantifier extends NodeBase {
- type: "Quantifier";
- parent: Alternative;
- min: number;
- max: number;
- greedy: boolean;
- element: QuantifiableElement;
- }
- /**
- * The character class.
- * E.g. `[ab]`, `[^ab]`
- */
- export type CharacterClass =
- | ClassRangesCharacterClass
- | UnicodeSetsCharacterClass;
- interface BaseCharacterClass extends NodeBase {
- type: "CharacterClass";
- parent:
- | Alternative
- | ExpressionCharacterClass
- | Quantifier
- | UnicodeSetsCharacterClass;
- unicodeSets: boolean;
- negate: boolean;
- elements: CharacterClassElement[];
- }
- export interface ClassRangesCharacterClass extends BaseCharacterClass {
- parent: Alternative | Quantifier;
- unicodeSets: false;
- elements: ClassRangesCharacterClassElement[];
- }
- /** UnicodeSetsCharacterClass is the CharacterClass when in Unicode sets mode. So it may contain strings. */
- export interface UnicodeSetsCharacterClass extends BaseCharacterClass {
- parent:
- | Alternative
- | ExpressionCharacterClass
- | Quantifier
- | UnicodeSetsCharacterClass;
- unicodeSets: true;
- elements: UnicodeSetsCharacterClassElement[];
- }
- /**
- * The character class.
- * E.g. `[a-b]`
- */
- export interface CharacterClassRange extends NodeBase {
- type: "CharacterClassRange";
- parent: CharacterClass;
- min: Character;
- max: Character;
- }
- /**
- * The assertion.
- */
- export type Assertion = BoundaryAssertion | LookaroundAssertion;
- /**
- * The boundary assertion.
- */
- export type BoundaryAssertion = EdgeAssertion | WordBoundaryAssertion;
- /**
- * The edge boundary assertion.
- * E.g. `^`, `$`
- */
- export interface EdgeAssertion extends NodeBase {
- type: "Assertion";
- parent: Alternative | Quantifier;
- kind: "end" | "start";
- }
- /**
- * The word bondary assertion.
- * E.g. `\b`, `\B`
- */
- export interface WordBoundaryAssertion extends NodeBase {
- type: "Assertion";
- parent: Alternative | Quantifier;
- kind: "word";
- negate: boolean;
- }
- /**
- * The character set.
- */
- export type CharacterSet =
- | AnyCharacterSet
- | EscapeCharacterSet
- | UnicodePropertyCharacterSet;
- /**
- * The dot.
- * E.g. `.`
- */
- export interface AnyCharacterSet extends NodeBase {
- type: "CharacterSet";
- parent: Alternative | Quantifier;
- kind: "any";
- }
- /**
- * The character class escape.
- * E.g. `\d`, `\s`, `\w`, `\D`, `\S`, `\W`
- */
- export interface EscapeCharacterSet extends NodeBase {
- type: "CharacterSet";
- parent:
- | Alternative
- | CharacterClass
- | ClassIntersection
- | ClassSubtraction
- | Quantifier;
- kind: "digit" | "space" | "word";
- negate: boolean;
- }
- /**
- * The unicode property escape.
- * E.g. `\p{ASCII}`, `\P{ASCII}`, `\p{Script=Hiragana}`
- */
- export type UnicodePropertyCharacterSet =
- | CharacterUnicodePropertyCharacterSet
- | StringsUnicodePropertyCharacterSet;
- interface BaseUnicodePropertyCharacterSet extends NodeBase {
- type: "CharacterSet";
- parent:
- | Alternative
- | CharacterClass
- | ClassIntersection
- | ClassSubtraction
- | Quantifier;
- kind: "property";
- strings: boolean;
- key: string;
- value: string | null;
- negate: boolean;
- }
- export interface CharacterUnicodePropertyCharacterSet
- extends BaseUnicodePropertyCharacterSet {
- strings: false;
- value: string | null;
- negate: boolean;
- }
- /** StringsUnicodePropertyCharacterSet is Unicode property escape with property of strings. */
- export interface StringsUnicodePropertyCharacterSet
- extends BaseUnicodePropertyCharacterSet {
- strings: true;
- value: null;
- negate: false;
- }
- /**
- * The expression character class.
- * E.g. `[a--b]`, `[a&&b]`,`[^a--b]`, `[^a&&b]`
- */
- export interface ExpressionCharacterClass extends NodeBase {
- type: "ExpressionCharacterClass";
- parent:
- | Alternative
- | ExpressionCharacterClass
- | Quantifier
- | UnicodeSetsCharacterClass;
- negate: boolean;
- expression: ClassIntersection | ClassSubtraction;
- }
- export type ClassSetOperand =
- | Character
- | ClassStringDisjunction
- | EscapeCharacterSet
- | ExpressionCharacterClass
- | UnicodePropertyCharacterSet
- | UnicodeSetsCharacterClass;
- /**
- * The character class intersection.
- * E.g. `a&&b`
- */
- export interface ClassIntersection extends NodeBase {
- type: "ClassIntersection";
- parent: ClassIntersection | ExpressionCharacterClass;
- left: ClassIntersection | ClassSetOperand;
- right: ClassSetOperand;
- }
- /**
- * The character class subtraction.
- * E.g. `a--b`
- */
- export interface ClassSubtraction extends NodeBase {
- type: "ClassSubtraction";
- parent: ClassSubtraction | ExpressionCharacterClass;
- left: ClassSetOperand | ClassSubtraction;
- right: ClassSetOperand;
- }
- /**
- * The character class string disjunction.
- * E.g. `\q{a|b}`
- */
- export interface ClassStringDisjunction extends NodeBase {
- type: "ClassStringDisjunction";
- parent: ClassIntersection | ClassSubtraction | UnicodeSetsCharacterClass;
- alternatives: StringAlternative[];
- }
- /** StringAlternative is only used for `\q{alt}`({@link ClassStringDisjunction}). */
- export interface StringAlternative extends NodeBase {
- type: "StringAlternative";
- parent: ClassStringDisjunction;
- elements: Character[];
- }
- /**
- * The character.
- * This includes escape sequences which mean a character.
- * E.g. `a`, `あ`, `✿`, `\x65`, `\u0065`, `\u{65}`, `\/`
- */
- export interface Character extends NodeBase {
- type: "Character";
- parent:
- | Alternative
- | CharacterClass
- | CharacterClassRange
- | ClassIntersection
- | ClassSubtraction
- | Quantifier
- | StringAlternative;
- value: number;
- }
- /**
- * The backreference.
- * E.g. `\1`, `\k<name>`
- */
- export interface Backreference extends NodeBase {
- type: "Backreference";
- parent: Alternative | Quantifier;
- ref: number | string;
- resolved: CapturingGroup;
- }
- /**
- * The flags.
- */
- export interface Flags extends NodeBase {
- type: "Flags";
- parent: RegExpLiteral | null;
- dotAll: boolean;
- global: boolean;
- hasIndices: boolean;
- ignoreCase: boolean;
- multiline: boolean;
- sticky: boolean;
- unicode: boolean;
- unicodeSets: boolean;
- }
- export {};
- }
- declare module "@eslint-community/regexpp/parser" {
- import type {
- Flags,
- RegExpLiteral,
- Pattern,
- } from "@eslint-community/regexpp/ast";
- import type { EcmaVersion } from "@eslint-community/regexpp/ecma-versions";
- export namespace RegExpParser {
- /**
- * The options for RegExpParser construction.
- */
- interface Options {
- /**
- * The flag to disable Annex B syntax. Default is `false`.
- */
- strict?: boolean;
- /**
- * ECMAScript version. Default is `2024`.
- * - `2015` added `u` and `y` flags.
- * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,
- * and Unicode Property Escape.
- * - `2019`, `2020`, and `2021` added more valid Unicode Property Escapes.
- * - `2022` added `d` flag.
- * - `2023` added more valid Unicode Property Escapes.
- * - `2024` added `v` flag.
- */
- ecmaVersion?: EcmaVersion;
- }
- }
- export class RegExpParser {
- /**
- * Initialize this parser.
- * @param options The options of parser.
- */
- constructor(options?: RegExpParser.Options);
- /**
- * Parse a regular expression literal. E.g. "/abc/g"
- * @param source The source code to parse.
- * @param start The start index in the source code.
- * @param end The end index in the source code.
- * @returns The AST of the given regular expression.
- */
- parseLiteral(source: string, start?: number, end?: number): RegExpLiteral;
- /**
- * Parse a regular expression flags. E.g. "gim"
- * @param source The source code to parse.
- * @param start The start index in the source code.
- * @param end The end index in the source code.
- * @returns The AST of the given flags.
- */
- parseFlags(source: string, start?: number, end?: number): Flags;
- /**
- * Parse a regular expression pattern. E.g. "abc"
- * @param source The source code to parse.
- * @param start The start index in the source code.
- * @param end The end index in the source code.
- * @param flags The flags.
- * @returns The AST of the given pattern.
- */
- parsePattern(
- source: string,
- start?: number,
- end?: number,
- flags?: {
- unicode?: boolean;
- unicodeSets?: boolean;
- }
- ): Pattern;
- /**
- * @deprecated Backward compatibility
- * Use object `flags` instead of boolean `uFlag`.
- *
- * @param source The source code to parse.
- * @param start The start index in the source code.
- * @param end The end index in the source code.
- * @param uFlag The flag to set unicode mode.
- * @returns The AST of the given pattern.
- */
- parsePattern(
- source: string,
- start?: number,
- end?: number,
- uFlag?: boolean
- ): Pattern;
- }
- }
- declare module "@eslint-community/regexpp/validator" {
- import type { EcmaVersion } from "@eslint-community/regexpp/ecma-versions";
- export type RegExpValidatorSourceContext = {
- readonly source: string;
- readonly start: number;
- readonly end: number;
- readonly kind: "flags" | "literal" | "pattern";
- };
- export namespace RegExpValidator {
- /**
- * The options for RegExpValidator construction.
- */
- interface Options {
- /**
- * The flag to disable Annex B syntax. Default is `false`.
- */
- strict?: boolean;
- /**
- * ECMAScript version. Default is `2024`.
- * - `2015` added `u` and `y` flags.
- * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,
- * and Unicode Property Escape.
- * - `2019`, `2020`, and `2021` added more valid Unicode Property Escapes.
- * - `2022` added `d` flag.
- * - `2023` added more valid Unicode Property Escapes.
- * - `2024` added `v` flag.
- */
- ecmaVersion?: EcmaVersion;
- /**
- * A function that is called when the validator entered a RegExp literal.
- * @param start The 0-based index of the first character.
- */
- onLiteralEnter?: (start: number) => void;
- /**
- * A function that is called when the validator left a RegExp literal.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- */
- onLiteralLeave?: (start: number, end: number) => void;
- /**
- * A function that is called when the validator found flags.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param flags.global `g` flag.
- * @param flags.ignoreCase `i` flag.
- * @param flags.multiline `m` flag.
- * @param flags.unicode `u` flag.
- * @param flags.sticky `y` flag.
- * @param flags.dotAll `s` flag.
- * @param flags.hasIndices `d` flag.
- * @param flags.unicodeSets `v` flag.
- */
- onRegExpFlags?: (
- start: number,
- end: number,
- flags: {
- global: boolean;
- ignoreCase: boolean;
- multiline: boolean;
- unicode: boolean;
- sticky: boolean;
- dotAll: boolean;
- hasIndices: boolean;
- unicodeSets: boolean;
- }
- ) => void;
- /**
- * A function that is called when the validator found flags.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param global `g` flag.
- * @param ignoreCase `i` flag.
- * @param multiline `m` flag.
- * @param unicode `u` flag.
- * @param sticky `y` flag.
- * @param dotAll `s` flag.
- * @param hasIndices `d` flag.
- *
- * @deprecated Use `onRegExpFlags` instead.
- */
- onFlags?: (
- start: number,
- end: number,
- global: boolean,
- ignoreCase: boolean,
- multiline: boolean,
- unicode: boolean,
- sticky: boolean,
- dotAll: boolean,
- hasIndices: boolean
- ) => void;
- /**
- * A function that is called when the validator entered a pattern.
- * @param start The 0-based index of the first character.
- */
- onPatternEnter?: (start: number) => void;
- /**
- * A function that is called when the validator left a pattern.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- */
- onPatternLeave?: (start: number, end: number) => void;
- /**
- * A function that is called when the validator entered a disjunction.
- * @param start The 0-based index of the first character.
- */
- onDisjunctionEnter?: (start: number) => void;
- /**
- * A function that is called when the validator left a disjunction.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- */
- onDisjunctionLeave?: (start: number, end: number) => void;
- /**
- * A function that is called when the validator entered an alternative.
- * @param start The 0-based index of the first character.
- * @param index The 0-based index of alternatives in a disjunction.
- */
- onAlternativeEnter?: (start: number, index: number) => void;
- /**
- * A function that is called when the validator left an alternative.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param index The 0-based index of alternatives in a disjunction.
- */
- onAlternativeLeave?: (start: number, end: number, index: number) => void;
- /**
- * A function that is called when the validator entered an uncapturing group.
- * @param start The 0-based index of the first character.
- */
- onGroupEnter?: (start: number) => void;
- /**
- * A function that is called when the validator left an uncapturing group.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- */
- onGroupLeave?: (start: number, end: number) => void;
- /**
- * A function that is called when the validator entered a capturing group.
- * @param start The 0-based index of the first character.
- * @param name The group name.
- */
- onCapturingGroupEnter?: (start: number, name: string | null) => void;
- /**
- * A function that is called when the validator left a capturing group.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param name The group name.
- */
- onCapturingGroupLeave?: (
- start: number,
- end: number,
- name: string | null
- ) => void;
- /**
- * A function that is called when the validator found a quantifier.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param min The minimum number of repeating.
- * @param max The maximum number of repeating.
- * @param greedy The flag to choose the longest matching.
- */
- onQuantifier?: (
- start: number,
- end: number,
- min: number,
- max: number,
- greedy: boolean
- ) => void;
- /**
- * A function that is called when the validator entered a lookahead/lookbehind assertion.
- * @param start The 0-based index of the first character.
- * @param kind The kind of the assertion.
- * @param negate The flag which represents that the assertion is negative.
- */
- onLookaroundAssertionEnter?: (
- start: number,
- kind: "lookahead" | "lookbehind",
- negate: boolean
- ) => void;
- /**
- * A function that is called when the validator left a lookahead/lookbehind assertion.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param kind The kind of the assertion.
- * @param negate The flag which represents that the assertion is negative.
- */
- onLookaroundAssertionLeave?: (
- start: number,
- end: number,
- kind: "lookahead" | "lookbehind",
- negate: boolean
- ) => void;
- /**
- * A function that is called when the validator found an edge boundary assertion.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param kind The kind of the assertion.
- */
- onEdgeAssertion?: (
- start: number,
- end: number,
- kind: "end" | "start"
- ) => void;
- /**
- * A function that is called when the validator found a word boundary assertion.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param kind The kind of the assertion.
- * @param negate The flag which represents that the assertion is negative.
- */
- onWordBoundaryAssertion?: (
- start: number,
- end: number,
- kind: "word",
- negate: boolean
- ) => void;
- /**
- * A function that is called when the validator found a dot.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param kind The kind of the character set.
- */
- onAnyCharacterSet?: (start: number, end: number, kind: "any") => void;
- /**
- * A function that is called when the validator found a character set escape.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param kind The kind of the character set.
- * @param negate The flag which represents that the character set is negative.
- */
- onEscapeCharacterSet?: (
- start: number,
- end: number,
- kind: "digit" | "space" | "word",
- negate: boolean
- ) => void;
- /**
- * A function that is called when the validator found a Unicode proerty escape.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param kind The kind of the character set.
- * @param key The property name.
- * @param value The property value.
- * @param negate The flag which represents that the character set is negative.
- * @param strings If true, the given property is property of strings.
- */
- onUnicodePropertyCharacterSet?: (
- start: number,
- end: number,
- kind: "property",
- key: string,
- value: string | null,
- negate: boolean,
- strings: boolean
- ) => void;
- /**
- * A function that is called when the validator found a character.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param value The code point of the character.
- */
- onCharacter?: (start: number, end: number, value: number) => void;
- /**
- * A function that is called when the validator found a backreference.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param ref The key of the referred capturing group.
- */
- onBackreference?: (
- start: number,
- end: number,
- ref: number | string
- ) => void;
- /**
- * A function that is called when the validator entered a character class.
- * @param start The 0-based index of the first character.
- * @param negate The flag which represents that the character class is negative.
- * @param unicodeSets `true` if unicodeSets mode.
- */
- onCharacterClassEnter?: (
- start: number,
- negate: boolean,
- unicodeSets: boolean
- ) => void;
- /**
- * A function that is called when the validator left a character class.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param negate The flag which represents that the character class is negative.
- */
- onCharacterClassLeave?: (
- start: number,
- end: number,
- negate: boolean
- ) => void;
- /**
- * A function that is called when the validator found a character class range.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param min The minimum code point of the range.
- * @param max The maximum code point of the range.
- */
- onCharacterClassRange?: (
- start: number,
- end: number,
- min: number,
- max: number
- ) => void;
- /**
- * A function that is called when the validator found a class intersection.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- */
- onClassIntersection?: (start: number, end: number) => void;
- /**
- * A function that is called when the validator found a class subtraction.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- */
- onClassSubtraction?: (start: number, end: number) => void;
- /**
- * A function that is called when the validator entered a class string disjunction.
- * @param start The 0-based index of the first character.
- */
- onClassStringDisjunctionEnter?: (start: number) => void;
- /**
- * A function that is called when the validator left a class string disjunction.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- */
- onClassStringDisjunctionLeave?: (start: number, end: number) => void;
- /**
- * A function that is called when the validator entered a string alternative.
- * @param start The 0-based index of the first character.
- * @param index The 0-based index of alternatives in a disjunction.
- */
- onStringAlternativeEnter?: (start: number, index: number) => void;
- /**
- * A function that is called when the validator left a string alternative.
- * @param start The 0-based index of the first character.
- * @param end The next 0-based index of the last character.
- * @param index The 0-based index of alternatives in a disjunction.
- */
- onStringAlternativeLeave?: (
- start: number,
- end: number,
- index: number
- ) => void;
- }
- }
- /**
- * The regular expression validator.
- */
- export class RegExpValidator {
- /**
- * Initialize this validator.
- * @param options The options of validator.
- */
- constructor(options?: RegExpValidator.Options);
- /**
- * Validate a regular expression literal. E.g. "/abc/g"
- * @param source The source code to validate.
- * @param start The start index in the source code.
- * @param end The end index in the source code.
- */
- validateLiteral(source: string, start?: number, end?: number): void;
- /**
- * Validate a regular expression flags. E.g. "gim"
- * @param source The source code to validate.
- * @param start The start index in the source code.
- * @param end The end index in the source code.
- */
- validateFlags(source: string, start?: number, end?: number): void;
- /**
- * Validate a regular expression pattern. E.g. "abc"
- * @param source The source code to validate.
- * @param start The start index in the source code.
- * @param end The end index in the source code.
- * @param flags The flags.
- */
- validatePattern(
- source: string,
- start?: number,
- end?: number,
- flags?: {
- unicode?: boolean;
- unicodeSets?: boolean;
- }
- ): void;
- /**
- * @deprecated Backward compatibility
- * Use object `flags` instead of boolean `uFlag`.
- * @param source The source code to validate.
- * @param start The start index in the source code.
- * @param end The end index in the source code.
- * @param uFlag The flag to set unicode mode.
- */
- validatePattern(
- source: string,
- start?: number,
- end?: number,
- uFlag?: boolean
- ): void;
- }
- }
- declare module "@eslint-community/regexpp/visitor" {
- import type {
- Alternative,
- Assertion,
- Backreference,
- CapturingGroup,
- Character,
- CharacterClass,
- CharacterClassRange,
- CharacterSet,
- ClassIntersection,
- ClassStringDisjunction,
- ClassSubtraction,
- ExpressionCharacterClass,
- Flags,
- Group,
- Node,
- Pattern,
- Quantifier,
- RegExpLiteral,
- StringAlternative,
- } from "@eslint-community/regexpp/ast";
- /**
- * The visitor to walk on AST.
- */
- export class RegExpVisitor {
- /**
- * Initialize this visitor.
- * @param handlers Callbacks for each node.
- */
- constructor(handlers: RegExpVisitor.Handlers);
- /**
- * Visit a given node and descendant nodes.
- * @param node The root node to visit tree.
- */
- 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;
- onClassIntersectionEnter?: (node: ClassIntersection) => void;
- onClassIntersectionLeave?: (node: ClassIntersection) => void;
- onClassStringDisjunctionEnter?: (node: ClassStringDisjunction) => void;
- onClassStringDisjunctionLeave?: (node: ClassStringDisjunction) => void;
- onClassSubtractionEnter?: (node: ClassSubtraction) => void;
- onClassSubtractionLeave?: (node: ClassSubtraction) => void;
- onExpressionCharacterClassEnter?: (
- node: ExpressionCharacterClass
- ) => void;
- onExpressionCharacterClassLeave?: (
- node: ExpressionCharacterClass
- ) => 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;
- onStringAlternativeEnter?: (node: StringAlternative) => void;
- onStringAlternativeLeave?: (node: StringAlternative) => void;
- }
- }
- }
- declare module "@eslint-community/regexpp/ecma-versions" {
- export type EcmaVersion =
- | 5
- | 2015
- | 2016
- | 2017
- | 2018
- | 2019
- | 2020
- | 2021
- | 2022
- | 2023
- | 2024;
- export const latestEcmaVersion = 2024;
- }
|