Skip to content

Commit 1220af3

Browse files
committed
---
yaml --- r: 3820 b: refs/heads/master c: e45819a h: refs/heads/master v: v3
1 parent 4de6681 commit 1220af3

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 67ecda63420a815cb89522be8e83690c38bef118
2+
refs/heads/master: e45819ad70f338b942fda745ef7127bde7c3577a

trunk/src/comp/syntax/parse/parser.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2432,6 +2432,24 @@ fn parse_crate_from_source_file(&str input, &ast::crate_cfg cfg,
24322432
&codemap::codemap cm) -> @ast::crate {
24332433
auto sess = @rec(cm=cm, mutable next_id=0);
24342434
auto p = new_parser_from_file(sess, cfg, input, 0u);
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, 0u);
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+
24352453
auto lo = p.get_lo_pos();
24362454
auto crate_attrs = parse_inner_attrs_and_next(p);
24372455
auto first_item_outer_attrs = crate_attrs._1;

0 commit comments

Comments
 (0)