mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Rename some things.
`Cursor` keeps track of the position within the current token. But it uses confusing names that don't make it clear that the "length consumed" is just within the current token. This commit renames things to make this clearer.
This commit is contained in:
parent
ceb25d125f
commit
cc0022a363
@ -5,7 +5,7 @@ use std::str::Chars;
|
||||
/// Next characters can be peeked via `first` method,
|
||||
/// and position can be shifted forward via `bump` method.
|
||||
pub struct Cursor<'a> {
|
||||
initial_len: usize,
|
||||
len_remaining: usize,
|
||||
/// Iterator over chars. Slightly faster than a &str.
|
||||
chars: Chars<'a>,
|
||||
#[cfg(debug_assertions)]
|
||||
@ -17,7 +17,7 @@ pub(crate) const EOF_CHAR: char = '\0';
|
||||
impl<'a> Cursor<'a> {
|
||||
pub fn new(input: &'a str) -> Cursor<'a> {
|
||||
Cursor {
|
||||
initial_len: input.len(),
|
||||
len_remaining: input.len(),
|
||||
chars: input.chars(),
|
||||
#[cfg(debug_assertions)]
|
||||
prev: EOF_CHAR,
|
||||
@ -61,13 +61,13 @@ impl<'a> Cursor<'a> {
|
||||
}
|
||||
|
||||
/// Returns amount of already consumed symbols.
|
||||
pub(crate) fn len_consumed(&self) -> u32 {
|
||||
(self.initial_len - self.chars.as_str().len()) as u32
|
||||
pub(crate) fn pos_within_token(&self) -> u32 {
|
||||
(self.len_remaining - self.chars.as_str().len()) as u32
|
||||
}
|
||||
|
||||
/// Resets the number of bytes consumed to 0.
|
||||
pub(crate) fn reset_len_consumed(&mut self) {
|
||||
self.initial_len = self.chars.as_str().len();
|
||||
pub(crate) fn reset_pos_within_token(&mut self) {
|
||||
self.len_remaining = self.chars.as_str().len();
|
||||
}
|
||||
|
||||
/// Moves to the next character.
|
||||
|
@ -315,7 +315,7 @@ impl Cursor<'_> {
|
||||
('#', c1) if is_id_start(c1) => self.raw_ident(),
|
||||
('#', _) | ('"', _) => {
|
||||
let res = self.raw_double_quoted_string(1);
|
||||
let suffix_start = self.len_consumed();
|
||||
let suffix_start = self.pos_within_token();
|
||||
if res.is_ok() {
|
||||
self.eat_literal_suffix();
|
||||
}
|
||||
@ -330,7 +330,7 @@ impl Cursor<'_> {
|
||||
('\'', _) => {
|
||||
self.bump();
|
||||
let terminated = self.single_quoted_string();
|
||||
let suffix_start = self.len_consumed();
|
||||
let suffix_start = self.pos_within_token();
|
||||
if terminated {
|
||||
self.eat_literal_suffix();
|
||||
}
|
||||
@ -340,7 +340,7 @@ impl Cursor<'_> {
|
||||
('"', _) => {
|
||||
self.bump();
|
||||
let terminated = self.double_quoted_string();
|
||||
let suffix_start = self.len_consumed();
|
||||
let suffix_start = self.pos_within_token();
|
||||
if terminated {
|
||||
self.eat_literal_suffix();
|
||||
}
|
||||
@ -350,7 +350,7 @@ impl Cursor<'_> {
|
||||
('r', '"') | ('r', '#') => {
|
||||
self.bump();
|
||||
let res = self.raw_double_quoted_string(2);
|
||||
let suffix_start = self.len_consumed();
|
||||
let suffix_start = self.pos_within_token();
|
||||
if res.is_ok() {
|
||||
self.eat_literal_suffix();
|
||||
}
|
||||
@ -367,7 +367,7 @@ impl Cursor<'_> {
|
||||
// Numeric literal.
|
||||
c @ '0'..='9' => {
|
||||
let literal_kind = self.number(c);
|
||||
let suffix_start = self.len_consumed();
|
||||
let suffix_start = self.pos_within_token();
|
||||
self.eat_literal_suffix();
|
||||
TokenKind::Literal { kind: literal_kind, suffix_start }
|
||||
}
|
||||
@ -406,7 +406,7 @@ impl Cursor<'_> {
|
||||
// String literal.
|
||||
'"' => {
|
||||
let terminated = self.double_quoted_string();
|
||||
let suffix_start = self.len_consumed();
|
||||
let suffix_start = self.pos_within_token();
|
||||
if terminated {
|
||||
self.eat_literal_suffix();
|
||||
}
|
||||
@ -419,8 +419,8 @@ impl Cursor<'_> {
|
||||
}
|
||||
_ => Unknown,
|
||||
};
|
||||
let res = Some(Token::new(token_kind, self.len_consumed()));
|
||||
self.reset_len_consumed();
|
||||
let res = Some(Token::new(token_kind, self.pos_within_token()));
|
||||
self.reset_pos_within_token();
|
||||
res
|
||||
}
|
||||
|
||||
@ -606,7 +606,7 @@ impl Cursor<'_> {
|
||||
|
||||
if !can_be_a_lifetime {
|
||||
let terminated = self.single_quoted_string();
|
||||
let suffix_start = self.len_consumed();
|
||||
let suffix_start = self.pos_within_token();
|
||||
if terminated {
|
||||
self.eat_literal_suffix();
|
||||
}
|
||||
@ -631,7 +631,7 @@ impl Cursor<'_> {
|
||||
if self.first() == '\'' {
|
||||
self.bump();
|
||||
let kind = Char { terminated: true };
|
||||
Literal { kind, suffix_start: self.len_consumed() }
|
||||
Literal { kind, suffix_start: self.pos_within_token() }
|
||||
} else {
|
||||
Lifetime { starts_with_number }
|
||||
}
|
||||
@ -712,7 +712,7 @@ impl Cursor<'_> {
|
||||
|
||||
fn raw_string_unvalidated(&mut self, prefix_len: u32) -> Result<u32, RawStrError> {
|
||||
debug_assert!(self.prev() == 'r');
|
||||
let start_pos = self.len_consumed();
|
||||
let start_pos = self.pos_within_token();
|
||||
let mut possible_terminator_offset = None;
|
||||
let mut max_hashes = 0;
|
||||
|
||||
@ -766,7 +766,7 @@ impl Cursor<'_> {
|
||||
// Keep track of possible terminators to give a hint about
|
||||
// where there might be a missing terminator
|
||||
possible_terminator_offset =
|
||||
Some(self.len_consumed() - start_pos - n_end_hashes + prefix_len);
|
||||
Some(self.pos_within_token() - start_pos - n_end_hashes + prefix_len);
|
||||
max_hashes = n_end_hashes;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user