Esempio n. 1
0
        public RegexFC(char ch, bool not, bool nullable, bool caseInsensitive)
        {
            _cc = new RegexCharClass();

            if (not)
            {
                if (ch > 0)
                {
                    _cc.AddRange('\0', (char)(ch - 1));
                }
                if (ch < 0xFFFF)
                {
                    _cc.AddRange((char)(ch + 1), '\uFFFF');
                }
            }
            else
            {
                _cc.AddRange(ch, ch);
            }

            CaseInsensitive = caseInsensitive;
            _nullable       = nullable;
        }
Esempio n. 2
0
            private static MatchState CreateFinal(char utf16RangeFirst, char utf16RangeLast, char?utf16Range2First = null, char?utf16Range2Last = null)
            {
                var charClass = new RegexCharClass();

                charClass.AddRange(utf16RangeFirst, utf16RangeLast);

                RegexCharClass charClass2 = null;

                if (utf16Range2First != null)
                {
                    Debug.Assert(utf16Range2Last != null);

                    charClass2 = new RegexCharClass();
                    charClass2.AddRange(utf16Range2First.Value, utf16Range2Last.Value);
                }

                return(new MatchState(charClass.ToStringClass(), charClass2?.ToStringClass(), (f, l) => null));
            }
Esempio n. 3
0
        internal RegexFC(char ch, bool not, bool nullable, bool caseInsensitive)
        {
            _cc = new RegexCharClass();

            if (not)
            {
                if (ch > 0)
                    _cc.AddRange('\0', (char)(ch - 1));
                if (ch < 0xFFFF)
                    _cc.AddRange((char)(ch + 1), '\uFFFF');
            }
            else
            {
                _cc.AddRange(ch, ch);
            }

            _caseInsensitive = caseInsensitive;
            _nullable = nullable;
        }