Esempio n. 1
0
    def write_table_to_space(self, inter, show_cursor=True):
        active_color = QtGui.QColor()
        active_color.setRgb(255, 127, 248)
        active_brush = QtGui.QBrush(active_color)

        common_color = QtGui.QColor()
        common_color.setRgb(255, 255, 255)
        common_brush = QtGui.QBrush(common_color)

        ui_cursor = Space.get_cursor(inter, utils.multiply_delta(inter, -1))
        self.clear()
        for i in range(len(inter.program)):
            if i >= self.rowCount():
                self.insertRow(i)
            self.setRowHeight(i, 20)
            for j in range(len(inter.program[i])):
                if j >= self.columnCount():
                    self.insertColumn(j)
                self.setColumnWidth(j, 20)
                item = QtWidgets.QTableWidgetItem()
                if not self.item(i, j):
                    self.setItem(i, j, item)
                self.item(i, j).setText(inter.program[i][j])
                self.item(i, j).setFlags(QtCore.Qt.NoItemFlags)
                self.item(i, j).setFlags(QtCore.Qt.ItemIsEnabled)
                if ui_cursor == (j, i) and show_cursor:
                    self.item(i, j).setBackground(active_brush)
                else:
                    self.item(i, j).setBackground(common_brush)
Esempio n. 2
0
def close_file(inter):
    file_num = u.pop_with_zero(inter)
    if not (len(inter.files) > file_num >= 0):
        inter.delta = u.multiply_delta(inter, -1)
        return

    file = inter.files.pop(file_num)
    file['file'].close()
Esempio n. 3
0
def print_line(inter):
    file_num = u.pop_with_zero(inter)
    line = u.collect_string_from_stack(inter)

    try:
        inter.files[file_num]['file'].write(f'{line}\n')
        inter.stack.append(file_num)
    except Exception:
        inter.delta = u.multiply_delta(inter, -1)
Esempio n. 4
0
def read_line(inter):
    file_num = u.pop_with_zero(inter)

    try:
        line = inter.files[file_num]['file'].readline()
        inter.stack.append(file_num)
        u.write_string_to_stack(inter, line)
    except Exception:
        inter.delta = u.multiply_delta(inter, -1)
Esempio n. 5
0
def get_location(inter):
    file_num = u.pop_with_zero(inter)

    try:
        pos = inter.files[file_num]['file'].tell()
        inter.stack.append(file_num)
        inter.stack.append(pos)
    except Exception:
        inter.delta = u.multiply_delta(inter, -1)
Esempio n. 6
0
def write_file(inter):
    count = u.pop_with_zero(inter)
    file_num = u.pop_with_zero(inter)

    if file_num >= len(inter.files) or file_num < 0:
        inter.delta = u.multiply_delta(inter, -1)
        return

    x, y = inter.files[file_num]['buffer_start']
    line_len = max(count, inter.files[file_num]['buffer_end'] - x)

    string = u.get_line_from_space(inter, x, y, line_len)
    try:
        inter.files[file_num]['file'].write(string)
        inter.files[file_num]['buffer_start'][0] = x + line_len
    except Exception:
        u.write_line_to_space(inter, string, x, y)
        inter.delta = u.multiply_delta(inter, -1)
Esempio n. 7
0
def seek_file(inter):
    pos = u.pop_with_zero(inter)
    m = u.pop_with_zero(inter)
    file_num = u.pop_with_zero(inter)

    try:
        inter.files[file_num]['file'].seek(pos, m)
        inter.stack.append(file_num)
    except Exception:
        inter.delta = u.multiply_delta(inter, -1)
Esempio n. 8
0
def open_file(inter):
    filename = u.collect_string_from_stack(inter)
    m = u.pop_with_zero(inter)
    y = u.pop_with_zero(inter)
    x = u.pop_with_zero(inter)

    try:
        mode = open_file_mode[m]
    except IndexError:
        inter.delta = u.multiply_delta(inter, -1)
        return

    try:
        opened_file = open(filename, mode, encoding='utf-8')
        inter.files.append({'file': opened_file,
                            'buffer_start': [x, y],
                            'buffer_end': x})
        inter.stack.append(len(inter.files) - 1)
    except OSError:
        inter.delta = u.multiply_delta(inter, -1)
Esempio n. 9
0
def read_file(inter):
    count = u.pop_with_zero(inter)
    file_num = u.pop_with_zero(inter)

    try:
        string = inter.files[file_num]['file'].read(count)
        _, y = inter.files[file_num]['buffer_start']
        x = inter.files[file_num]['buffer_end']
        u.write_line_to_space(inter, string, x, y, strip=False)
        inter.files[file_num]['buffer_end'] = len(string)
        inter.stack.append(file_num)
        for line in inter.program:
            print(''.join(line))
    except Exception:
        inter.delta = u.multiply_delta(inter, -1)
Esempio n. 10
0
def delete_file(inter):
    filename = u.collect_string_from_stack(inter)
    try:
        os.remove(filename)
    except OSError:
        inter.delta = u.multiply_delta(inter, -1)
Esempio n. 11
0
def jump(inter):
    a = u.pop_with_zero(inter)
    u.go_delta(inter, u.multiply_delta(inter, a))
Esempio n. 12
0
def reflect(inter):
    inter.delta = u.multiply_delta(inter, -1)