Check that forward progress is always made by lexer states
This commit is contained in:
		
							parent
							
								
									b0b9a38932
								
							
						
					
					
						commit
						d63494fc32
					
				
					 1 changed files with 2 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -191,6 +191,7 @@ impl Iterator for Lexer {
 | 
			
		|||
                None => '\0',
 | 
			
		||||
            };
 | 
			
		||||
            println!("{:?}! c='{}'", self.state, c);
 | 
			
		||||
            let previous_forward = self.forward;
 | 
			
		||||
            match self.state {
 | 
			
		||||
                State::Initial => self.state_initial(c, &mut token),
 | 
			
		||||
                State::Identifier => self.state_identifier(c, &mut token),
 | 
			
		||||
| 
						 | 
				
			
			@ -198,6 +199,7 @@ impl Iterator for Lexer {
 | 
			
		|||
                State::String => self.state_string(c, &mut token),
 | 
			
		||||
                State::Comment => self.state_comment(c, &mut token),
 | 
			
		||||
            }
 | 
			
		||||
            assert!(token.is_some() || self.forward != previous_forward, "No lexing progress made!");
 | 
			
		||||
        }
 | 
			
		||||
        self.advance_begin();
 | 
			
		||||
        match token {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue