예제 #1
0
def subobject_operation_working():
    """Проверка работы операции нахождения элемента по индексу"""
    real_string_segment_size = minimal_data_length["string_segment"]
    minimal_data_length["string_segment"] = 4
    real_list_segment_size = minimal_data_length["list_segment"]
    minimal_data_length["list_segment"] = 4
    setting.initialisation("program.yovc")
    str_num = add.string_segment()
    put.string_segment(str_num, "char_list",
                       "Эта строка не влезет в маленький сегмент")
    list_num = add.list_segment()
    put.list_segment(list_num, "link_list", [i for i in range(40)])
    view.tape()
    print(get.string_segment(str_num))
    view.string_segment(str_num)
    print(get.list_segment(list_num))
    view.list_segment(list_num)
    index = append.data_segment("number", 25)
    objects.Sub_object(["link", str_num], ["link", index])
    kind, element_link = pull.memory_stack()
    display.entity(element_link)
    objects.Sub_object(["link", list_num], ["link", index])
    kind, element_link = pull.memory_stack()
    display.entity(element_link)
    minimal_data_length["string_segment"] = real_string_segment_size
    minimal_data_length["list_segment"] = real_list_segment_size
예제 #2
0
def dictionary_item_writing():
    """Проверка на запись элемента списка"""
    args = [128, 64, 256]
    write.entity(0, "dictionary_item", args)
    display.entity(0)
    change.dictionary_item_part(0, "key", 48)
    display.entity(0)
예제 #3
0
def entity_writing():
    """Проверка на запись объектов"""
    entities = [[0, "none", None], [0, "link", 1000], [0, "command", 15],
                [0, "logic", 1], [0, "number", 255], [0, "chars", "something"]]
    for entity in entities:
        write.entity(*entity)
        display.cell(0)
        display.cell(1)
        display.entity(0)
예제 #4
0
def segment_body(num):
    data_begin, data_end = data_range(num)
    top = find.attribute(num, "first_empty_cell")
    index = data_begin
    obj_type, obj_value = read.entity(index)
    while index < top:
        print(index, end=" ")
        display.entity(index)
        index += memory_control.determine_object_size(obj_type, obj_value)
        if index < data_end:
            obj_type, obj_value = read.entity(index)
    print()
예제 #5
0
def entity(num):
    kind, value = get.entity(num)
    if kind in seg_types:
        if kind in seg_visible_types:
            print(value)
        else:
            raise LowerCommandError(f"Неотображаемый тип сегмента {kind}")
    else:
        return display.entity(num)
예제 #6
0
def memory_stack_operations_working():
    """Проверка работы операций стека памяти"""
    setting.initialisation("program.yovc")
    value = 248
    stack.Push(["number", value])
    display.entity(438)
    stack.Pop(["link", 438])
    display.entity(438)
    print()
    number_1 = 97
    number_2 = -65
    num_1 = append.data_segment("number", number_1)
    num_2 = append.data_segment("number", number_2)
    math.Add(["link", num_1], ["link", num_2])
    display.entity(440)
    stack.Pop(["link", 440])
    display.entity(440)
예제 #7
0
def attribute(num, name):
    index, kind = find_attribute(num, name)
    display.entity(index)
예제 #8
0
def array_writing():
    """Проверка на запись массива"""
    write.entity(0, "array", [5, 10, 15, 20, 25])
    display.entity(0)
예제 #9
0
def entity_link(arg):
    display.entity(arg)