1
Fork 0

parser: Fix lookahead of > 1 token

This commit is contained in:
Brian Anderson 2012-04-27 12:19:52 -07:00
parent 345a21916c
commit beece25abe

View file

@ -69,7 +69,7 @@ impl parser for parser {
self.token = next.tok; self.token = next.tok;
self.span = mk_sp(next.chpos, self.reader.chpos); self.span = mk_sp(next.chpos, self.reader.chpos);
} else { } else {
let next = vec::pop(self.buffer); let next = vec::shift(self.buffer);
self.token = next.tok; self.token = next.tok;
self.span = next.span; self.span = next.span;
} }
@ -82,7 +82,7 @@ impl parser for parser {
while vec::len(self.buffer) < distance { while vec::len(self.buffer) < distance {
let next = lexer::next_token(self.reader); let next = lexer::next_token(self.reader);
let sp = mk_sp(next.chpos, self.reader.chpos); let sp = mk_sp(next.chpos, self.reader.chpos);
self.buffer = [{tok: next.tok, span: sp}] + self.buffer; vec::push(self.buffer, {tok: next.tok, span: sp});
} }
ret self.buffer[distance - 1u].tok; ret self.buffer[distance - 1u].tok;
} }