コード例 #1
0
ファイル: CharSet.cs プロジェクト: omyworld/Piglet
        public CharSet Union(CharSet charRange)
        {
            var c = new CharSet();

            foreach (var range in ranges)
            {
                c.AddRange(range.From, range.To);
            }

            foreach (var range in charRange.ranges)
            {
                c.AddRange(range.From, range.To);
            }
            return(c);
        }
コード例 #2
0
        private static CharSet CharRange(char start, char end, bool ignorecase)
        {
            CharSet range = new CharSet();

            if (ignorecase)
            {
                range.AddRange(char.ToLower(start), char.ToLower(end));
                range.AddRange(char.ToUpper(start), char.ToUpper(end));
            }
            else
            {
                range.AddRange(start, end);
            }

            return(range);
        }
コード例 #3
0
        private static CharSet CharRange(char start, char end)
        {
            var charRange = new CharSet();

            charRange.AddRange(start, end);
            return(charRange);
        }
コード例 #4
0
ファイル: TestCharRange.cs プロジェクト: pheiberg/Piglet
        public void TestExceptLeftClip()
        {
            var r = new CharSet();
            r.AddRange('a', 'f');

            var r2 = new CharSet();
            r2.AddRange('c', 'f');
            r = r.Except(r2);
            Assert.IsTrue(r.ContainsChar('b'));
            Assert.IsFalse(r.ContainsChar('c'));
        }
コード例 #5
0
ファイル: CharSet.cs プロジェクト: omyworld/Piglet
        public CharSet Except(CharSet except)
        {
            var cs = new CharSet();

            foreach (var range in ranges)
            {
                foreach (var clippedRange in ClipRange(range, except.ranges))
                {
                    cs.AddRange(clippedRange.From, clippedRange.To);
                }
            }
            return(cs);
        }
コード例 #6
0
ファイル: TestCharRange.cs プロジェクト: pheiberg/Piglet
        public void TestDistinguishRangesWithSingleChar()
        {
            var r1 = new CharSet();
            r1.AddRange('a', 'k');
            var r2 = new CharSet();
            r2.Add('a');
            r2.Add('k');

            r1.DistinguishRanges(r2);
            r2.DistinguishRanges(r1);

            r1.DistinguishRanges(r2);
            r2.DistinguishRanges(r1);

            Assert.IsFalse(r1.DistinguishRanges(r2));
            Assert.IsFalse(r2.DistinguishRanges(r1));
        }
コード例 #7
0
ファイル: TestCharRange.cs プロジェクト: pheiberg/Piglet
        public void TestDistinguishRanges()
        {
            var r1 = new CharSet();
            r1.AddRange('a', 'k');
            var r2 = new CharSet();
            r2.AddRange('g', 'z');

            r1.DistinguishRanges(r2);
            r2.DistinguishRanges(r1);

            Assert.AreEqual(2, r1.Ranges.Count());
            Assert.AreEqual(2, r2.Ranges.Count());

            r1.DistinguishRanges(r2);
            r2.DistinguishRanges(r1);

            Assert.AreEqual(2, r1.Ranges.Count());
            Assert.AreEqual(2, r2.Ranges.Count());
        }
コード例 #8
0
ファイル: RegExLexer.cs プロジェクト: campadrenalin/Piglet
 private static CharSet CharRange(char start, char end)
 {
     var charRange = new CharSet();
     charRange.AddRange(start, end);
     return charRange;
 }
コード例 #9
0
ファイル: CharSet.cs プロジェクト: campadrenalin/Piglet
        public CharSet Union(CharSet charRange)
        {
            var c = new CharSet();
            foreach (var range in ranges)
            {
                c.AddRange(range.From, range.To);
            }

            foreach (var range in charRange.ranges)
            {
                c.AddRange(range.From, range.To);
            }
            return c;
        }
コード例 #10
0
ファイル: CharSet.cs プロジェクト: campadrenalin/Piglet
        public CharSet Except(CharSet except)
        {
            var cs = new CharSet();

            foreach (var range in ranges)
            {
                foreach (var clippedRange in ClipRange(range, except.ranges))
                {
                    cs.AddRange(clippedRange.From, clippedRange.To);
                }
            }
            return cs;
        }