*/
fn hash(x: int) -> uint { ret x as uint; }
-// FIXME: This is redundant
-fn eq_alias(x: int, y: int) -> bool { ret x == y; }
-
/*
Function: range
fail;
}
let i = vec::len::<u8>(buf) - 1u;
+ let start = 0u;
let power = 1;
+
if buf[0] == ('-' as u8) {
power = -1;
- i -= 1u;
+ start = 1u;
}
let n = 0;
while true {
- n += (buf[i] - ('0' as u8) as int) * power;
+ let digit = alt buf[i] as char {
+ '0' to '9' { buf[i] - ('0' as u8) }
+ 'a' to 'z' { 10u8 + buf[i] - ('a' as u8) }
+ 'A' to 'Z' { 10u8 + buf[i] - ('A' as u8) }
+ };
+ if (digit as uint) >= radix {
+ fail;
+ }
+ n += (digit as int) * power;
power *= radix as int;
- if i == 0u { ret n; }
+ if i <= start { ret n; }
i -= 1u;
}
fail;