parser: Fix lookahead of > 1 token
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user