2026    {
 2027        switch (dtok.suffix)
 2028        {
 2029        case TokenType.SEP_YearSuff:
 2030            if ((result.flags & ParseFlags.HaveYear) != 0)
 2031            {
 2032                return false;
 2033            }
 2034            result.flags |= ParseFlags.HaveYear;
 2035            result.Year = (raw.year = dtok.num);
 2036            break;
 2037        case TokenType.SEP_MonthSuff:
 2038            if ((result.flags & ParseFlags.HaveMonth) != 0)
 2039            {
 2040                return false;
 2041            }
 2042            result.flags |= ParseFlags.HaveMonth;
 2043            result.Month = (raw.month = dtok.num);
 2044            break;
 2045        case TokenType.SEP_DaySuff:
 2046            if ((result.flags & ParseFlags.HaveDay) != 0)
 2047            {
 2048                return false;
 2049            }
 2050            result.flags |= ParseFlags.HaveDay;
 2051            result.Day = dtok.num;
 2052            break;
 2053        case TokenType.SEP_HourSuff:
 2054            if ((result.flags & ParseFlags.HaveHour) != 0)
 2055            {
 2056                return false;
 2057            }
 2058            result.flags |= ParseFlags.HaveHour;
 2059            result.Hour = dtok.num;
 2060            break;
 2061        case TokenType.SEP_MinuteSuff:
 2062            if ((result.flags & ParseFlags.HaveMinute) != 0)
 2063            {
 2064                return false;
 2065            }
 2066            result.flags |= ParseFlags.HaveMinute;
 2067            result.Minute = dtok.num;
 2068            break;
 2069        case TokenType.SEP_SecondSuff:
 2070            if ((result.flags & ParseFlags.HaveSecond) != 0)
 2071            {
 2072                return false;
 2073            }
 2074            result.flags |= ParseFlags.HaveSecond;
 2075            result.Second = dtok.num;
 2076            break;
 2077        }
 2078        return true;
 2079    }