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."); }
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); }
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); }
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); }
public Backreference(CaptureGroup captureGroup) { this.captureGroup = captureGroup; }
public Backreference(CaptureGroup captureGroup) { this.captureGroup = captureGroup; }