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))
}
}