def remove_node(i):
    offsets = files[i['file']]['offsets']
    raw = files[i['file']]['raw']
    node = i['node']
    line = (node.lineno - 1)
    col = node.colno
    start = (offsets[line] + col)
    end = start
    if isinstance(node, (ArrayNode, FunctionNode)):
        end = (offsets[(node.end_lineno - 1)] + node.end_colno)
    elif (isinstance(node, AssignmentNode) and (i['action'] == 'rm')):
        if isinstance(node.value, (ArrayNode, FunctionNode)):
            remove_node({'file': i['file'], 'str': '', 'node': node.value, 'action': 'rm'})
            raw = files[i['file']]['raw']
        while (raw[end] != '='):
            end += 1
        end += 1
        while (raw[end] in [' ', '\n', '\t']):
            end += 1
    files[i['file']]['raw'] = ((raw[:start] + i['str']) + raw[end:])
def remove_node(i):
    offsets = files[i['file']]['offsets']
    raw = files[i['file']]['raw']
    node = i['node']
    line = (node.lineno - 1)
    col = node.colno
    start = (offsets[line] + col)
    end = start
    if isinstance(node, (ArrayNode, FunctionNode)):
        end = (offsets[(node.end_lineno - 1)] + node.end_colno)
    elif (isinstance(node, AssignmentNode) and (i['action'] == 'rm')):
        if isinstance(node.value, (ArrayNode, FunctionNode)):
            remove_node({'file': i['file'], 'str': , 'node': node.value, 'action': 'rm'})
            raw = files[i['file']]['raw']
        while (raw[end] != '='):
            end += 1
        end += 1
        while (raw[end] in [' ', '\n', '\t']):
            end += 1
    files[i['file']]['raw'] = ((raw[:start] + i['str']) + raw[end:])