public int readOct() throws IOException {
int val = Character.digit(last_char, 8);
val += Character.digit(read(), 8);
if (val < 0) {
throw new FactParseError("octal must have 3 octdigits.",
getPosition());
}
val += Character.digit(read(), 8);
if (val < 0) {
throw new FactParseError("octal must have 3 octdigits",
getPosition());
}
return val;
}