1
1
extern crate docopt;
2
2
extern crate regex;
3
- extern crate regex_syntax as syntax;
4
- extern crate regex_syntax2;
3
+ extern crate regex_syntax2 as syntax;
5
4
extern crate serde;
6
5
#[ macro_use]
7
6
extern crate serde_derive;
@@ -12,14 +11,14 @@ use std::process;
12
11
use std:: result;
13
12
14
13
use docopt:: Docopt ;
14
+ use syntax:: hir:: Hir ;
15
+ use syntax:: hir:: literal:: Literals ;
15
16
use regex:: internal:: { Compiler , LiteralSearcher } ;
16
- use syntax:: { ExprBuilder , Expr , Literals } ;
17
17
18
18
const USAGE : & ' static str = "
19
19
Usage:
20
20
regex-debug [options] ast <pattern>
21
- regex-debug [options] ast2 <pattern>
22
- regex-debug [options] hir2 <pattern>
21
+ regex-debug [options] hir <pattern>
23
22
regex-debug [options] prefixes <patterns> ...
24
23
regex-debug [options] suffixes <patterns> ...
25
24
regex-debug [options] anchors <pattern>
@@ -54,8 +53,7 @@ Options:
54
53
#[ derive( Deserialize ) ]
55
54
struct Args {
56
55
cmd_ast : bool ,
57
- cmd_ast2 : bool ,
58
- cmd_hir2 : bool ,
56
+ cmd_hir : bool ,
59
57
cmd_prefixes : bool ,
60
58
cmd_suffixes : bool ,
61
59
cmd_anchors : bool ,
@@ -98,10 +96,8 @@ fn main() {
98
96
fn run ( args : & Args ) -> Result < ( ) > {
99
97
if args. cmd_ast {
100
98
cmd_ast ( args)
101
- } else if args. cmd_ast2 {
102
- cmd_ast2 ( args)
103
- } else if args. cmd_hir2 {
104
- cmd_hir2 ( args)
99
+ } else if args. cmd_hir {
100
+ cmd_hir ( args)
105
101
} else if args. cmd_prefixes {
106
102
cmd_literals ( args)
107
103
} else if args. cmd_suffixes {
@@ -118,22 +114,16 @@ fn run(args: &Args) -> Result<()> {
118
114
}
119
115
120
116
fn cmd_ast ( args : & Args ) -> Result < ( ) > {
121
- let ast = try!( args. parse_one ( ) ) ;
122
- println ! ( "{:#?}" , ast) ;
123
- Ok ( ( ) )
124
- }
125
-
126
- fn cmd_ast2 ( args : & Args ) -> Result < ( ) > {
127
- use regex_syntax2:: ast:: parse:: Parser ;
117
+ use syntax:: ast:: parse:: Parser ;
128
118
129
119
let mut parser = Parser :: new ( ) ;
130
120
let ast = try!( parser. parse ( & args. arg_pattern ) ) ;
131
121
println ! ( "{:#?}" , ast) ;
132
122
Ok ( ( ) )
133
123
}
134
124
135
- fn cmd_hir2 ( args : & Args ) -> Result < ( ) > {
136
- use regex_syntax2 :: ParserBuilder ;
125
+ fn cmd_hir ( args : & Args ) -> Result < ( ) > {
126
+ use syntax :: ParserBuilder ;
137
127
138
128
let mut parser = ParserBuilder :: new ( )
139
129
. allow_invalid_utf8 ( false )
@@ -213,17 +203,17 @@ fn cmd_compile(args: &Args) -> Result<()> {
213
203
}
214
204
215
205
impl Args {
216
- fn parse_one ( & self ) -> Result < Expr > {
206
+ fn parse_one ( & self ) -> Result < Hir > {
217
207
parse ( & self . arg_pattern )
218
208
}
219
209
220
- fn parse_many ( & self ) -> Result < Vec < Expr > > {
210
+ fn parse_many ( & self ) -> Result < Vec < Hir > > {
221
211
self . arg_patterns . iter ( ) . map ( |s| parse ( s) ) . collect ( )
222
212
}
223
213
224
- fn literals < F : Fn ( & mut Literals , & Expr ) -> bool > (
214
+ fn literals < F : Fn ( & mut Literals , & Hir ) -> bool > (
225
215
& self ,
226
- exprs : & [ Expr ] ,
216
+ exprs : & [ Hir ] ,
227
217
get_literals : F ,
228
218
) -> Literals {
229
219
let mut lits = Some ( self . empty_literals ( ) ) ;
@@ -251,8 +241,13 @@ impl Args {
251
241
}
252
242
}
253
243
254
- fn parse ( re : & str ) -> Result < Expr > {
255
- ExprBuilder :: new ( ) . allow_bytes ( true ) . parse ( re) . map_err ( From :: from)
244
+ fn parse ( re : & str ) -> Result < Hir > {
245
+ use syntax:: ParserBuilder ;
246
+ ParserBuilder :: new ( )
247
+ . allow_invalid_utf8 ( true )
248
+ . build ( )
249
+ . parse ( re)
250
+ . map_err ( From :: from)
256
251
}
257
252
258
253
fn escape_unicode ( bytes : & [ u8 ] ) -> String {
0 commit comments