return (self + ('a'.ascii - 10)).ascii
end
end
+
+ # Executre 'each' for each integer in [self..last]
+ fun enumerate_to(last: Int)
+ !each(i: Int)
+ do
+ var cur = self
+ while cur <= last do
+ each(cur)
+ cur += 1
+ end
+ end
+
+ # Executre 'each' for each integer in [self..after[
+ fun enumerate_before(after: Int)
+ !each(i: Int)
+ do
+ var cur = self
+ while cur < after do
+ each(cur)
+ cur += 1
+ end
+ end
end
# Native characters.
if self == '-' then
return -1
- else if self >= '0' and self <= '9' then
+ else if is_digit then
return self.ascii - '0'.ascii
else
return self.to_lower.ascii - ('a'.ascii + 10)
# Char to lower case
fun to_lower : Char
do
- if self >= 'A' and self <= 'Z' then
+ if is_upper then
return (ascii + ('a'.distance('A'))).ascii
else
return self
# Char to upper case
fun to_upper : Char
do
- if self >= 'a' and self <= 'z' then
+ if is_lower then
return (ascii - ('a'.distance('A'))).ascii
else
return self
end
end
+
+ fun is_digit : Bool
+ do
+ return self >= '0' and self <= '9'
+ end
+
+ fun is_lower : Bool
+ do
+ return self >= 'a' and self <= 'z'
+ end
+
+ fun is_upper : Bool
+ do
+ return self >= 'A' and self <= 'Z'
+ end
+
+ fun is_letter : Bool
+ do
+ return is_lower or is_upper
+ end
end
# Pointer classes are used to manipulate extern C structures.