Skip to content

Commit

Permalink
Properly sync macro_parser.rs after it escapes out to the Rust parser.
Browse files Browse the repository at this point in the history
…Closes rust-lang#3201.
  • Loading branch information
paulstansifer committed Nov 27, 2012
1 parent 22ec209 commit 028eeb1
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 9 deletions.
12 changes: 8 additions & 4 deletions src/libsyntax/ext/expand.rs
Original file line number Diff line number Diff line change
Expand Up @@ -244,10 +244,14 @@ fn core_macros() -> ~str {
return
~"{
macro_rules! ignore (($($x:tt)*) => (()))
#macro[[#error[f, ...], log(core::error, #fmt[f, ...])]];
#macro[[#warn[f, ...], log(core::warn, #fmt[f, ...])]];
#macro[[#info[f, ...], log(core::info, #fmt[f, ...])]];
#macro[[#debug[f, ...], log(core::debug, #fmt[f, ...])]];
macro_rules! error ( ($( $arg:expr ),+) => (
log(core::error, fmt!( $($arg),+ )) ))
macro_rules! warn ( ($( $arg:expr ),+) => (
log(core::warn, fmt!( $($arg),+ )) ))
macro_rules! info ( ($( $arg:expr ),+) => (
log(core::info, fmt!( $($arg),+ )) ))
macro_rules! debug ( ($( $arg:expr ),+) => (
log(core::debug, fmt!( $($arg),+ )) ))
}";
}
Expand Down
6 changes: 1 addition & 5 deletions src/libsyntax/ext/tt/macro_parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -368,11 +368,7 @@ fn parse(sess: parse_sess, cfg: ast::crate_cfg, rdr: reader, ms: ~[matcher])
}
cur_eis.push(move ei);
/* this would fail if zero-length tokens existed */
while rdr.peek().sp.lo < rust_parser.span.lo {
rdr.next_token();
} /* except for EOF... */
while rust_parser.token == EOF && rdr.peek().tok != EOF {
for rust_parser.tokens_consumed.times() || {
rdr.next_token();
}
}
Expand Down
3 changes: 3 additions & 0 deletions src/libsyntax/parse/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ fn Parser(sess: parse_sess, cfg: ast::crate_cfg,
buffer: [mut {tok: tok0.tok, sp: span0}, ..4],
buffer_start: 0,
buffer_end: 0,
tokens_consumed: 0u,
restriction: UNRESTRICTED,
quote_depth: 0u,
keywords: token::keyword_table(),
Expand All @@ -210,6 +211,7 @@ struct Parser {
mut buffer: [mut {tok: token::Token, sp: span} * 4],
mut buffer_start: int,
mut buffer_end: int,
mut tokens_consumed: uint,
mut restriction: restriction,
mut quote_depth: uint, // not (yet) related to the quasiquoter
reader: reader,
Expand All @@ -236,6 +238,7 @@ impl Parser {
};
self.token = next.tok;
self.span = next.sp;
self.tokens_consumed += 1u;
}
fn swap(next: token::Token, +lo: BytePos, +hi: BytePos) {
self.token = next;
Expand Down

0 comments on commit 028eeb1

Please sign in to comment.