Example #1
0
        public void TestAttrBool()
        {
            Parser parser = Hammer.AttrBool(Hammer.Many1(Hammer.Choice(Hammer.Ch('a'),
                                                                       Hammer.Ch('b'))),
                                            (HPredicate)(x => {
                object[] elems = (object[])x;
                return(elems.Length > 1 && (char)elems[0] == (char)elems[1]);
            }));

            CheckParseOK(parser, "aa", new object[] { 'a', 'a' });
            CheckParseOK(parser, "bb", new object[] { 'b', 'b' });
            CheckParseFail(parser, "ab");
        }