int CWhitespaceToken::consume(char aChar, CScanner& aScanner) {
  mTextValue=aChar;
  int result=aScanner.readWhile(mTextValue,gWhitespace,false);
  return result;
};
int CIdentifierToken::consume(char aChar, CScanner& aScanner) {
  mTextValue=aChar;
  int result=aScanner.readWhile(mTextValue,gIdentChars,false);
  return result;
};
int CNumberToken::consume(char aChar, CScanner& aScanner) {
  mTextValue=aChar;
  int result=aScanner.readWhile(mTextValue,gDigits,false);
  return result;
};
int CNewlineToken::consume(char aChar, CScanner& aScanner) {
  mTextValue=aChar;
  int result=aScanner.readWhile(mTextValue,gNewlines,false);
  return result;
};