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"); }