public void CharacterClassRepeatedTest(string input, bool expected)
        {
            string pattern = "^[a-b]+$";
            var    target  = NFA.OneOrMany(NFA.CharacterClass('a', 'b'));

            Test(input, expected, target, pattern);
        }
        public void CharacterClassInvertedTest(string input, bool expected)
        {
            string pattern = "^[^c-e]$";
            var    target  = NFA.CharacterClass('c', 'e', included: false);

            Test(input, expected, target, pattern);
        }
        public void CharacterClassTest(string input, bool expected)
        {
            string pattern = "^[a-z]$";
            var    target  = NFA.CharacterClass('a', 'z');

            Test(input, expected, target, pattern);
        }
 public void Visit(CharacterClass target)
 {
     stack.Push(NFA.CharacterClass(target));
 }