const Value* colorParser(StringTokenizer& st)
colorParser(StringTokenizer& st)
const Value* colorParser(StringTokenizer& st){  KeywordId id[] = {    KW_BLACK, KW_SILVER, KW_GRAY, KW_WHITE, KW_MAROON, KW_RED, KW_PURPLE,    KW_FUCHSIA, KW_GREEN, KW_LIME, KW_OLIVE, KW_YELLOW, KW_NAVY, KW_BLUE,    KW_TEAL, KW_AQUA  };  const String& source = st.GetString();  String* sourceNC = source.Clone();  assert(sourceNC != NULL);  sourceNC->ToLowerCase();  StringTokenizer stNC(*sourceNC);  const Value* res = alternativeParser(id, 16, stNC);  delete sourceNC;  if (res != NULL) return res;  unsigned mark = st.GetMark();  st.SkipSpaces();  if (!st.MoreTokens()) return NULL;  RGBValue v;  if (st.ParseRGB(&v)) {    Value* res = new Value;    res->SetRGB(v);    return res;  } else st.SetMark(mark);  return NULL;}