use super::{NyashTokenizer, TokenizeError}; impl NyashTokenizer { /// 行コメントをスキップ pub(crate) fn skip_line_comment(&mut self) { while let Some(c) = self.current_char() { if c == '\n' { break; // 改行文字は消費せずに残す } self.advance(); } } /// ブロックコメントをスキップ: /* ... */(ネスト非対応) pub(crate) fn skip_block_comment(&mut self) -> Result<(), TokenizeError> { // Assume current position is at '/' and next is '*' self.advance(); // '/' self.advance(); // '*' while let Some(c) = self.current_char() { // detect end '*/' if c == '*' && self.peek_char() == Some('/') { self.advance(); // '*' self.advance(); // '/' return Ok(()); } self.advance(); } // EOF reached without closing */ Err(TokenizeError::UnterminatedComment { line: self.line }) } /// 空白文字をスキップ(改行は除く:改行はNEWLINEトークンとして扱う) pub(crate) fn skip_whitespace(&mut self) { while let Some(c) = self.current_char() { if c.is_whitespace() && c != '\n' { self.advance(); } else { break; } } } }