From c8a02527ae6364175c31a5447dd4e21bb6ac3488 Mon Sep 17 00:00:00 2001 From: Corey Richardson Date: Tue, 24 Jun 2014 17:44:50 -0700 Subject: lexer: add ident_from and ident_from_to methods --- src/libsyntax/parse/lexer/mod.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/libsyntax/parse') diff --git a/src/libsyntax/parse/lexer/mod.rs b/src/libsyntax/parse/lexer/mod.rs index f22e7af0856..7a9051c16ae 100644 --- a/src/libsyntax/parse/lexer/mod.rs +++ b/src/libsyntax/parse/lexer/mod.rs @@ -217,6 +217,20 @@ impl<'a> StringReader<'a> { self.with_str_from_to(start, self.last_pos, f) } + /// Create an Ident from a given offset to the current offset, each + /// adjusted 1 towards each other (assumes that on either side there is a + /// single-byte delimiter). + pub fn ident_from(&self, start: BytePos) -> ast::Ident { + debug!("taking an ident from {} to {}", start, self.last_pos); + self.with_str_from(start, str_to_ident) + } + + /// As ident_from, with an explicit endpoint. + pub fn ident_from_to(&self, start: BytePos, end: BytePos) -> ast::Ident { + debug!("taking an ident from {} to {}", start, end); + self.with_str_from_to(start, end, str_to_ident) + } + /// Calls `f` with a string slice of the source text spanning from `start` /// up to but excluding `end`. fn with_str_from_to(&self, start: BytePos, end: BytePos, f: |s: &str| -> T) -> T { -- cgit 1.4.1-3-g733a5