'Can only write in existing fields (address < self._current_size)'

def writeFieldsIn(self, old_field, address, new_fields):

    total_size = sum((field.size for field in new_fields))
    if (old_field.size < total_size):
        raise ParserError(('Unable    to    write    fields    at    address    %s    (too    big)!' % address))
    replace = []
    size = (address - old_field.address)
    assert (0 <= size)
    if (0 < size):
        padding = createPaddingField(self, size)
        padding._address = old_field.address
        replace.append(padding)
    for field in new_fields:
        field._address = address
        address += field.size
        replace.append(field)
    size = ((old_field.address + old_field.size) - address)
    assert (0 <= size)
    if (0 < size):
        padding = createPaddingField(self, size)
        padding._address = address
        replace.append(padding)
    self.replaceField(old_field.name, replace)
