fn lex_identifier(l: &mut Lexer) -> Option<StateFn> {
    // If we reached this function, we have determined that the input
    // cannot be anything but an identifier, and we simply proceed with
    // that understanding.
    let mut ident = String::new();
    while let Some(ch) = l.peek() {
        // These conditions cover the "peculiar identifier", and "initial"
        // and "special initial" are buried in here, as well.
        if is_explicit_sign(ch)
            || is_subsequent(ch)
            || is_sign_subsequent(ch)
            || is_dot_subsequent(ch)
        {
            ident.push(ch);
            l.next();
        } else if is_delimiter(ch) {
            break;
        } else {
            return errorf(l, "improperly terminated identifier");
        }
    }
    l.emit_identifier(&ident[..]);
    Some(StateFn(lex_start))
}
/// `lex_identifier` processes the text as an identifier.
`lex_identifier` processes the text as an identifier.
` lex_identifier ` processes the text as an identifier .
fn lex_identifier(l: &mut Lexer) -> Option<StateFn> {
    // If we reached this function, we have determined that the input
    // cannot be anything but an identifier, and we simply proceed with
    // that understanding.
    let mut ident = String::new();
    while let Some(ch) = l.peek() {
        // These conditions cover the "peculiar identifier", and "initial"
        // and "special initial" are buried in here, as well.
        if is_explicit_sign(ch)
            || is_subsequent(ch)
            || is_sign_subsequent(ch)
            || is_dot_subsequent(ch)
        {
            ident.push(ch);
            l.next();
        } else if is_delimiter(ch) {
            break;
        } else {
            return errorf(l, "improperly terminated identifier");
        }
    }
    l.emit_identifier(&ident[..]);
    Some(StateFn(lex_start))
}
fn lex_identifier ( l : & mut Lexer ) -> Option < StateFn > { // If we reached this function, we have determined that the input // cannot be anything but an identifier, and we simply proceed with // that understanding. let mut ident = String :: new ( ) ; while let Some ( ch ) = l . peek ( ) { // These conditions cover the "peculiar identifier", and "initial" // and "special initial" are buried in here, as well. if is_explicit_sign ( ch ) || is_subsequent ( ch ) || is_sign_subsequent ( ch ) || is_dot_subsequent ( ch ) { ident . push ( ch ) ; l . next ( ) ; } else if is_delimiter ( ch ) { break ; } else { return errorf ( l , " " ) ; } } l . emit_identifier ( & ident [ .. ] ) ; Some ( StateFn ( lex_start ) ) }
`lex_identifier` processes the text as an identifier.
` lex_identifier ` processes the text as an identifier .
l
&mut Lexer