1 | import { types } from './types';
|
2 | declare type Base<T, K> = {
|
3 | type: T;
|
4 | } & K;
|
5 | declare type ValueType<T, K> = Base<T, {
|
6 | value: K;
|
7 | }>;
|
8 | export declare type Root = Base<types.ROOT, {
|
9 | stack?: Token[];
|
10 | options?: Token[][];
|
11 | flags?: string[];
|
12 | }>;
|
13 | export declare type Group = Base<types.GROUP, {
|
14 | stack?: Token[];
|
15 | options?: Token[][];
|
16 | remember: boolean;
|
17 | followedBy?: boolean;
|
18 | notFollowedBy?: boolean;
|
19 | lookBehind?: boolean;
|
20 | name?: string;
|
21 | }>;
|
22 | export declare type Set = Base<types.SET, {
|
23 | set: SetTokens;
|
24 | not: boolean;
|
25 | }>;
|
26 | export declare type Range = Base<types.RANGE, {
|
27 | from: number;
|
28 | to: number;
|
29 | }>;
|
30 | export declare type Repetition = Base<types.REPETITION, {
|
31 | min: number;
|
32 | max: number;
|
33 | value: Token;
|
34 | }>;
|
35 | export declare type Position = ValueType<types.POSITION, '$' | '^' | 'b' | 'B'>;
|
36 | export declare type Reference = ValueType<types.REFERENCE, number>;
|
37 | export declare type Char = ValueType<types.CHAR, number>;
|
38 | export declare type Token = Group | Position | Set | Range | Repetition | Reference | Char;
|
39 | export declare type Tokens = Root | Token;
|
40 | export declare type SetTokens = (Range | Char | Set)[];
|
41 | export {};
|