}
}
+pub(crate) fn scan_block_comment(ptr: &mut Ptr) -> Option<SyntaxKind> {
+ if ptr.next_is('*') {
+ ptr.bump();
+ let mut depth: u32 = 1;
+ while depth > 0 {
+ if ptr.next_is('*') && ptr.nnext_is('/') {
+ depth -= 1;
+ ptr.bump();
+ ptr.bump();
+ } else if ptr.next_is('/') && ptr.nnext_is('*') {
+ depth += 1;
+ ptr.bump();
+ ptr.bump();
+ } else if ptr.bump().is_none() {
+ break;
+ }
+ }
+ Some(COMMENT)
+ } else {
+ None
+ }
+}
+
pub(crate) fn scan_comment(ptr: &mut Ptr) -> Option<SyntaxKind> {
if ptr.next_is('/') {
bump_until_eol(ptr);
Some(COMMENT)
} else {
- None
+ scan_block_comment(ptr)
}
}