fn parse_comma_separated_inner<const N: usize>(
    parser: &mut Parser<'_>,
    parse: impl FnMut(&mut Parser<'_>) -> ParseResult<()>,
    end: [TokenKind; N],
    items_parsed: &mut usize,
    commas_parsed: &mut usize
) -> ParseResult<()>