public Rule TableCell() { return Sequence( NodeSequence( push(new TableCellNode()), TestNot(Sp(), Optional(':'), Sp(), OneOrMore('-'), Sp(), Optional(':'), Sp(), FirstOf('|', Newline())), Optional(Sp(), TestNot('|'), NotNewline()), OneOrMore( TestNot('|'), TestNot(Sp(), Newline()), Inline(), addAsChild(), Optional(Sp(), Test('|'), Test(Newline())) ) ), ZeroOrMore('|'), ((TableCellNode) peek()).setColSpan(Math.max(1, matchLength())) ); }