use super::token::{Token, TokenKind};
use tsv_lang::Error;
pub(crate) fn read_comment(source: &str, pos: &mut usize) -> Result<Token, Error> {
let start = *pos;
let bytes = source.as_bytes();
let len = bytes.len();
let mut p = start + 2; loop {
p = tsv_lang::swar::next_byte_of(bytes, p, [b'*']);
if p >= len {
return Err(Error::lex("Unterminated comment", start));
}
if bytes.get(p + 1) == Some(&b'/') {
p += 2; break;
}
p += 1;
}
*pos = p;
Ok(Token {
kind: TokenKind::Comment,
start: start as u32,
end: p as u32,
})
}