fn read_ident_internal()

in z3tracer/src/lexer.rs [285:303]


    fn read_ident_internal(&mut self, fresh: bool) -> RawResult<Ident> {
        let word1 = self.read_word()?;
        match self.read_byte() {
            Some(b'#') => (),
            x => {
                return Err(RawError::UnexpectedChar(x.map(char::from), vec!['#']));
            }
        }
        let word2 = self.read_word()?;
        if word1.is_empty() {
            let id = word2.parse().map_err(RawError::InvalidInteger)?;
            Ok(self.make_ident(None, Some(id), fresh))
        } else if word2.is_empty() {
            Ok(self.make_ident(Some(word1), None, fresh))
        } else {
            let id = word2.parse().map_err(RawError::InvalidInteger)?;
            Ok(self.make_ident(Some(word1), Some(id), fresh))
        }
    }