diff options
Diffstat (limited to 'src/libsyntax/parse/lexer')
| -rw-r--r-- | src/libsyntax/parse/lexer/mod.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/libsyntax/parse/lexer/mod.rs b/src/libsyntax/parse/lexer/mod.rs index 293b91111b5..1bc1d42d888 100644 --- a/src/libsyntax/parse/lexer/mod.rs +++ b/src/libsyntax/parse/lexer/mod.rs @@ -35,6 +35,19 @@ pub trait Reader { /// Report a non-fatal error with the current span. fn err(&self, &str); fn peek(&self) -> TokenAndSpan; + /// Get a token the parser cares about. + fn real_token(&mut self) -> TokenAndSpan { + let mut t = self.next_token(); + loop { + match t.tok { + token::Whitespace | token::Comment | token::Shebang(_) => { + t = self.next_token(); + }, + _ => break + } + } + t + } } #[deriving(Clone, PartialEq, Eq, Show)] |
