- [x] Исправить порядок записи чтения параметров функции (см. тесты/тест.хуя)
- [x] Реализовать возврат значений из процедур (см. тесты/тест.хуя)
- [x] Реализовать ./примеры/06-рейлиб.хуя
- [x] Синтаксис линковки библиотек
- [x] Поддержка «вещ32» для ./примеры/06-рейлиб.хуя
- [x] Исправить тест_вещественных_чисел() (см. тесты/тест.хуя)
- [x] Реализовать тест_вещественных_чисел() для кодогенерации эльфа
- [x] Приоритет бинопов
- [x] Добавить отскакивание от стенок в ./примеры/06-рейлиб.хуя
- [x] Вещественные литералы
- [x] Инструкция останова
  - Правда, кодогенерации без неё и так хорошо. Возможно она будет полезна только для констатного исполнения.
- [x] Кастомизируемый размер стека для интерпретации
- [x] Индексировать массивы круглыми скобками
  - Так мы 100% избавляемся от переключения раскладки для набора квадратных скобок.
  - Плюс такой же синтаксис имеет Ada.
- [x] Оба вида инструкций вызова функций должны подчищать за собой аргументы.
  - В данный момент так делает только вызов внешней процедуры, что создает кучу проблем для компилятора.
  - Скомпилировать такую процедуру не сложно, а вот интерпретация усложняется.
  - А может тогда в теле функции сбрасывать элементы? Не получится, у нас там адрес возврата лежит.
  - Походу надо снова рассматривать идею второго стека.
  - Реализовал второй стек. Проблема иррелевантна.
- [x] Строки и срезы как временные объекты.
- [x] Рекурсия
- [x] Присваивание со сложными левосторонними выражениями
- [x] Структуры
- [x] Локальные переменные
- [x] Инициализация локальных переменных
- [x] Локальные массивы
- [x] Локальные константы
- [x] Циклы «для»
- [x] Объявление переменных в цикле «для»
- [x] Исправить сегфолт при выделении локальной переменной в цикле «для»
- [x] Вложенное индексирование
- [x] Отрицательные числа (Знаковые целые)
- [x] Типизированные литералы
- [x] Game of Life
- [x] Rule110
- [x] Типизированные константы
  - [x] Через интерпретацию ПП
- [x] Многострочные комментарии
  - [x] Не забудь избавиться от прямого доступа к символам, чтобы случайно не крашнуться.
- [x] «для» должен неявно объявлять переменную
- [x] Операторы сравнения
- [x] Экранирование «ёлочек»
- [x] Switch-case-ы в каком-виде виде («вилка»)
- [x] Шестнадцатеричные литералы (для примера рейлиб)
- [x] Выражение::ЦепочкаВызовов
- [x] Массивы в полях структур
- [x] Все бинопы для всех релевантных типов в правой части
  - [x] НеРавно/Равно
  - [x] Меньше/Больше/МеньшеРавно/БольшеРавно
  - [x] и/или, добавить «либо» (исключающее или)
  - [x] сложение/вычитание/умножение/деление/остаток
  - [x] конвертация между типами («как»)
  - [x] знаковые битовые смещения
- [x] унарный минус
- [x] Все бинопы для всех релевантных типов в левой части
- [x] Интерпретация всех недостающих инструкций
- [x] Кодогенерация всех недостающих инструкций
- [x] сделать!(вызываемое.лок(), "Индексация срезов из сложных выражений");
- [x] сделать!(&имя.лок, "Индексация срезов в левой части присваивания");
- [ ] Доработать интринсики
  - [ ] «ввод»
  - [ ] «срез»
  - [ ] «сисвызов»
  - [ ] «печать»
  - [ ] Создание новых срезов по адресу и типу элементов
  - [ ] ...
- [ ] Поддержка всех релевантных примитивных параметров для внешних процедур
- [ ] Печать вещественных чисел
- [ ] Что дальше?

- Низкий приоритет
  - [ ] Небесполезные операции сравнения срезов.
  - [ ] Аналоги операций выхода из циклов (continue, break)
  - [ ] Провека, что все потоки исполнения возвращают значение.
  - [ ] Выравнивание структур как в Си
  - [ ] WebAssembly
  - [ ] Не прерывай компиляцию из-за одной лишь ошибки.
  - [ ] Перечисления в каком-нибудь виде
  - [ ] Динамическая память в каком-нибудь виде
  - [ ] Передача переменных по ссылке
  - [ ] Индексирование строковых литералов (печать(«Q»(0) как нат8));
  - [ ] Индексирование строковых констант (конст ы := «Q»; печать(ы(0) как нат8););
    - Это пока невозможно в силу того, что строковый литерал выделяется в памяти временной машины и теряется
  - [ ] Переменная «результат» как в Паскале.
    - Если есть передача аргументов по-ссылке, то оно особо и не нужно.
