public PortugueseCommonDateTimeParserConfiguration(IOptionsConfiguration config) : base(config) { UtilityConfiguration = new PortugueseDatetimeUtilityConfiguration(); UnitMap = DateTimeDefinitions.UnitMap.ToImmutableDictionary(); UnitValueMap = DateTimeDefinitions.UnitValueMap.ToImmutableDictionary(); SeasonMap = DateTimeDefinitions.SeasonMap.ToImmutableDictionary(); CardinalMap = DateTimeDefinitions.CardinalMap.ToImmutableDictionary(); DayOfWeek = DateTimeDefinitions.DayOfWeek.ToImmutableDictionary(); MonthOfYear = DateTimeDefinitions.MonthOfYear.ToImmutableDictionary(); Numbers = DateTimeDefinitions.Numbers.ToImmutableDictionary(); DoubleNumbers = DateTimeDefinitions.DoubleNumbers.ToImmutableDictionary(); WrittenDecades = DateTimeDefinitions.WrittenDecades.ToImmutableDictionary(); SpecialDecadeCases = DateTimeDefinitions.SpecialDecadeCases.ToImmutableDictionary(); CardinalExtractor = Number.Portuguese.CardinalExtractor.GetInstance(); IntegerExtractor = new IntegerExtractor(); OrdinalExtractor = new OrdinalExtractor(); NumberParser = new BaseNumberParser(new PortugueseNumberParserConfiguration()); DateExtractor = new BaseDateExtractor(new PortugueseDateExtractorConfiguration(this)); TimeExtractor = new BaseTimeExtractor(new PortugueseTimeExtractorConfiguration(this)); DateTimeExtractor = new BaseDateTimeExtractor(new PortugueseDateTimeExtractorConfiguration(this)); DurationExtractor = new BaseDurationExtractor(new PortugueseDurationExtractorConfiguration(this)); DatePeriodExtractor = new BaseDatePeriodExtractor(new PortugueseDatePeriodExtractorConfiguration(this)); TimePeriodExtractor = new BaseTimePeriodExtractor(new PortugueseTimePeriodExtractorConfiguration(this)); DateTimePeriodExtractor = new BaseDateTimePeriodExtractor(new PortugueseDateTimePeriodExtractorConfiguration(this)); DateParser = new BaseDateParser(new PortugueseDateParserConfiguration(this)); TimeParser = new BaseTimeParser(new PortugueseTimeParserConfiguration(this)); DateTimeParser = new BaseDateTimeParser(new PortugueseDateTimeParserConfiguration(this)); DurationParser = new BaseDurationParser(new PortugueseDurationParserConfiguration(this)); DatePeriodParser = new BaseDatePeriodParser(new PortugueseDatePeriodParserConfiguration(this)); TimePeriodParser = new BaseTimePeriodParser(new PortugueseTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseDateTimePeriodParser(new PortugueseDateTimePeriodParserConfiguration(this)); }
public SpanishCommonDateTimeParserConfiguration(DateTimeOptions options) : base(options) { UtilityConfiguration = new SpanishDatetimeUtilityConfiguration(); UnitMap = DateTimeDefinitions.UnitMap.ToImmutableDictionary(); UnitValueMap = DateTimeDefinitions.UnitValueMap.ToImmutableDictionary(); SeasonMap = DateTimeDefinitions.SeasonMap.ToImmutableDictionary(); CardinalMap = DateTimeDefinitions.CardinalMap.ToImmutableDictionary(); DayOfWeek = DateTimeDefinitions.DayOfWeek.ToImmutableDictionary(); MonthOfYear = DateTimeDefinitions.MonthOfYear.ToImmutableDictionary(); Numbers = DateTimeDefinitions.Numbers.ToImmutableDictionary(); DoubleNumbers = DateTimeDefinitions.DoubleNumbers.ToImmutableDictionary(); CardinalExtractor = Number.Spanish.CardinalExtractor.GetInstance(); IntegerExtractor = new IntegerExtractor(); OrdinalExtractor = new OrdinalExtractor(); NumberParser = new BaseNumberParser(new SpanishNumberParserConfiguration()); DateExtractor = new BaseDateExtractor(new SpanishDateExtractorConfiguration()); TimeExtractor = new BaseTimeExtractor(new SpanishTimeExtractorConfiguration()); DateTimeExtractor = new BaseDateTimeExtractor(new SpanishDateTimeExtractorConfiguration()); DurationExtractor = new BaseDurationExtractor(new SpanishDurationExtractorConfiguration()); DatePeriodExtractor = new BaseDatePeriodExtractor(new SpanishDatePeriodExtractorConfiguration()); TimePeriodExtractor = new BaseTimePeriodExtractor(new SpanishTimePeriodExtractorConfiguration()); DateTimePeriodExtractor = new BaseDateTimePeriodExtractor(new SpanishDateTimePeriodExtractorConfiguration()); DateParser = new BaseDateParser(new SpanishDateParserConfiguration(this)); TimeParser = new BaseTimeParser(new SpanishTimeParserConfiguration(this)); DateTimeParser = new BaseDateTimeParser(new SpanishDateTimeParserConfiguration(this)); DurationParser = new BaseDurationParser(new SpanishDurationParserConfiguration(this)); DatePeriodParser = new BaseDatePeriodParser(new SpanishDatePeriodParserConfiguration(this)); TimePeriodParser = new BaseTimePeriodParser(new SpanishTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseDateTimePeriodParser(new SpanishDateTimePeriodParserConfiguration(this)); }
public SpanishCommonDateTimeParserConfiguration() { UnitMap = InitUnitMap(); UnitValueMap = InitUnitValueMap(); SeasonMap = InitSeasonMap(); CardinalMap = InitCardinalMap(); DayOfWeek = InitDayOfWeek(); MonthOfYear = InitMonthOfYear(); Numbers = InitNumbers(); DoubleNumbers = InitDoubleNumbers(); CardinalExtractor = new CardinalExtractor(); IntegerExtractor = new IntegerExtractor(); OrdinalExtractor = new OrdinalExtractor(); NumberParser = new BaseNumberParser(new SpanishNumberParserConfiguration()); DateExtractor = new BaseDateExtractor(new SpanishDateExtractorConfiguration()); TimeExtractor = new BaseTimeExtractor(new SpanishTimeExtractorConfiguration()); DateTimeExtractor = new BaseDateTimeExtractor(new SpanishDateTimeExtractorConfiguration()); DurationExtractor = new BaseDurationExtractor(new SpanishDurationExtractorConfiguration()); DatePeriodExtractor = new BaseDatePeriodExtractor(new SpanishDatePeriodExtractorConfiguration()); TimePeriodExtractor = new BaseTimePeriodExtractor(new SpanishTimePeriodExtractorConfiguration()); DateTimePeriodExtractor = new BaseDateTimePeriodExtractor(new SpanishDateTimePeriodExtractorConfiguration()); DateParser = new BaseDateParser(new SpanishDateParserConfiguration(this)); TimeParser = new BaseTimeParser(new SpanishTimeParserConfiguration(this)); DateTimeParser = new BaseDateTimeParser(new SpanishDateTimeParserConfiguration(this)); DurationParser = new BaseDurationParser(new SpanishDurationParserConfiguration(this)); UtilityConfiguration = new SpanishDatetimeUtilityConfiguration(); DatePeriodParser = new BaseDatePeriodParser(new SpanishDatePeriodParserConfiguration(this)); TimePeriodParser = new BaseTimePeriodParser(new SpanishTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseDateTimePeriodParser(new SpanishDateTimePeriodParserConfiguration(this)); }
public FrenchCommonDateTimeParserConfiguration() { UtilityConfiguration = new FrenchDatetimeUtilityConfiguration(); UnitMap = DateTimeDefinitions.UnitMap.ToImmutableDictionary(); UnitValueMap = DateTimeDefinitions.UnitValueMap.ToImmutableDictionary(); SeasonMap = DateTimeDefinitions.SeasonMap.ToImmutableDictionary(); CardinalMap = DateTimeDefinitions.CardinalMap.ToImmutableDictionary(); DayOfWeek = DateTimeDefinitions.DayOfWeek.ToImmutableDictionary(); MonthOfYear = DateTimeDefinitions.MonthOfYear.ToImmutableDictionary(); Numbers = DateTimeDefinitions.Numbers.ToImmutableDictionary(); DoubleNumbers = DateTimeDefinitions.DoubleNumbers.ToImmutableDictionary(); CardinalExtractor = new CardinalExtractor(); IntegerExtractor = new IntegerExtractor(); OrdinalExtractor = new OrdinalExtractor(); NumberParser = new BaseNumberParser(new FrenchNumberParserConfiguration()); DateExtractor = new BaseDateExtractor(new FrenchDateExtractorConfiguration()); TimeExtractor = new BaseTimeExtractor(new FrenchTimeExtractorConfiguration()); DateTimeExtractor = new BaseDateTimeExtractor(new FrenchDateTimeExtractorConfiguration()); DurationExtractor = new BaseDurationExtractor(new FrenchDurationExtractorConfiguration()); DatePeriodExtractor = new BaseDatePeriodExtractor(new FrenchDatePeriodExtractorConfiguration()); TimePeriodExtractor = new BaseTimePeriodExtractor(new FrenchTimePeriodExtractorConfiguration()); DateTimePeriodExtractor = new BaseDateTimePeriodExtractor(new FrenchDateTimePeriodExtractorConfiguration()); DateParser = new BaseDateParser(new FrenchDateParserConfiguration(this)); TimeParser = new BaseTimeParser(new FrenchTimeParserConfiguration(this)); DateTimeParser = new BaseDateTimeParser(new FrenchDateTimeParserConfiguration(this)); DurationParser = new BaseDurationParser(new FrenchDurationParserConfiguration(this)); DatePeriodParser = new BaseDatePeriodParser(new FrenchDatePeriodParserConfiguration(this)); TimePeriodParser = new BaseTimePeriodParser(new FrenchTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseDateTimePeriodParser(new FrenchDateTimePeriodParserConfiguration(this)); }
public SwedishCommonDateTimeParserConfiguration(IDateTimeOptionsConfiguration config) : base(config) { UtilityConfiguration = new SwedishDatetimeUtilityConfiguration(); UnitMap = DateTimeDefinitions.UnitMap.ToImmutableDictionary(); UnitValueMap = DateTimeDefinitions.UnitValueMap.ToImmutableDictionary(); SeasonMap = DateTimeDefinitions.SeasonMap.ToImmutableDictionary(); SpecialYearPrefixesMap = DateTimeDefinitions.SpecialYearPrefixesMap.ToImmutableDictionary(); CardinalMap = DateTimeDefinitions.CardinalMap.ToImmutableDictionary(); DayOfWeek = DateTimeDefinitions.DayOfWeek.ToImmutableDictionary(); MonthOfYear = DateTimeDefinitions.MonthOfYear.ToImmutableDictionary(); Numbers = DateTimeDefinitions.Numbers.ToImmutableDictionary(); DoubleNumbers = DateTimeDefinitions.DoubleNumbers.ToImmutableDictionary(); WrittenDecades = DateTimeDefinitions.WrittenDecades.ToImmutableDictionary(); SpecialDecadeCases = DateTimeDefinitions.SpecialDecadeCases.ToImmutableDictionary(); var numOptions = NumberOptions.None; if ((config.Options & DateTimeOptions.NoProtoCache) != 0) { numOptions = NumberOptions.NoProtoCache; } var numConfig = new BaseNumberOptionsConfiguration(config.Culture, numOptions); CardinalExtractor = Number.Swedish.CardinalExtractor.GetInstance(numConfig); IntegerExtractor = Number.Swedish.IntegerExtractor.GetInstance(numConfig); OrdinalExtractor = Number.Swedish.OrdinalExtractor.GetInstance(numConfig); NumberParser = new BaseNumberParser(new SwedishNumberParserConfiguration(numConfig)); TimeZoneParser = new BaseTimeZoneParser(new SwedishTimeZoneParserConfiguration(this)); // Do not change order. The order of initialization can lead to side-effects DateExtractor = new BaseDateExtractor(new SwedishDateExtractorConfiguration(this)); TimeExtractor = new BaseTimeExtractor(new SwedishTimeExtractorConfiguration(this)); DateTimeExtractor = new BaseDateTimeExtractor(new SwedishDateTimeExtractorConfiguration(this)); DurationExtractor = new BaseDurationExtractor(new SwedishDurationExtractorConfiguration(this)); DatePeriodExtractor = new BaseDatePeriodExtractor(new SwedishDatePeriodExtractorConfiguration(this)); TimePeriodExtractor = new BaseTimePeriodExtractor(new SwedishTimePeriodExtractorConfiguration(this)); DateTimePeriodExtractor = new BaseDateTimePeriodExtractor(new SwedishDateTimePeriodExtractorConfiguration(this)); DurationParser = new BaseDurationParser(new SwedishDurationParserConfiguration(this)); DateParser = new BaseDateParser(new SwedishDateParserConfiguration(this)); TimeParser = new TimeParser(new SwedishTimeParserConfiguration(this)); DateTimeParser = new BaseDateTimeParser(new SwedishDateTimeParserConfiguration(this)); DatePeriodParser = new BaseDatePeriodParser(new SwedishDatePeriodParserConfiguration(this)); TimePeriodParser = new BaseTimePeriodParser(new SwedishTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseDateTimePeriodParser(new SwedishDateTimePeriodParserConfiguration(this)); DateTimeAltParser = new BaseDateTimeAltParser(new SwedishDateTimeAltParserConfiguration(this)); }
public FrenchCommonDateTimeParserConfiguration(IDateTimeOptionsConfiguration config) : base(config) { UtilityConfiguration = new FrenchDatetimeUtilityConfiguration(); UnitMap = DateTimeDefinitions.UnitMap.ToImmutableDictionary(); UnitValueMap = DateTimeDefinitions.UnitValueMap.ToImmutableDictionary(); SeasonMap = DateTimeDefinitions.SeasonMap.ToImmutableDictionary(); SpecialYearPrefixesMap = DateTimeDefinitions.SpecialYearPrefixesMap.ToImmutableDictionary(); CardinalMap = DateTimeDefinitions.CardinalMap.ToImmutableDictionary(); DayOfWeek = DateTimeDefinitions.DayOfWeek.ToImmutableDictionary(); MonthOfYear = DateTimeDefinitions.MonthOfYear.ToImmutableDictionary(); Numbers = DateTimeDefinitions.Numbers.ToImmutableDictionary(); DoubleNumbers = DateTimeDefinitions.DoubleNumbers.ToImmutableDictionary(); WrittenDecades = DateTimeDefinitions.WrittenDecades.ToImmutableDictionary(); SpecialDecadeCases = DateTimeDefinitions.SpecialDecadeCases.ToImmutableDictionary(); var numOptions = NumberOptions.None; if ((config.Options & DateTimeOptions.NoProtoCache) != 0) { numOptions = NumberOptions.NoProtoCache; } var numConfig = new BaseNumberOptionsConfiguration(config.Culture, numOptions); CardinalExtractor = Number.French.CardinalExtractor.GetInstance(numConfig); IntegerExtractor = Number.French.IntegerExtractor.GetInstance(numConfig); OrdinalExtractor = Number.French.OrdinalExtractor.GetInstance(numConfig); NumberParser = new BaseNumberParser(new FrenchNumberParserConfiguration(numConfig)); DateExtractor = new BaseDateExtractor(new FrenchDateExtractorConfiguration(this)); TimeExtractor = new BaseTimeExtractor(new FrenchTimeExtractorConfiguration(this)); DateTimeExtractor = new BaseDateTimeExtractor(new FrenchDateTimeExtractorConfiguration(this)); DurationExtractor = new BaseDurationExtractor(new FrenchDurationExtractorConfiguration(this)); DatePeriodExtractor = new BaseDatePeriodExtractor(new FrenchDatePeriodExtractorConfiguration(this)); TimePeriodExtractor = new BaseTimePeriodExtractor(new FrenchTimePeriodExtractorConfiguration(this)); DateTimePeriodExtractor = new BaseDateTimePeriodExtractor(new FrenchDateTimePeriodExtractorConfiguration(this)); // DurationParser should be assigned first, as DateParser would reference the DurationParser DurationParser = new BaseDurationParser(new FrenchDurationParserConfiguration(this)); DateParser = new BaseDateParser(new FrenchDateParserConfiguration(this)); TimeParser = new BaseTimeParser(new FrenchTimeParserConfiguration(this)); DateTimeParser = new BaseDateTimeParser(new FrenchDateTimeParserConfiguration(this)); DatePeriodParser = new BaseDatePeriodParser(new FrenchDatePeriodParserConfiguration(this)); TimePeriodParser = new BaseTimePeriodParser(new FrenchTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseDateTimePeriodParser(new FrenchDateTimePeriodParserConfiguration(this)); DateTimeAltParser = new BaseDateTimeAltParser(new FrenchDateTimeAltParserConfiguration(this)); }
public HindiCommonDateTimeParserConfiguration(IDateTimeOptionsConfiguration config) : base(config) { UtilityConfiguration = new HindiDatetimeUtilityConfiguration(); UnitMap = DateTimeDefinitions.UnitMap.ToImmutableDictionary(); UnitValueMap = DateTimeDefinitions.UnitValueMap.ToImmutableDictionary(); SeasonMap = DateTimeDefinitions.SeasonMap.ToImmutableDictionary(); SpecialYearPrefixesMap = DateTimeDefinitions.SpecialYearPrefixesMap.ToImmutableDictionary(); CardinalMap = DateTimeDefinitions.CardinalMap.ToImmutableDictionary(); DayOfWeek = DateTimeDefinitions.DayOfWeek.ToImmutableDictionary(); MonthOfYear = DateTimeDefinitions.MonthOfYear.ToImmutableDictionary(); Numbers = DateTimeDefinitions.Numbers.ToImmutableDictionary(); DoubleNumbers = DateTimeDefinitions.DoubleNumbers.ToImmutableDictionary(); WrittenDecades = DateTimeDefinitions.WrittenDecades.ToImmutableDictionary(); SpecialDecadeCases = DateTimeDefinitions.SpecialDecadeCases.ToImmutableDictionary(); var numOptions = NumberOptions.None; if ((config.Options & DateTimeOptions.NoProtoCache) != 0) { numOptions = NumberOptions.NoProtoCache; } var numConfig = new BaseNumberOptionsConfiguration(config.Culture, numOptions); CardinalExtractor = Number.Hindi.CardinalExtractor.GetInstance(); IntegerExtractor = Number.Hindi.IntegerExtractor.GetInstance(); OrdinalExtractor = Number.Hindi.OrdinalExtractor.GetInstance(); NumberParser = new BaseIndianNumberParser(new HindiNumberParserConfiguration(numConfig)); TimeZoneParser = new BaseTimeZoneParser(); DateExtractor = new BaseDateExtractor(new HindiDateExtractorConfiguration(this)); TimeExtractor = new BaseTimeExtractor(new HindiTimeExtractorConfiguration(this)); DateTimeExtractor = new BaseDateTimeExtractor(new HindiDateTimeExtractorConfiguration(this)); DurationExtractor = new BaseDurationExtractor(new HindiDurationExtractorConfiguration(this)); DatePeriodExtractor = new BaseDatePeriodExtractor(new HindiDatePeriodExtractorConfiguration(this)); TimePeriodExtractor = new BaseTimePeriodExtractor(new HindiTimePeriodExtractorConfiguration(this)); DateTimePeriodExtractor = new BaseDateTimePeriodExtractor(new HindiDateTimePeriodExtractorConfiguration(this)); DurationParser = new BaseDurationParser(new HindiDurationParserConfiguration(this)); DateParser = new BaseDateParser(new HindiDateParserConfiguration(this)); TimeParser = new TimeParser(new HindiTimeParserConfiguration(this)); DateTimeParser = new BaseDateTimeParser(new HindiDateTimeParserConfiguration(this)); DatePeriodParser = new BaseDatePeriodParser(new HindiDatePeriodParserConfiguration(this)); TimePeriodParser = new BaseTimePeriodParser(new HindiTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseDateTimePeriodParser(new HindiDateTimePeriodParserConfiguration(this)); DateTimeAltParser = new BaseDateTimeAltParser(new HindiDateTimeAltParserConfiguration(this)); }
public DateTimeParseResult Parse(ExtractResult er, DateObject refDate) { var referenceTime = refDate; var parseResult = InternalParser.Parse(er); var unitResult = parseResult.Value as UnitValue; if (unitResult == null) { return(null); } var dateTimeParseResult = new DateTimeResolutionResult(); var unitStr = unitResult.Unit; var numStr = unitResult.Number; dateTimeParseResult.Timex = "P" + (BaseDurationParser.IsLessThanDay(unitStr) ? "T" : string.Empty) + numStr + unitStr[0]; dateTimeParseResult.FutureValue = dateTimeParseResult.PastValue = double.Parse(numStr) * UnitValueMap[unitStr]; dateTimeParseResult.Success = true; if (dateTimeParseResult.Success) { dateTimeParseResult.FutureResolution = new Dictionary <string, string> { { TimeTypeConstants.DURATION, dateTimeParseResult.FutureValue.ToString() }, }; dateTimeParseResult.PastResolution = new Dictionary <string, string> { { TimeTypeConstants.DURATION, dateTimeParseResult.PastValue.ToString() }, }; } var ret = new DateTimeParseResult { Text = er.Text, Start = er.Start, Length = er.Length, Type = er.Type, Data = er.Data, Value = dateTimeParseResult, TimexStr = dateTimeParseResult.Timex, ResolutionStr = string.Empty, }; return(ret); }
public EnglishCommonDateTimeParserConfiguration(IDateTimeOptionsConfiguration config) : base(config) { UtilityConfiguration = new EnglishDatetimeUtilityConfiguration(); UnitMap = DateTimeDefinitions.UnitMap.ToImmutableDictionary(); UnitValueMap = DateTimeDefinitions.UnitValueMap.ToImmutableDictionary(); SeasonMap = DateTimeDefinitions.SeasonMap.ToImmutableDictionary(); SpecialYearPrefixesMap = DateTimeDefinitions.SpecialYearPrefixesMap.ToImmutableDictionary(); CardinalMap = DateTimeDefinitions.CardinalMap.ToImmutableDictionary(); DayOfWeek = DateTimeDefinitions.DayOfWeek.ToImmutableDictionary(); MonthOfYear = DateTimeDefinitions.MonthOfYear.ToImmutableDictionary(); Numbers = DateTimeDefinitions.Numbers.ToImmutableDictionary(); DoubleNumbers = DateTimeDefinitions.DoubleNumbers.ToImmutableDictionary(); WrittenDecades = DateTimeDefinitions.WrittenDecades.ToImmutableDictionary(); SpecialDecadeCases = DateTimeDefinitions.SpecialDecadeCases.ToImmutableDictionary(); CardinalExtractor = Number.English.CardinalExtractor.GetInstance(); IntegerExtractor = Number.English.IntegerExtractor.GetInstance(); OrdinalExtractor = Number.English.OrdinalExtractor.GetInstance(); TimeZoneParser = new BaseTimeZoneParser(); NumberParser = new BaseNumberParser(new EnglishNumberParserConfiguration(new BaseNumberOptionsConfiguration(config.Culture))); DateExtractor = new BaseDateExtractor(new EnglishDateExtractorConfiguration(this)); TimeExtractor = new BaseTimeExtractor(new EnglishTimeExtractorConfiguration(this)); DateTimeExtractor = new BaseDateTimeExtractor(new EnglishDateTimeExtractorConfiguration(this)); DurationExtractor = new BaseDurationExtractor(new EnglishDurationExtractorConfiguration(this)); DatePeriodExtractor = new BaseDatePeriodExtractor(new EnglishDatePeriodExtractorConfiguration(this)); TimePeriodExtractor = new BaseTimePeriodExtractor(new EnglishTimePeriodExtractorConfiguration(this)); DateTimePeriodExtractor = new BaseDateTimePeriodExtractor(new EnglishDateTimePeriodExtractorConfiguration(this)); DurationParser = new BaseDurationParser(new EnglishDurationParserConfiguration(this)); DateParser = new BaseDateParser(new EnglishDateParserConfiguration(this)); TimeParser = new TimeParser(new EnglishTimeParserConfiguration(this)); DateTimeParser = new BaseDateTimeParser(new EnglishDateTimeParserConfiguration(this)); DatePeriodParser = new BaseDatePeriodParser(new EnglishDatePeriodParserConfiguration(this)); TimePeriodParser = new BaseTimePeriodParser(new EnglishTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseDateTimePeriodParser(new EnglishDateTimePeriodParserConfiguration(this)); DateTimeAltParser = new BaseDateTimeAltParser(new EnglishDateTimeAltParserConfiguration(this)); }
public ItalianMergedParserConfiguration(IDateTimeOptionsConfiguration config) : base(config) { BeforeRegex = ItalianMergedExtractorConfiguration.BeforeRegex; AfterRegex = ItalianMergedExtractorConfiguration.AfterRegex; SinceRegex = ItalianMergedExtractorConfiguration.SinceRegex; AroundRegex = ItalianMergedExtractorConfiguration.AroundRegex; EqualRegex = ItalianMergedExtractorConfiguration.EqualRegex; SuffixAfter = ItalianMergedExtractorConfiguration.SuffixAfterRegex; YearRegex = ItalianDatePeriodExtractorConfiguration.YearRegex; SuperfluousWordMatcher = ItalianMergedExtractorConfiguration.SuperfluousWordMatcher; DateParser = new BaseDateParser(new ItalianDateParserConfiguration(this)); DatePeriodParser = new BaseDatePeriodParser(new ItalianDatePeriodParserConfiguration(this)); DateTimeParser = new BaseDateTimeParser(new ItalianDateTimeParserConfiguration(this)); DurationParser = new BaseDurationParser(new ItalianDurationParserConfiguration(this)); TimePeriodParser = new BaseTimePeriodParser(new ItalianTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseDateTimePeriodParser(new ItalianDateTimePeriodParserConfiguration(this)); SetParser = new BaseSetParser(new ItalianSetParserConfiguration(this)); HolidayParser = new BaseHolidayParser(new ItalianHolidayParserConfiguration(this)); TimeZoneParser = new DummyTimeZoneParser(); }
public ItalianCommonDateTimeParserConfiguration(IOptionsConfiguration options) : base(options) { UtilityConfiguration = new ItalianDatetimeUtilityConfiguration(); UnitMap = DateTimeDefinitions.UnitMap.ToImmutableDictionary(); UnitValueMap = DateTimeDefinitions.UnitValueMap.ToImmutableDictionary(); SeasonMap = DateTimeDefinitions.SeasonMap.ToImmutableDictionary(); SpecialYearPrefixesMap = DateTimeDefinitions.SpecialYearPrefixesMap.ToImmutableDictionary(); CardinalMap = DateTimeDefinitions.CardinalMap.ToImmutableDictionary(); DayOfWeek = DateTimeDefinitions.DayOfWeek.ToImmutableDictionary(); MonthOfYear = DateTimeDefinitions.MonthOfYear.ToImmutableDictionary(); Numbers = DateTimeDefinitions.Numbers.ToImmutableDictionary(); DoubleNumbers = DateTimeDefinitions.DoubleNumbers.ToImmutableDictionary(); WrittenDecades = DateTimeDefinitions.WrittenDecades.ToImmutableDictionary(); SpecialDecadeCases = DateTimeDefinitions.SpecialDecadeCases.ToImmutableDictionary(); CardinalExtractor = Number.Italian.CardinalExtractor.GetInstance(); IntegerExtractor = Number.Italian.IntegerExtractor.GetInstance(); OrdinalExtractor = Number.Italian.OrdinalExtractor.GetInstance(); NumberParser = new BaseNumberParser(new ItalianNumberParserConfiguration()); DateExtractor = new BaseDateExtractor(new ItalianDateExtractorConfiguration(this)); TimeExtractor = new BaseTimeExtractor(new ItalianTimeExtractorConfiguration(this)); DateTimeExtractor = new BaseDateTimeExtractor(new ItalianDateTimeExtractorConfiguration(this)); DurationExtractor = new BaseDurationExtractor(new ItalianDurationExtractorConfiguration(this)); DatePeriodExtractor = new BaseDatePeriodExtractor(new ItalianDatePeriodExtractorConfiguration(this)); TimePeriodExtractor = new BaseTimePeriodExtractor(new ItalianTimePeriodExtractorConfiguration(this)); DateTimePeriodExtractor = new BaseDateTimePeriodExtractor(new ItalianDateTimePeriodExtractorConfiguration(this)); DateParser = new BaseDateParser(new ItalianDateParserConfiguration(this)); TimeParser = new BaseTimeParser(new ItalianTimeParserConfiguration(this)); DateTimeParser = new BaseDateTimeParser(new ItalianDateTimeParserConfiguration(this)); DurationParser = new BaseDurationParser(new ItalianDurationParserConfiguration(this)); DatePeriodParser = new BaseDatePeriodParser(new ItalianDatePeriodParserConfiguration(this)); TimePeriodParser = new BaseTimePeriodParser(new ItalianTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseDateTimePeriodParser(new ItalianDateTimePeriodParserConfiguration(this)); DateTimeAltParser = new BaseDateTimeAltParser(new ItalianDateTimeAltParserConfiguration(this)); }
public FrenchCommonDateTimeParserConfiguration(DateTimeOptions options) : base(options) { UtilityConfiguration = new FrenchDatetimeUtilityConfiguration(); UnitMap = DateTimeDefinitions.UnitMap.ToImmutableDictionary(); UnitValueMap = DateTimeDefinitions.UnitValueMap.ToImmutableDictionary(); SeasonMap = DateTimeDefinitions.SeasonMap.ToImmutableDictionary(); CardinalMap = DateTimeDefinitions.CardinalMap.ToImmutableDictionary(); DayOfWeek = DateTimeDefinitions.DayOfWeek.ToImmutableDictionary(); MonthOfYear = DateTimeDefinitions.MonthOfYear.ToImmutableDictionary(); Numbers = DateTimeDefinitions.Numbers.ToImmutableDictionary(); DoubleNumbers = DateTimeDefinitions.DoubleNumbers.ToImmutableDictionary(); WrittenDecades = DateTimeDefinitions.WrittenDecades.ToImmutableDictionary(); SpecialDecadeCases = DateTimeDefinitions.SpecialDecadeCases.ToImmutableDictionary(); CardinalExtractor = new CardinalExtractor(); IntegerExtractor = new IntegerExtractor(); OrdinalExtractor = new OrdinalExtractor(); NumberParser = new BaseNumberParser(new FrenchNumberParserConfiguration()); DateExtractor = new BaseDateExtractor(new FrenchDateExtractorConfiguration()); TimeExtractor = new BaseTimeExtractor(new FrenchTimeExtractorConfiguration()); DateTimeExtractor = new BaseDateTimeExtractor(new FrenchDateTimeExtractorConfiguration()); DurationExtractor = new BaseDurationExtractor(new FrenchDurationExtractorConfiguration()); DatePeriodExtractor = new BaseDatePeriodExtractor(new FrenchDatePeriodExtractorConfiguration()); TimePeriodExtractor = new BaseTimePeriodExtractor(new FrenchTimePeriodExtractorConfiguration()); DateTimePeriodExtractor = new BaseDateTimePeriodExtractor(new FrenchDateTimePeriodExtractorConfiguration()); // DurationParser should be assigned first, as DateParser would reference the DurationParser DurationParser = new BaseDurationParser(new FrenchDurationParserConfiguration(this)); DateParser = new BaseDateParser(new FrenchDateParserConfiguration(this)); TimeParser = new BaseTimeParser(new FrenchTimeParserConfiguration(this)); DateTimeParser = new BaseDateTimeParser(new FrenchDateTimeParserConfiguration(this)); DatePeriodParser = new BaseDatePeriodParser(new FrenchDatePeriodParserConfiguration(this)); TimePeriodParser = new BaseTimePeriodParser(new FrenchTimePeriodParserConfiguration(this)); DateTimePeriodParser = new BaseDateTimePeriodParser(new FrenchDateTimePeriodParserConfiguration(this)); DateTimeAltParser = new BaseDateTimeAltParser(new FrenchDateTimeAltParserConfiguration(this)); }
public DateTimeParseResult Parse(ExtractResult er, DateObject refDate) { var referenceTime = refDate; // handle cases like "三年半" var hasHalfSuffix = false; if (er.Text.EndsWith("半")) { er.Length -= 1; er.Text = er.Text.Substring(0, er.Text.Length - 1); hasHalfSuffix = true; } var parseResult = InternalParser.Parse(er); var unitResult = parseResult.Value as UnitValue; if (unitResult == null) { return(null); } var dtParseResult = new DateTimeResolutionResult(); var unitStr = unitResult.Unit; var numStr = unitResult.Number; if (hasHalfSuffix) { numStr = (double.Parse(numStr) + 0.5).ToString(CultureInfo.InvariantCulture); } dtParseResult.Timex = "P" + (BaseDurationParser.IsLessThanDay(unitStr) ? "T" : "") + numStr + unitStr[0]; dtParseResult.FutureValue = dtParseResult.PastValue = double.Parse(numStr) * UnitValueMap[unitStr]; dtParseResult.Success = true; if (dtParseResult.Success) { dtParseResult.FutureResolution = new Dictionary <string, string> { { TimeTypeConstants.DURATION, dtParseResult.FutureValue.ToString() } }; dtParseResult.PastResolution = new Dictionary <string, string> { { TimeTypeConstants.DURATION, dtParseResult.PastValue.ToString() } }; } var ret = new DateTimeParseResult { Text = er.Text, Start = er.Start, Length = er.Length, Type = er.Type, Data = er.Data, Value = dtParseResult, TimexStr = dtParseResult.Timex, ResolutionStr = "" }; return(ret); }
public DateTimeParseResult Parse(ExtractResult er, DateObject refDate) { var referenceTime = refDate; var dateTimeParseResult = ParseMergedDuration(er.Text, referenceTime); if (!dateTimeParseResult.Success) { var parseResult = InternalParser.Parse(er); var unitResult = parseResult.Value as UnitValue; if (unitResult == null) { return(null); } var unitStr = unitResult.Unit; var numStr = unitResult.Number; dateTimeParseResult.Timex = TimexUtility.GenerateDurationTimex(double.Parse(numStr, CultureInfo.InvariantCulture), unitStr, BaseDurationParser.IsLessThanDay(unitStr)); dateTimeParseResult.FutureValue = dateTimeParseResult.PastValue = double.Parse(numStr, CultureInfo.InvariantCulture) * UnitValueMap[unitStr]; dateTimeParseResult.Success = true; } if (dateTimeParseResult.Success) { dateTimeParseResult.FutureResolution = new Dictionary <string, string> { { TimeTypeConstants.DURATION, dateTimeParseResult.FutureValue.ToString() }, }; dateTimeParseResult.PastResolution = new Dictionary <string, string> { { TimeTypeConstants.DURATION, dateTimeParseResult.PastValue.ToString() }, }; } var ret = new DateTimeParseResult { Text = er.Text, Start = er.Start, Length = er.Length, Type = er.Type, Data = er.Data, Value = dateTimeParseResult, TimexStr = dateTimeParseResult.Timex, ResolutionStr = string.Empty, }; return(ret); }