private int parseInt(int n)
{
// parse n digits
int num = 0;
for (int i=0; i<n; ++i) num = num*10 + parseReqDigit();
// one char like 'k' really implies one or two digits
if (n == 1)
{
int digit = parseOptDigit();
if (digit >= 0) num = num*10 + digit;
}
return num;
}