|
|
|
@ -123,7 +123,7 @@ fn read_uni_char(rd: &mut PosReader) -> Result<char, Err> {
|
|
|
|
|
match rd.next().ok_or(Err::Eof)? { |
|
|
|
|
'}' => break, |
|
|
|
|
c if c.is_digit(16) => { |
|
|
|
|
let cn = unsafe { text::radix(c) }.into(); |
|
|
|
|
let cn = text::radix(c).into(); |
|
|
|
|
n = n.checked_mul(16).ok_or_else(|| Err::Numb(rd.pos()))?; |
|
|
|
|
n = n.checked_add(cn).ok_or_else(|| Err::Numb(rd.pos()))?; |
|
|
|
|
} |
|
|
|
@ -193,7 +193,7 @@ fn integer_rad(rd: &mut PosReader, rad: u32) -> Result<Token, Err> {
|
|
|
|
|
c if is_delim(c) => break, |
|
|
|
|
Some(c) if c.is_digit(rad) => { |
|
|
|
|
rd.next(); |
|
|
|
|
let c = unsafe { text::radix(c) }.into(); |
|
|
|
|
let c = text::radix(c).into(); |
|
|
|
|
let res = n.checked_mul(rad.into()); |
|
|
|
|
n = res.ok_or_else(|| Err::Numb(rd.pos()))?; |
|
|
|
|
let res = if sign { n.checked_sub(c) } else { n.checked_add(c) }; |
|
|
|
|