public JapaneseNumberRangeParserConfiguration(CultureInfo ci)
        {
            CultureInfo = ci;

            NumberExtractor   = new NumberExtractor();
            OrdinalExtractor  = new OrdinalExtractor();
            NumberParser      = new BaseCJKNumberParser(new JapaneseNumberParserConfiguration());
            MoreOrEqual       = new Regex(NumbersDefinitions.MoreOrEqual, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            LessOrEqual       = new Regex(NumbersDefinitions.LessOrEqual, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            MoreOrEqualSuffix = new Regex(NumbersDefinitions.MoreOrEqualSuffix, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            LessOrEqualSuffix = new Regex(NumbersDefinitions.LessOrEqualSuffix, RegexOptions.IgnoreCase | RegexOptions.Singleline);
        }
        public ChineseNumberRangeParserConfiguration(CultureInfo ci)
        {
            CultureInfo = ci;

            NumberExtractor     = new NumberExtractor();
            OrdinalExtractor    = new OrdinalExtractor();
            NumberParser        = new BaseCJKNumberParser(new ChineseNumberParserConfiguration());
            MoreOrEqual         = new Regex(NumbersDefinitions.MoreOrEqual, RegexOptions.Singleline);
            LessOrEqual         = new Regex(NumbersDefinitions.LessOrEqual, RegexOptions.Singleline);
            MoreOrEqualSuffix   = new Regex(NumbersDefinitions.MoreOrEqualSuffix, RegexOptions.Singleline);
            LessOrEqualSuffix   = new Regex(NumbersDefinitions.LessOrEqualSuffix, RegexOptions.Singleline);
            MoreOrEqualSeparate = new Regex(NumbersDefinitions.OneNumberRangeMoreSeparateRegex, RegexOptions.Singleline);
            LessOrEqualSeparate = new Regex(NumbersDefinitions.OneNumberRangeLessSeparateRegex, RegexOptions.Singleline);
        }
        public ChineseNumberRangeParserConfiguration(INumberOptionsConfiguration config)
        {
            CultureInfo = new CultureInfo(config.Culture);

            NumberExtractor  = new NumberExtractor();
            OrdinalExtractor = new OrdinalExtractor();
            NumberParser     = new BaseCJKNumberParser(new ChineseNumberParserConfiguration(config));

            MoreOrEqual         = new Regex(NumbersDefinitions.MoreOrEqual, RegexFlags);
            LessOrEqual         = new Regex(NumbersDefinitions.LessOrEqual, RegexFlags);
            MoreOrEqualSuffix   = new Regex(NumbersDefinitions.MoreOrEqualSuffix, RegexFlags);
            LessOrEqualSuffix   = new Regex(NumbersDefinitions.LessOrEqualSuffix, RegexFlags);
            MoreOrEqualSeparate = new Regex(NumbersDefinitions.OneNumberRangeMoreSeparateRegex, RegexFlags);
            LessOrEqualSeparate = new Regex(NumbersDefinitions.OneNumberRangeLessSeparateRegex, RegexFlags);
        }
Beispiel #4
0
        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 KoreanNumberRangeParserConfiguration(INumberOptionsConfiguration config)
        {
            CultureInfo = new CultureInfo(config.Culture);

            var numConfig = new BaseNumberOptionsConfiguration(config);

            NumberExtractor  = new NumberExtractor(numConfig);
            OrdinalExtractor = Japanese.OrdinalExtractor.GetInstance(numConfig);
            NumberParser     = new BaseCJKNumberParser(new KoreanNumberParserConfiguration(config));

            MoreOrEqual         = new Regex(NumbersDefinitions.MoreOrEqual, RegexFlags);
            LessOrEqual         = new Regex(NumbersDefinitions.LessOrEqual, RegexFlags);
            MoreOrEqualSuffix   = new Regex(NumbersDefinitions.MoreOrEqualSuffix, RegexFlags);
            LessOrEqualSuffix   = new Regex(NumbersDefinitions.LessOrEqualSuffix, RegexFlags);
            MoreOrEqualSeparate = new Regex(NumbersDefinitions.OneNumberRangeMoreSeparateRegex, RegexFlags);
            LessOrEqualSeparate = new Regex(NumbersDefinitions.OneNumberRangeLessSeparateRegex, RegexFlags);
        }