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 @@
|
||||
/// 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 struct Cursor<'a> {
|
||||
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 @@ pub(crate) fn is_eof(&self) -> bool {
|
||||
}
|
||||
|
||||
/// 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 @@ pub fn advance_token(&mut self) -> Option<Token> {
|
||||
('#', 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 @@ pub fn advance_token(&mut self) -> Option<Token> {
|
||||
('\'', _) => {
|
||||
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 @@ pub fn advance_token(&mut self) -> Option<Token> {
|
||||
('"', _) => {
|
||||
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 @@ pub fn advance_token(&mut self) -> Option<Token> {
|
||||
('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 @@ pub fn advance_token(&mut self) -> Option<Token> {
|
||||
// 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 @@ pub fn advance_token(&mut self) -> Option<Token> {
|
||||
// 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 @@ pub fn advance_token(&mut self) -> Option<Token> {
|
||||
}
|
||||
_ => 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 @@ fn lifetime_or_char(&mut self) -> TokenKind {
|
||||
|
||||
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 @@ fn lifetime_or_char(&mut self) -> TokenKind {
|
||||
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 @@ fn raw_double_quoted_string(&mut self, prefix_len: u32) -> Result<u8, RawStrErro
|
||||
|
||||
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 @@ fn raw_string_unvalidated(&mut self, prefix_len: u32) -> Result<u32, RawStrError
|
||||
// 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