pub fn parse_with(
    input: &str,
    parse_fn: &dyn Fn(&mut Parser<'_>) -> ParseResult<()>
) -> SyntaxTree