22
22
extern crate rustc_ast;
23
23
extern crate rustc_ast_pretty;
24
24
extern crate rustc_data_structures;
25
+ extern crate rustc_errors;
25
26
extern crate rustc_parse;
26
27
extern crate rustc_session;
27
28
extern crate rustc_span;
@@ -32,27 +33,20 @@ extern crate thin_vec;
32
33
#[ allow( unused_extern_crates) ]
33
34
extern crate rustc_driver;
34
35
36
+ #[ path = "auxiliary/parser.rs" ]
37
+ mod parser;
38
+
35
39
use rustc_ast:: mut_visit:: { visit_clobber, MutVisitor } ;
36
40
use rustc_ast:: ptr:: P ;
37
41
use rustc_ast:: * ;
38
42
use rustc_ast_pretty:: pprust;
39
- use rustc_parse:: { new_parser_from_source_str, unwrap_or_emit_fatal} ;
40
43
use rustc_session:: parse:: ParseSess ;
41
44
use rustc_span:: source_map:: Spanned ;
42
45
use rustc_span:: symbol:: Ident ;
43
- use rustc_span:: { FileName , DUMMY_SP } ;
46
+ use rustc_span:: DUMMY_SP ;
44
47
use thin_vec:: { thin_vec, ThinVec } ;
45
48
46
- fn parse_expr ( psess : & ParseSess , src : & str ) -> Option < P < Expr > > {
47
- let src_as_string = src. to_string ( ) ;
48
-
49
- let mut p = unwrap_or_emit_fatal ( new_parser_from_source_str (
50
- psess,
51
- FileName :: Custom ( src_as_string. clone ( ) ) ,
52
- src_as_string,
53
- ) ) ;
54
- p. parse_expr ( ) . map_err ( |e| e. cancel ( ) ) . ok ( )
55
- }
49
+ use crate :: parser:: parse_expr;
56
50
57
51
// Helper functions for building exprs
58
52
fn expr ( kind : ExprKind ) -> P < Expr > {
0 commit comments