def p_varargslist18(p):
    # def f(a=1, b=2, **kwargs): pass
    list_args, list_defaults = p[4]
    if len(list_args) != len(list_defaults):
        msg = 'non-default argument follows default argument.'
        tok = FakeToken(p.lexer.lexer, p.lineno(2))
        syntax_error(msg, tok)
    args = [p[1]] + list_args
    defaults = [p[3]] + list_defaults
    p[0] = ast.arguments(args=args, defaults=defaults, vararg=None, kwarg=p[7])
@Test: Generate a 4 group IPv4 address
dataset/ETHPy150Open nucleic/enaml/enaml/core/parser.py/p_varargslist18--crossover with--dataset/ETHPy150Open omaciel/fauxfactory/tests/test_ipaddress.py/TestIpaddr.test_gen_ipv4_2