fn advance(&mut self) -> Option<Token<'file>> {
        let next_token = std::mem::replace(&mut self.peeked, next_non_whitespace(&mut self.tokens));

        log::trace!(
            "shift: consumed = {:?}, lookahead = {:?}",
            next_token,
            self.peek(),
        );

        next_token
    }
/// Consume the current token and load the next one. Return the old token.
Consume the current token and load the next one. Return the old token.
Consume the current token and load the next one . Return the old token .
fn advance(&mut self) -> Option<Token<'file>> {
        let next_token = std::mem::replace(&mut self.peeked, next_non_whitespace(&mut self.tokens));
        log::trace!(
            "shift: consumed = {:?}, lookahead = {:?}",
            next_token,
            self.peek(),
        );
        next_token
    }
fn advance ( & mut self ) -> Option < Token < ' file > > { let next_token = std :: mem :: replace ( & mut self . peeked , next_non_whitespace ( & mut self . tokens ) ) ; log :: trace ! ( " " next_token self peek ( ) ) ; next_token }
Consume the current token and load the next one.
Consume the current token and load the next one .
&mut self
&mut self