@@ -2432,6 +2432,24 @@ fn parse_crate_from_source_file(&str input, &ast::crate_cfg cfg,
2432
2432
& codemap:: codemap cm) -> @ast:: crate {
2433
2433
auto sess = @rec( cm=cm, mutable next_id=0 ) ;
2434
2434
auto p = new_parser_from_file( sess, cfg, input, 0 u) ;
2435
+ ret parse_crate_mod( p, cfg) ;
2436
+ }
2437
+
2438
+ fn parse_crate_from_source_str( & str name, & str source, & ast:: crate_cfg cfg,
2439
+ & codemap:: codemap cm) -> @ast:: crate {
2440
+ auto sess = @rec( cm=cm, mutable next_id=0 ) ;
2441
+ auto ftype = SOURCE_FILE ;
2442
+ auto filemap = codemap:: new_filemap( name, 0 u) ;
2443
+ sess. cm. files += [ filemap] ;
2444
+ auto itr = @interner:: mk( str :: hash, str :: eq) ;
2445
+ auto rdr = lexer:: new_reader( sess. cm, source, filemap, itr) ;
2446
+ auto p = new_parser( sess, cfg, rdr, ftype) ;
2447
+ ret parse_crate_mod( p, cfg) ;
2448
+ }
2449
+
2450
+ // Parses a source module as a crate
2451
+ fn parse_crate_mod( & parser p, & ast:: crate_cfg cfg) -> @ast:: crate {
2452
+
2435
2453
auto lo = p. get_lo_pos( ) ;
2436
2454
auto crate_attrs = parse_inner_attrs_and_next( p) ;
2437
2455
auto first_item_outer_attrs = crate_attrs. _1;
0 commit comments