diff options
| author | Rafael Ávila de Espíndola <[email protected]> | 2011-03-10 17:34:58 -0500 |
|---|---|---|
| committer | Rafael Ávila de Espíndola <[email protected]> | 2011-03-10 17:36:41 -0500 |
| commit | 4ca0259b20bfc2f33f23e8b82864908fbb3b8133 (patch) | |
| tree | 1d215874467c4be9db02da596a73d0dea08667a5 /src/comp/front/parser.rs | |
| parent | Fix seemingly un-noticed thinko in structural copying code in rustboot. (diff) | |
| download | rust-4ca0259b20bfc2f33f23e8b82864908fbb3b8133.tar.xz rust-4ca0259b20bfc2f33f23e8b82864908fbb3b8133.zip | |
Update the current id when we create sub parsers.
Diffstat (limited to 'src/comp/front/parser.rs')
| -rw-r--r-- | src/comp/front/parser.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs index 71e592ff..2836b120 100644 --- a/src/comp/front/parser.rs +++ b/src/comp/front/parser.rs @@ -35,12 +35,13 @@ state type parser = fn get_session() -> session.session; fn get_span() -> common.span; fn next_def_id() -> ast.def_id; + fn set_def(ast.def_num); fn get_prec_table() -> vec[op_spec]; }; impure fn new_parser(session.session sess, eval.env env, - ast.crate_num crate, + ast.def_id initial_def, str path) -> parser { state obj stdio_parser(session.session sess, eval.env env, @@ -94,6 +95,10 @@ impure fn new_parser(session.session sess, ret tup(crate, def); } + fn set_def(ast.def_num d) { + def = d; + } + fn get_file_type() -> file_type { ret ftype; } @@ -114,8 +119,8 @@ impure fn new_parser(session.session sess, auto rdr = lexer.new_reader(srdr, path); auto npos = rdr.get_curr_pos(); ret stdio_parser(sess, env, ftype, lexer.next_token(rdr), - npos, npos, 0, UNRESTRICTED, crate, rdr, - prec_table()); + npos, npos, initial_def._1, UNRESTRICTED, initial_def._0, + rdr, prec_table()); } impure fn unexpected(parser p, token.token t) { |