public void IntBackrefMatch1() { var array = new int[] { 6, 5, 3, 6, 7, 4, 2, 3, 4, 5, 8 }; var pattern = Seq(AnyElement.WithId(0), Pred((n, groups) => n == groups[0].Elements[0] + 1)); var match = pattern.FindMatchesIn(array).ToList(); match.Count.ShouldBe(3); match[0].Elements.ShouldBe(new int[] { 6, 7 }); match[1].Elements.ShouldBe(new int[] { 2, 3 }); match[2].Elements.ShouldBe(new int[] { 4, 5 }); }
public override Verb CreateVerb(string[] tokens) { Color(position, length, Operators); var type = tokens[1]; var text = tokens[2]; switch (text.ToLower().Substring(1)) { case "s": text = STRING_SPACES; break; case "w": text = STRING_WORDS; break; case "d": text = STRING_DIGITS; break; case "p": text = STRING_PUNCT; break; case "a": text = STRING_LETTERS; break; case "t": text = STRING_TAB; break; case "rn": text = STRING_CRLF; break; case "r": text = STRING_CR; break; case "n": text = STRING_LF; break; case "u": text = STRING_UPPER; break; case "l": text = STRING_LOWER; break; case "v": text = STRING_VOWELS; break; case "uv": text = STRING_UVOWELS; break; case "lv": text = STRING_LVOWELS; break; case "uc": text = STRING_UCONSONANTS; break; case "lc": text = STRING_LCONSONANTS; break; case "q": text = STRING_QUOTES; break; default: return(null); } switch (type) { case "+": Element = new SpanElement(text); break; case "-": Element = new BreakElement(text); break; case "++": Element = new MSpanElement(text); break; case "--": Element = new MBreakElement(text); break; case "": Element = new AnyElement(text, 1); break; default: if (text.IsNumeric()) { Element = new AnyElement(text, text.ToInt()); } else { return(null); } break; } return(new NullOp()); }