1- declare namespace Node {
1+ declare module 'regexp-tree/ast' {
2+ export type AstClass =
3+ | 'Char'
4+ | 'ClassRange'
5+ | 'CharacterClass'
6+ | 'Alternative'
7+ | 'Disjunction'
8+ | 'Group'
9+ | 'Backreference'
10+ | 'Repetition'
11+ | 'Quantifier'
12+ | 'Assertion'
13+ | 'RegExp' ;
14+
215 interface Base < T > {
316 type : T ;
417 loc ?: {
@@ -8,97 +21,97 @@ declare namespace Node {
821 } ;
922 }
1023
11- interface SimpleChar extends Base < 'Char' > {
24+ export interface SimpleChar extends Base < 'Char' > {
1225 value : string ;
1326 kind : 'simple' ;
1427 escaped ?: true ;
1528 }
1629
17- interface SpecialChar extends Base < 'Char' > {
30+ export interface SpecialChar extends Base < 'Char' > {
1831 value : string ;
1932 kind : 'meta' | 'control' | 'hex' | 'decimal' | 'oct' | 'unicode' ;
2033 }
2134
22- type Char = SimpleChar | SpecialChar ;
35+ export type Char = SimpleChar | SpecialChar ;
2336
24- interface ClassRange extends Base < 'ClassRange' > {
37+ export interface ClassRange extends Base < 'ClassRange' > {
2538 from : Char ;
2639 to : Char ;
2740 }
2841
29- interface CharacterClass extends Base < 'CharacterClass' > {
42+ export interface CharacterClass extends Base < 'CharacterClass' > {
3043 negative ?: true ;
3144 expressions : ( Char | ClassRange ) [ ] ;
3245 }
3346
34- interface Alternative extends Base < 'Alternative' > {
47+ export interface Alternative extends Base < 'Alternative' > {
3548 expressions : Expression [ ] ;
3649 }
3750
38- interface Disjunction extends Base < 'Disjunction' > {
51+ export interface Disjunction extends Base < 'Disjunction' > {
3952 expressions : ( Expression | null ) [ ] ;
4053 }
4154
42- interface CapturingGroup extends Base < 'Group' > {
55+ export interface CapturingGroup extends Base < 'Group' > {
4356 capturing : true ;
4457 number : number ;
4558 name ?: string ;
4659 expression : Expression | null ;
4760 }
4861
49- interface NoncapturingGroup extends Base < 'Group' > {
62+ export interface NoncapturingGroup extends Base < 'Group' > {
5063 capturing : false ;
5164 expression : Expression | null ;
5265 }
5366
54- type Group = CapturingGroup | NoncapturingGroup ;
67+ export type Group = CapturingGroup | NoncapturingGroup ;
5568
56- interface NumericBackreference extends Base < 'Backreference' > {
69+ export interface NumericBackreference extends Base < 'Backreference' > {
5770 kind : 'number' ;
5871 number : number ;
5972 reference : number ;
6073 }
6174
62- interface NamedBackreference extends Base < 'Backreference' > {
75+ export interface NamedBackreference extends Base < 'Backreference' > {
6376 kind : 'name' ;
6477 number : number ;
6578 reference : string ;
6679 }
6780
68- type Backreference = NumericBackreference | NamedBackreference ;
81+ export type Backreference = NumericBackreference | NamedBackreference ;
6982
70- interface Repetition extends Base < 'Repetition' > {
83+ export interface Repetition extends Base < 'Repetition' > {
7184 expression : Expression ;
7285 quantifier : Quantifier ;
7386 }
7487
75- interface SimpleQuantifier extends Base < 'Quantifier' > {
76- kind : '+' | '*' ;
88+ export interface SimpleQuantifier extends Base < 'Quantifier' > {
89+ kind : '+' | '*' | '?' ;
7790 greedy : boolean ;
7891 }
7992
80- interface RangeQuantifier extends Base < 'Quantifier' > {
93+ export interface RangeQuantifier extends Base < 'Quantifier' > {
8194 kind : 'Range' ;
8295 from : number ;
83- to : number ;
96+ to ? : number ;
8497 greedy : boolean ;
8598 }
8699
87- type Quantifier = SimpleQuantifier | RangeQuantifier ;
100+ export type Quantifier = SimpleQuantifier | RangeQuantifier ;
88101
89- interface SimpleAssertion extends Base < 'Assertion' > {
102+ export interface SimpleAssertion extends Base < 'Assertion' > {
90103 kind : '^' | '$' | '\\b' | '\\B' ;
91104 }
92105
93- interface LookaroundAssertion extends Base < 'Assertion' > {
106+ export interface LookaroundAssertion extends Base < 'Assertion' > {
94107 kind : 'Lookahead' | 'Lookbehind' ;
95108 negative ?: true ;
96109 assertion : Expression | null ;
97110 }
98111
99- type Assertion = SimpleAssertion | LookaroundAssertion ;
112+ export type Assertion = SimpleAssertion | LookaroundAssertion ;
100113
101- type Expression =
114+ export type Expression =
102115 | Char
103116 | CharacterClass
104117 | Alternative
@@ -108,14 +121,21 @@ declare namespace Node {
108121 | Repetition
109122 | Assertion ;
110123
111- interface RegExp extends Base < 'RegExp' > {
124+ export interface AstRegExp extends Base < 'RegExp' > {
112125 body : Expression | null ;
113126 flags : string ;
114127 }
115128}
116129
117- interface ParserOptions {
118- captureLocations ?: boolean ;
119- }
130+ declare module 'regexp-tree' {
131+ import { AstRegExp } from 'regexp-tree/ast'
132+ interface ParserOptions {
133+ captureLocations ?: boolean ;
134+ }
135+
136+ export function parse ( s : string | RegExp , options ?: ParserOptions ) : AstRegExp ;
137+
138+ export function generate ( ast : AstRegExp ) : string ;
120139
121- export function parse ( s : string | RegExp , options ?: ParserOptions ) : Node . RegExp ;
140+ export function toRegExp ( regexp : string ) : RegExp ;
141+ }
0 commit comments