use super::ES_LINE_TERMINATOR_LEADS;
use super::is_es_line_terminator_at;
use tsv_lang::Error;
pub(crate) fn line_comment_end(bytes: &[u8], start: usize) -> usize {
let len = bytes.len();
let mut p = start + 2; loop {
p = tsv_lang::swar::next_byte_of(bytes, p, ES_LINE_TERMINATOR_LEADS);
if p >= len || is_es_line_terminator_at(bytes, p) {
return p;
}
p += 1;
}
}
pub(crate) fn block_comment_end(bytes: &[u8], start: usize) -> Result<usize, Error> {
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 block comment", start));
}
if bytes.get(p + 1) == Some(&b'/') {
return Ok(p + 2); }
p += 1; }
}