public JapaneseDateTimeExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { DatePointExtractor = new BaseCJKDateExtractor(new JapaneseDateExtractorConfiguration(this)); TimePointExtractor = new BaseCJKTimeExtractor(new JapaneseTimeExtractorConfiguration(this)); DurationExtractor = new BaseCJKDurationExtractor(new JapaneseDurationExtractorConfiguration(this)); }
public KoreanDateTimeExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { DatePointExtractor = new BaseCJKDateExtractor(new KoreanDateExtractorConfiguration(this)); TimePointExtractor = new BaseCJKTimeExtractor(new KoreanTimeExtractorConfiguration(this)); DurationExtractor = new BaseCJKDurationExtractor(new KoreanDurationExtractorConfiguration(this)); }
public JapaneseDateExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None); DurationExtractor = new BaseCJKDurationExtractor(new JapaneseDurationExtractorConfiguration(durationConfig)); ImplicitDateList = new List <Regex> { LunarRegex, SpecialDayWithNumRegex, SpecialDayRegex, ThisRegex, LastRegex, NextRegex, WeekDayRegex, WeekDayOfMonthRegex, SpecialDate, WeekDayAndDayRegex, }; // 2016年12月1日 var dateRegex1 = new Regex(DateTimeDefinitions.DateRegexList1, RegexFlags); // # 2016年12月 (this is not a Date) // var dateRegex2 = new Regex(DateTimeDefinitions.DateRegexList2, RegexFlags); // (2015年)?(农历)?十月二十(星期三)? var dateRegex3 = new Regex(DateTimeDefinitions.DateRegexList3, RegexFlags); // 2015-12-23 var dateRegex8 = new Regex(DateTimeDefinitions.DateRegexList8, RegexFlags); // 23/7 var dateRegex5 = new Regex(DateTimeDefinitions.DateRegexList5, RegexFlags); // 7/23 var dateRegex4 = new Regex(DateTimeDefinitions.DateRegexList4, RegexFlags); // 23-3-2017 var dateRegex7 = new Regex(DateTimeDefinitions.DateRegexList7, RegexFlags); // 3-23-2015 var dateRegex6 = new Regex(DateTimeDefinitions.DateRegexList6, RegexFlags); // 12月1日 var dateRegex9 = new Regex(DateTimeDefinitions.DateRegexList9, RegexFlags); // 2015/12/23 var dateRegex10 = new Regex(DateTimeDefinitions.DateRegexList10, RegexFlags); // 2016/12 (this is not a Date) // var dateRegex11 = new Regex(DateTimeDefinitions.DateRegexList11, RegexFlags); // Regex precedence where the order between D and M varies is controlled by DefaultLanguageFallback var enableDmy = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_DMY; DateRegexList = new List <Regex> { dateRegex1, dateRegex10, /*dateRegex2, */ dateRegex9, dateRegex3, dateRegex4, dateRegex5 }; DateRegexList = DateRegexList.Concat( enableDmy ? new[] { dateRegex7, dateRegex6, dateRegex8 /*, dateRegex11*/ } : new[] { dateRegex6, dateRegex7, dateRegex8 /*, dateRegex11*/ }); NormalizeCharMap = DateTimeDefinitions.NormalizeCharMap; }
public KoreanDateExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None); DurationExtractor = new BaseCJKDurationExtractor(new KoreanDurationExtractorConfiguration(durationConfig)); ImplicitDateList = new List <Regex> { LunarRegex, SpecialDayRegex, ThisRegex, LastRegex, NextRegex, WeekDayRegex, WeekDayOfMonthRegex, SpecialDate, DurationFromSpecialDayRegex, }; // (음력)? (2016)? 1 월 3 일 (수)? var dateRegex1 = new Regex(DateTimeDefinitions.DateRegexList1, RegexFlags); // (2015)? (음력)? 10 월 1 일 (수)? var dateRegex2 = new Regex(DateTimeDefinitions.DateRegexList2, RegexFlags); // (2015)? (음력)? 10 월 20 일 (수)? var dateRegex3 = new Regex(DateTimeDefinitions.DateRegexList3, RegexFlags); // 2015-12-23 var dateRegex8 = new Regex(DateTimeDefinitions.DateRegexList8, RegexFlags); var dateRegex9 = new Regex(DateTimeDefinitions.DateRegexList9, RegexFlags); // 23/7 var dateRegex5 = new Regex(DateTimeDefinitions.DateRegexList5, RegexFlags); // 7/23 var dateRegex4 = new Regex(DateTimeDefinitions.DateRegexList4, RegexFlags); // 23-3-2017 var dateRegex7 = new Regex(DateTimeDefinitions.DateRegexList7, RegexFlags); // 3-23-2015 var dateRegex6 = new Regex(DateTimeDefinitions.DateRegexList6, RegexFlags); // Regex precedence where the order between D and M varies is controlled by DefaultLanguageFallback var enableDmy = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_DMY; var enableYmd = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_YMD; DateRegexList = new List <Regex> { dateRegex1, dateRegex2, dateRegex3, dateRegex8, dateRegex9 }; DateRegexList = DateRegexList.Concat( enableDmy ? new[] { dateRegex5, dateRegex4, dateRegex7, dateRegex6 } : enableYmd ? new[] { dateRegex4, dateRegex5, dateRegex7, dateRegex6 } : new[] { dateRegex4, dateRegex5, dateRegex6, dateRegex7 }); NormalizeCharMap = null; }
public ChineseSetExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { DurationExtractor = new BaseCJKDurationExtractor(new ChineseDurationExtractorConfiguration(this)); TimeExtractor = new BaseCJKTimeExtractor(new ChineseTimeExtractorConfiguration(this)); DateExtractor = new BaseCJKDateExtractor(new ChineseDateExtractorConfiguration(this)); DateTimeExtractor = new BaseCJKDateTimeExtractor(new ChineseDateTimeExtractorConfiguration(this)); DatePeriodExtractor = new BaseCJKDatePeriodExtractor(new ChineseDatePeriodExtractorConfiguration(this)); TimePeriodExtractor = new BaseCJKTimePeriodExtractor(new ChineseTimePeriodExtractorConfiguration(this)); DateTimePeriodExtractor = new BaseCJKDateTimePeriodExtractor(new ChineseDateTimePeriodExtractorConfiguration(this)); }
public ChineseDateExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None); DurationExtractor = new BaseCJKDurationExtractor(new ChineseDurationExtractorConfiguration(durationConfig)); ImplicitDateList = new List <Regex> { LunarRegex, SpecialDayRegex, ThisRegex, LastRegex, NextRegex, WeekDayRegex, WeekDayOfMonthRegex, SpecialDate, }; // (农历)?(2016年)?一月三日(星期三)? var dateRegex1 = new Regex(DateTimeDefinitions.DateRegexList1, RegexFlags); // (2015年)?(农历)?十月初一(星期三)? var dateRegex2 = new Regex(DateTimeDefinitions.DateRegexList2, RegexFlags); // (2015年)?(农历)?十月二十(星期三)? var dateRegex3 = new Regex(DateTimeDefinitions.DateRegexList3, RegexFlags); // 2015-12-23 - This regex represents the standard format in Chinese dates (YMD) and has precedence over other orderings var dateRegex8 = new Regex(DateTimeDefinitions.DateRegexList8, RegexFlags); // 23/7 var dateRegex5 = new Regex(DateTimeDefinitions.DateRegexList5, RegexFlags); // 7/23 var dateRegex4 = new Regex(DateTimeDefinitions.DateRegexList4, RegexFlags); // 23-3-2017 var dateRegex7 = new Regex(DateTimeDefinitions.DateRegexList7, RegexFlags); // 3-23-2015 var dateRegex6 = new Regex(DateTimeDefinitions.DateRegexList6, RegexFlags); // Regex precedence where the order between D and M varies is controlled by DefaultLanguageFallback var enableDmy = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_DMY; var enableYmd = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_YMD; DateRegexList = new List <Regex> { dateRegex1, dateRegex2, dateRegex3, dateRegex8 }; DateRegexList = DateRegexList.Concat( enableDmy ? new[] { dateRegex5, dateRegex4, dateRegex7, dateRegex6 } : enableYmd ? new[] { dateRegex4, dateRegex5, dateRegex7, dateRegex6 } : new[] { dateRegex4, dateRegex5, dateRegex6, dateRegex7 }); NormalizeCharMap = null; }
public ChineseMergedExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { AmbiguityFiltersDict = DefinitionLoader.LoadAmbiguityFilters(DateTimeDefinitions.AmbiguityFiltersDict); DateExtractor = new BaseCJKDateExtractor(new ChineseDateExtractorConfiguration(this)); TimeExtractor = new BaseCJKTimeExtractor(new ChineseTimeExtractorConfiguration(this)); DateTimeExtractor = new BaseCJKDateTimeExtractor(new ChineseDateTimeExtractorConfiguration(this)); DatePeriodExtractor = new BaseCJKDatePeriodExtractor(new ChineseDatePeriodExtractorConfiguration(this)); TimePeriodExtractor = new BaseCJKTimePeriodExtractor(new ChineseTimePeriodExtractorConfiguration(this)); DateTimePeriodExtractor = new BaseCJKDateTimePeriodExtractor(new ChineseDateTimePeriodExtractorConfiguration(this)); DurationExtractor = new BaseCJKDurationExtractor(new ChineseDurationExtractorConfiguration(this)); SetExtractor = new BaseCJKSetExtractor(new ChineseSetExtractorConfiguration(this)); HolidayExtractor = new BaseCJKHolidayExtractor(new ChineseHolidayExtractorConfiguration(this)); }
public ChineseDurationParserConfiguration(ICJKCommonDateTimeParserConfiguration config) : base(config) { InternalParser = new NumberWithUnitParser(new DurationParserConfiguration()); var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None); DurationExtractor = new BaseCJKDurationExtractor(new ChineseDurationExtractorConfiguration(durationConfig), false); YearRegex = ChineseDurationExtractorConfiguration.YearRegex; DurationUnitRegex = ChineseDurationExtractorConfiguration.DurationUnitRegex; DurationConnectorRegex = ChineseDurationExtractorConfiguration.DurationConnectorRegex; UnitMap = config.UnitMap; UnitValueMap = config.UnitValueMap; }
public ChineseCommonDateTimeParserConfiguration(IDateTimeOptionsConfiguration config) : base(config) { UnitMap = DateTimeDefinitions.ParserConfigurationUnitMap.ToImmutableDictionary(k => k.Key, k => k.Value.Substring(0, 1) + k.Value.Substring(1).ToLower()); UnitValueMap = DateTimeDefinitions.DurationUnitValueMap.ToImmutableDictionary(); CardinalMap = DateTimeDefinitions.ParserConfigurationCardinalMap.ToImmutableDictionary(); DayOfMonth = DateTimeDefinitions.ParserConfigurationDayOfMonth.ToImmutableDictionary(); DayOfWeek = DateTimeDefinitions.ParserConfigurationDayOfWeek.ToImmutableDictionary(); MonthOfYear = DateTimeDefinitions.ParserConfigurationMonthOfYear.ToImmutableDictionary(); var numOptions = NumberOptions.None; if ((config.Options & DateTimeOptions.NoProtoCache) != 0) { numOptions = NumberOptions.NoProtoCache; } var numConfig = new BaseNumberOptionsConfiguration(config.Culture, numOptions); IntegerExtractor = new IntegerExtractor(numConfig); CardinalExtractor = new CardinalExtractor(numConfig); OrdinalExtractor = new OrdinalExtractor(numConfig); NumberParser = new BaseCJKNumberParser(new ChineseNumberParserConfiguration(numConfig)); // Do not change order. The order of initialization can lead to side-effects DateExtractor = new BaseCJKDateExtractor(new ChineseDateExtractorConfiguration(this)); TimeExtractor = new BaseCJKTimeExtractor(new ChineseTimeExtractorConfiguration(this)); DateTimeExtractor = new BaseCJKDateTimeExtractor(new ChineseDateTimeExtractorConfiguration(this)); DurationExtractor = new BaseCJKDurationExtractor(new ChineseDurationExtractorConfiguration(this)); DatePeriodExtractor = new BaseCJKDatePeriodExtractor(new ChineseDatePeriodExtractorConfiguration(this)); TimePeriodExtractor = new BaseCJKTimePeriodExtractor(new ChineseTimePeriodExtractorConfiguration(this)); DateTimePeriodExtractor = new BaseCJKDateTimePeriodExtractor(new ChineseDateTimePeriodExtractorConfiguration(this)); HolidayExtractor = new BaseCJKDurationExtractor(new ChineseDurationExtractorConfiguration(this)); SetExtractor = new BaseCJKDurationExtractor(new ChineseDurationExtractorConfiguration(this)); DurationParser = new BaseCJKDurationParser(new ChineseDurationParserConfiguration(this)); DateParser = new BaseCJKDateParser(new ChineseDateParserConfiguration(this)); TimeParser = new BaseCJKTimeParser(new ChineseTimeParserConfiguration(this)); DateTimeParser = new BaseCJKDateTimeParser(new ChineseDateTimeParserConfiguration(this)); DatePeriodParser = new BaseCJKDatePeriodParser(new ChineseDatePeriodParserConfiguration(this)); TimePeriodParser = new BaseCJKTimePeriodParser(new ChineseTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseCJKDateTimePeriodParser(new ChineseDateTimePeriodParserConfiguration(this)); HolidayParser = new BaseCJKHolidayParser(new ChineseHolidayParserConfiguration(this)); SetParser = new BaseCJKSetParser(new ChineseSetParserConfiguration(this)); }
public JapaneseDatePeriodExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { DatePointExtractor = new BaseCJKDateExtractor(new JapaneseDateExtractorConfiguration(this)); DurationExtractor = new BaseCJKDurationExtractor(new JapaneseDurationExtractorConfiguration(this)); var numOptions = NumberOptions.None; if ((config.Options & DateTimeOptions.NoProtoCache) != 0) { numOptions = NumberOptions.NoProtoCache; } var numConfig = new BaseNumberOptionsConfiguration(config.Culture, numOptions); IntegerExtractor = new IntegerExtractor(numConfig); }
public KoreanDateTimePeriodExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { var numOptions = NumberOptions.None; if ((config.Options & DateTimeOptions.NoProtoCache) != 0) { numOptions = NumberOptions.NoProtoCache; } var numConfig = new BaseNumberOptionsConfiguration(config.Culture, numOptions); CardinalExtractor = new CardinalExtractor(numConfig); SingleDateExtractor = new BaseCJKDateExtractor(new KoreanDateExtractorConfiguration(this)); SingleTimeExtractor = new BaseCJKTimeExtractor(new KoreanTimeExtractorConfiguration(this)); SingleDateTimeExtractor = new BaseCJKDateTimeExtractor(new KoreanDateTimeExtractorConfiguration(this)); DurationExtractor = new BaseCJKDurationExtractor(new KoreanDurationExtractorConfiguration(this)); TimePeriodExtractor = new BaseCJKTimePeriodExtractor(new KoreanTimePeriodExtractorConfiguration(this)); }