public EnglishDateParserConfiguration(ICommonDateTimeParserConfiguration config) : base(config)
 {
     DateTokenPrefix          = DateTimeDefinitions.DateTokenPrefix;
     IntegerExtractor         = config.IntegerExtractor;
     OrdinalExtractor         = config.OrdinalExtractor;
     CardinalExtractor        = config.CardinalExtractor;
     NumberParser             = config.NumberParser;
     DurationExtractor        = config.DurationExtractor;
     DateExtractor            = config.DateExtractor;
     DurationParser           = config.DurationParser;
     DateRegexes              = new EnglishDateExtractorConfiguration(this).DateRegexList;
     OnRegex                  = EnglishDateExtractorConfiguration.OnRegex;
     SpecialDayRegex          = EnglishDateExtractorConfiguration.SpecialDayRegex;
     SpecialDayWithNumRegex   = EnglishDateExtractorConfiguration.SpecialDayWithNumRegex;
     NextRegex                = EnglishDateExtractorConfiguration.NextDateRegex;
     ThisRegex                = EnglishDateExtractorConfiguration.ThisRegex;
     LastRegex                = EnglishDateExtractorConfiguration.LastDateRegex;
     UnitRegex                = EnglishDateExtractorConfiguration.DateUnitRegex;
     WeekDayRegex             = EnglishDateExtractorConfiguration.WeekDayRegex;
     MonthRegex               = EnglishDateExtractorConfiguration.MonthRegex;
     WeekDayOfMonthRegex      = EnglishDateExtractorConfiguration.WeekDayOfMonthRegex;
     ForTheRegex              = EnglishDateExtractorConfiguration.ForTheRegex;
     WeekDayAndDayOfMothRegex = EnglishDateExtractorConfiguration.WeekDayAndDayOfMothRegex;
     RelativeMonthRegex       = EnglishDateExtractorConfiguration.RelativeMonthRegex;
     YearSuffix               = EnglishDateExtractorConfiguration.YearSuffix;
     RelativeWeekDayRegex     = EnglishDateExtractorConfiguration.RelativeWeekDayRegex;
     DayOfMonth               = config.DayOfMonth;
     DayOfWeek                = config.DayOfWeek;
     MonthOfYear              = config.MonthOfYear;
     CardinalMap              = config.CardinalMap;
     UnitMap                  = config.UnitMap;
     UtilityConfiguration     = config.UtilityConfiguration;
 }
        public EnglishDateParserConfiguration(ICommonDateTimeParserConfiguration config)
            : base(config)
        {
            DateTokenPrefix = DateTimeDefinitions.DateTokenPrefix;

            IntegerExtractor  = config.IntegerExtractor;
            OrdinalExtractor  = config.OrdinalExtractor;
            CardinalExtractor = config.CardinalExtractor;
            NumberParser      = config.NumberParser;
            DateExtractor     = config.DateExtractor;
            DurationExtractor = config.DurationExtractor;
            DurationParser    = config.DurationParser;
            HolidayParser     = new BaseHolidayParser(new EnglishHolidayParserConfiguration(this));

            DateRegexes              = new EnglishDateExtractorConfiguration(this).DateRegexList;
            OnRegex                  = EnglishDateExtractorConfiguration.OnRegex;
            SpecialDayRegex          = EnglishDateExtractorConfiguration.SpecialDayRegex;
            SpecialDayWithNumRegex   = EnglishDateExtractorConfiguration.SpecialDayWithNumRegex;
            NextRegex                = EnglishDateExtractorConfiguration.NextDateRegex;
            ThisRegex                = EnglishDateExtractorConfiguration.ThisRegex;
            LastRegex                = EnglishDateExtractorConfiguration.LastDateRegex;
            UnitRegex                = EnglishDateExtractorConfiguration.DateUnitRegex;
            WeekDayRegex             = EnglishDateExtractorConfiguration.WeekDayRegex;
            MonthRegex               = EnglishDateExtractorConfiguration.MonthRegex;
            WeekDayOfMonthRegex      = EnglishDateExtractorConfiguration.WeekDayOfMonthRegex;
            ForTheRegex              = EnglishDateExtractorConfiguration.ForTheRegex;
            WeekDayAndDayOfMothRegex = EnglishDateExtractorConfiguration.WeekDayAndDayOfMothRegex;
            WeekDayAndDayRegex       = EnglishDateExtractorConfiguration.WeekDayAndDayRegex;
            RelativeMonthRegex       = EnglishDateExtractorConfiguration.RelativeMonthRegex;
            StrictRelativeRegex      = EnglishDateExtractorConfiguration.StrictRelativeRegex;
            YearSuffix               = EnglishDateExtractorConfiguration.YearSuffix;
            RelativeWeekDayRegex     = EnglishDateExtractorConfiguration.RelativeWeekDayRegex;
            BeforeAfterRegex         = EnglishDateExtractorConfiguration.BeforeAfterRegex;

            RelativeDayRegex    = new Regex(DateTimeDefinitions.RelativeDayRegex, RegexFlags);
            NextPrefixRegex     = new Regex(DateTimeDefinitions.NextPrefixRegex, RegexFlags);
            PreviousPrefixRegex = new Regex(DateTimeDefinitions.PreviousPrefixRegex, RegexFlags);
            UpcomingPrefixRegex = new Regex(DateTimeDefinitions.UpcomingPrefixRegex, RegexFlags);
            PastPrefixRegex     = new Regex(DateTimeDefinitions.PastPrefixRegex, RegexFlags);

            DayOfMonth           = config.DayOfMonth;
            DayOfWeek            = config.DayOfWeek;
            MonthOfYear          = config.MonthOfYear;
            CardinalMap          = config.CardinalMap;
            UnitMap              = config.UnitMap;
            UtilityConfiguration = config.UtilityConfiguration;

            SameDayTerms     = DateTimeDefinitions.SameDayTerms.ToImmutableList();
            PlusOneDayTerms  = DateTimeDefinitions.PlusOneDayTerms.ToImmutableList();
            PlusTwoDayTerms  = DateTimeDefinitions.PlusTwoDayTerms.ToImmutableList();
            MinusOneDayTerms = DateTimeDefinitions.MinusOneDayTerms.ToImmutableList();
            MinusTwoDayTerms = DateTimeDefinitions.MinusTwoDayTerms.ToImmutableList();
        }