public void MarcosWork()
        {
            var parser = new ParserBuilder()
                         .AddMacro("MYMACRO", "val1", "val2")
                         .CreateParser("MYMACRO some literal text");
            var goodMatch = parser.Match("val1 some literal text");

            Assert.IsNotNull(goodMatch);
            Assert.IsEmpty(goodMatch);
            Assert.IsNotNull(parser.Match("val2 some literal text"));
            Assert.IsNull(parser.Match("val3 some literal text"));
            Assert.IsNull(parser.Match("val1 some bad text"));
        }
        public void LiteralsWork()
        {
            IParser parser = new ParserBuilder().CreateParser("someLiteralText");
            var     match  = parser.Match("someLiteralText");

            Assert.IsNotNull(match);
            Assert.IsEmpty(match);
        }
        public void NamedGroupsWork()
        {
            IParser parser      = new ParserBuilder().CreateParser("CAPTURE then literal");
            var     lookupTable = parser.Match("some text then literal");

            Assert.AreEqual("some text", lookupTable !["CAPTURE"]);