minor refactor for sanity
This commit is contained in:
parent
6cff70f2a3
commit
6d151bc2b9
@ -370,6 +370,7 @@ impl<'a> TokenIterator<'a> {
|
|||||||
match c {
|
match c {
|
||||||
'0'...'9' => {
|
'0'...'9' => {
|
||||||
let mut result = Vec::new();
|
let mut result = Vec::new();
|
||||||
|
let mut radix_base: Option<u32> = None;
|
||||||
result.push(c);
|
result.push(c);
|
||||||
|
|
||||||
while let Some(&nxt) = self.char_stream.peek() {
|
while let Some(&nxt) = self.char_stream.peek() {
|
||||||
@ -403,10 +404,7 @@ impl<'a> TokenIterator<'a> {
|
|||||||
_ => break,
|
_ => break,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let out: String = result.iter().cloned().skip(2).collect();
|
radix_base = Some(16);
|
||||||
if let Ok(val) = i64::from_str_radix(&out, 16) {
|
|
||||||
return Some(Token::IntConst(val));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
'o' | 'O' => {
|
'o' | 'O' => {
|
||||||
result.push(nxt);
|
result.push(nxt);
|
||||||
@ -420,10 +418,7 @@ impl<'a> TokenIterator<'a> {
|
|||||||
_ => break,
|
_ => break,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let out: String = result.iter().cloned().skip(2).collect();
|
radix_base = Some(8);
|
||||||
if let Ok(val) = i64::from_str_radix(&out, 8) {
|
|
||||||
return Some(Token::IntConst(val));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
'b' | 'B' => {
|
'b' | 'B' => {
|
||||||
result.push(nxt);
|
result.push(nxt);
|
||||||
@ -437,15 +432,19 @@ impl<'a> TokenIterator<'a> {
|
|||||||
_ => break,
|
_ => break,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let out: String = result.iter().cloned().skip(2).filter(|c| c != &'_').collect();
|
radix_base = Some(2);
|
||||||
if let Ok(val) = i64::from_str_radix(&out, 2) {
|
|
||||||
return Some(Token::IntConst(val));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_ => break,
|
_ => break,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let Some(radix) = radix_base {
|
||||||
|
let out: String = result.iter().cloned().skip(2).filter(|c| c != &'_').collect();
|
||||||
|
if let Ok(val) = i64::from_str_radix(&out, radix) {
|
||||||
|
return Some(Token::IntConst(val));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let out: String = result.iter().cloned().collect();
|
let out: String = result.iter().cloned().collect();
|
||||||
|
|
||||||
if let Ok(val) = out.parse::<i64>() {
|
if let Ok(val) = out.parse::<i64>() {
|
||||||
|
Loading…
Reference in New Issue
Block a user