private Term BuildFunctionTerm(string name, List <Term> terms) { switch (name) { case "rgb": { if (terms.Count == 5) { if (CheckNumber(terms[0]) && CheckNumber(terms[2]) && CheckNumber(terms[4])) { return(HtmlColor.FromRgb( ToByte(terms[0]), ToByte(terms[2]), ToByte(terms[4]))); } } break; } case "rgba": { if (terms.Count == 7) { if (CheckNumber(terms[0]) && CheckNumber(terms[2]) && CheckNumber(terms[4]) && CheckNumber(terms[6])) { return(HtmlColor.FromRgba( ToByte(terms[0]), ToByte(terms[2]), ToByte(terms[4]), ToSingle(terms[6]))); } } break; } case "hsl": { if (_termList.Count == 5) { if (CheckNumber(terms[0]) && CheckPercentage(terms[2]) && CheckPercentage(terms[4])) { return(HtmlColor.FromHsl( ToSingle(terms[0]), ToSingle(terms[2], UnitType.Percentage), ToSingle(terms[4], UnitType.Percentage))); } } break; } } return(new GenericFunction(name, terms)); }