StatementParser { static Parser<Statement> assertStatement(Parser<Expression> expr) { return Parsers.sequence( term("assert").next(expr), term(":").next(expr).optional().followedBy(term(";")), AssertStatement::new); }    }
@Test public void testAssertStatement() { Parser<Statement> parser = StatementParser.assertStatement(ExpressionParser.IDENTIFIER); TerminalParserTest.assertResult(parser, "assert foo;", AssertStatement.class, "assert foo;"); TerminalParserTest.assertResult(parser, "assert foo : bar;", AssertStatement.class, "assert foo : bar;"); }