use super::{
error::{ParserError, ParserErrorKind},
Parser,
};
use crate::lexer::token::TokenTy;
pub fn optional_whitespace(parser: &mut Parser) {
while parser.peek().is_some_and(|token| token.variant == TokenTy::Whitespace) {
parser.advance(1);
}
}
pub fn require_whitespace(parser: &mut Parser) -> Result<(), ParserError> {
match parser.next_if_is(TokenTy::Whitespace) {
Some(_) => {
optional_whitespace(parser);
Ok(())
},
None => Err(ParserError {
kind: ParserErrorKind::ExpectedWhitespace,
location: parser.peek_fragment_or_rest_cloned(),
help: None,
}),
}
}