UNPKG

ret

Version:

Tokenizes a string that represents a regular expression.

48 lines (47 loc) • 1.22 kB
import { types } from './types'; type Base<T, K> = { type: T; } & K; type ValueType<T, K> = Base<T, { value: K; }>; export type Root = Base<types.ROOT, { stack?: Token[]; options?: Token[][]; flags?: string[]; }>; export type Group = Base<types.GROUP, { stack?: Token[]; options?: Token[][]; remember: boolean; followedBy?: boolean; notFollowedBy?: boolean; lookBehind?: boolean; name?: string; modifier?: { ignoreCase: boolean | null; multiline: boolean | null; dotAll: boolean | null; }; }>; export type Set = Base<types.SET, { set: SetTokens; not: boolean; }>; export type Range = Base<types.RANGE, { from: number; to: number; }>; export type Repetition = Base<types.REPETITION, { min: number; max: number; value: Token; }>; export type Position = ValueType<types.POSITION, '$' | '^' | 'b' | 'B'>; export type Reference = ValueType<types.REFERENCE, number>; export type Char = ValueType<types.CHAR, number>; export type Token = Group | Position | Set | Repetition | Reference | Char; export type Tokens = Root | Token; export type SetToken = Range | Char | Set; export type SetTokens = SetToken[]; export {};