fn lex_comment(l: &mut Lexer) -> Option<StateFn> {
    while let Some(ch) = l.next() {
        match ch {
            '\n' | '\r' => {
                // whitespace after comment is significant (R7RS 2.2),
                // but we ignore whitespace anyway
                l.ignore();
                return Some(StateFn(lex_start));
            }
            _ => continue,
        }
    }
    Some(StateFn(lex_start))
}
/// `lex_comment` expects the current position to be the start of a
/// comment and advances until it finds the end of the line/file.
/// No token will be emitted since comments are ignored.
`lex_comment` expects the current position to be the start of a
comment and advances until it finds the end of the line/file.
No token will be emitted since comments are ignored.
` lex_comment ` expects the current position to be the start of a comment and advances until it finds the end of the line / file . No token will be emitted since comments are ignored .
fn lex_comment(l: &mut Lexer) -> Option<StateFn> {
    while let Some(ch) = l.next() {
        match ch {
            '\n' | '\r' => {
                // whitespace after comment is significant (R7RS 2.2),
                // but we ignore whitespace anyway
                l.ignore();
                return Some(StateFn(lex_start));
            }
            _ => continue,
        }
    }
    Some(StateFn(lex_start))
}
fn lex_comment ( l : & mut Lexer ) -> Option < StateFn > { while let Some ( ch ) = l . next ( ) { match ch { '\n' | '\r' => { // whitespace after comment is significant (R7RS 2.2), // but we ignore whitespace anyway l . ignore ( ) ; return Some ( StateFn ( lex_start ) ) ; } _ => continue , } } Some ( StateFn ( lex_start ) ) }
`lex_comment` expects the current position to be the start of a
comment and advances until it finds the end of the line/file.
` lex_comment ` expects the current position to be the start of a comment and advances until it finds the end of the line / file .
l
&mut Lexer