четверг, 11 февраля 2021 г.

Добавил Null и класс Pointer

 Придумал, как нужно реализовать сохранение объектов на стеке. Однако придётся теперь перелопатить весь код на предмет создания значений (объектов класса Value).

Дело в том, что у каждого создаваемого значения есть собственник - например, это может быть переменная, которая его хранит. И при создании объекта этого собственника нужно указывать. Тогда консоль сможет проверить, имеет ли объект ThisObject собственника, или он ничейный. Тогда его нужно будет сохранить на стеке.

Но для этого мне понадобились два объекта - объект Null и объект Stack. Поскольку объект Stack хранится в значении с классом StackPtr, то это уже второй указатель у меня, и следовательно я добавил для классов ValuePtr и StackPtr класс-предок - класс Pointer.

Также доделал функцию append, чтобы она работала корректно с указателями на массивы.

Объединение массивов на стеке

Добавил так же полезную функцию exec в класс консоли, чтобы можно было выполнять код интерпретатора. Тестовые примеры становятся сложнее, а загрузку кода из файла я пока не сделал. Зато работает консоль.

Комментариев нет: