pub fn back(&mut self) -> Result<Substr<'a>> {
        //println!("back: {:?}", String::from_utf8_lossy(&self.buf[self.pos.saturating_sub(20) .. self.pos]));
        
        // first reverse until we find non-whitespace
        let end_pos = boundary_rev(self.buf, self.pos, is_whitespace);
        let start_pos = boundary_rev(self.buf, end_pos, not(is_whitespace));
        self.pos = start_pos;
        
        Ok(self.new_substr(start_pos .. end_pos))
    }
/// Gives previous lexeme. Lexer moves to the first byte of this lexeme. (needs to be tested)
Gives previous lexeme. Lexer moves to the first byte of this lexeme. (needs to be tested)
Gives previous lexeme . Lexer moves to the first byte of this lexeme . ( needs to be tested )
pub fn back(&mut self) -> Result<Substr<'a>> {
        //println!("back: {:?}", String::from_utf8_lossy(&self.buf[self.pos.saturating_sub(20) .. self.pos]));
        // first reverse until we find non-whitespace
        let end_pos = boundary_rev(self.buf, self.pos, is_whitespace);
        let start_pos = boundary_rev(self.buf, end_pos, not(is_whitespace));
        self.pos = start_pos;
        Ok(self.new_substr(start_pos .. end_pos))
    }
pub fn back ( & mut self ) -> Result < Substr < ' a > > { //println!("back: {:?}", String::from_utf8_lossy(&self.buf[self.pos.saturating_sub(20) .. self.pos])); // first reverse until we find non-whitespace let end_pos = boundary_rev ( self . buf , self . pos , is_whitespace ) ; let start_pos = boundary_rev ( self . buf , end_pos , not ( is_whitespace ) ) ; self . pos = start_pos ; Ok ( self . new_substr ( start_pos .. end_pos ) ) }
Gives previous lexeme.
Gives previous lexeme .
&mut self
&mut self