Beispiel #1
0
        static void ExecTest(Context context, IMatch testToken)
        {
            var token = new CaptureGroup(testToken);

            if(token.Match(context))
            {
                WriteInfo("Match success.");
                WriteLine(context);

                while (token.MatchNext(context))
                {
                    WriteInfo("MatchNext success.");
                    WriteLine(context);
                }
                WriteError("MatchNext failed.");
                WriteLine(context);
            }
            else
            {
                WriteError("Match failed.");
                WriteLine(context);
            }

            if (context.offset != 0)
                WriteError("Warning: Context offset not reset to 0.");
        }
Beispiel #2
0
        public static void test_backref()
        {
            var context = new Context("aaaaab");
            var chara = new Character('a');
            var lazya = new Lazy(chara, 1);
            var cap1 = new CaptureGroup(lazya, 1);
            var back1 = new Backreference(cap1);
            var list = new List(new IMatch[] { cap1, back1 });

            // ((a+?)\1)
            ExecTest(context, list);
        }
Beispiel #3
0
        public static void test_possessive()
        {
            var context = new Context("aaaab");
            var chara = new Character('a');
            var charb = new Character('b');
            var alt = new CaptureGroup(new Alternate(new IMatch[] { chara, charb }), 2);
            var posa = new Possessive(alt, 2);
            var list = new List(new IMatch[] { new CaptureGroup(posa, 1), alt });

            // (((a|b){2,}+)(a|b))
            ExecTest(context, list);
        }
Beispiel #4
0
        public static void test_greedyaltcapture()
        {
            var context = new Context("aaaaa");
            var chara = new Character('a');
            var list2a = new List(new IMatch[] { chara, chara });

            var grp1 = new CaptureGroup(chara, 1);
            var grp2 = new CaptureGroup(list2a, 2);
            var alt = new Alternate(new IMatch[] { grp1, grp2 });
            var greedy = new Greedy(alt, 1, 2);

            // ((a)|(aa)){1,2}
            ExecTest(context, greedy);
        }
Beispiel #5
0
 public Backreference(CaptureGroup captureGroup)
 {
     this.captureGroup = captureGroup;
 }
Beispiel #6
0
 public Backreference(CaptureGroup captureGroup)
 {
     this.captureGroup = captureGroup;
 }