about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/lexer/mod.rs14
1 files changed, 14 insertions, 0 deletions
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<T>(&self, start: BytePos, end: BytePos, f: |s: &str| -> T) -> T {