'Special handling for opcodes that take a variable number
of arguments -- we add a new entry for each in TABLE_R.'

def customize(self, customize):

    for (k, v) in customize.items():
        if TABLE_R.has_key(k):
            continue
        op = k[:k.rfind('_')]
        if (op == 'CALL_FUNCTION'):
            TABLE_R[k] = ('%c(%P)', 0, (1, (-1), ',    ', 100))
        elif (op in ('CALL_FUNCTION_VAR', 'CALL_FUNCTION_VAR_KW', 'CALL_FUNCTION_KW')):
            if (v == 0):
                str = '%c(%C'
                p2 = (0, 0, None)
            else:
                str = '%c(%C,    '
                p2 = (1, (-2), ',    ')
            if (op == 'CALL_FUNCTION_VAR'):
                str += '*%c)'
                entry = (str, 0, p2, (-2))
            elif (op == 'CALL_FUNCTION_KW'):
                str += '**%c)'
                entry = (str, 0, p2, (-2))
            else:
                str += '*%c,    **%c)'
                if p2[2]:
                    p2 = (1, (-3), ',    ')
                entry = (str, 0, p2, (-3), (-2))
            TABLE_R[k] = entry
