Тучка опять умерла, так что можно тут свой блогек продолжить. Что я сделал за последнее время? Добавил частично поддержку списковых данных как тут: func () main { u8 var = 3 + 2; s32[3][2] a = [[5,var,3],[54,12,65]]; s32[2][3] b = [[65,12],[var + 5,var],[3,23]]; s32[1][6] c; c[:][:] = a[:][:] + b[:][:]; }; Теперь можно получше взаимодействовать с массивами. Но всё-равно этого мало, на Лайси до сих пор нельзя кодить! Мне надо написать инфраструктуру в виде кучи библиотек. Думаю, я буду потихоньку выпиливать из стандарта некоторые ещё не реализованные вещи. Такие как switch, @call, сложные имена энамов, doc-комментарии. И препроцессинг надо немного переделать. Думаю, изменить @ifdef, @iftype и подобные на просто @if (условия) и там будут поддерживать операторы всякие и препроцессинговые функции def(NAME) (ifdef) и прочее. Препроцессинг это моё слабое Лайси-место. У меня до сих пор, вроде, @ifdef не работает и всё это. А ещё код самого компилятор оставляет желать лучшего. Недавно я ввёл такую вещь как контекст типа в Лайси и это довольно такое неудобное правило. Мне придётся как-то переписать часть функций. Правило заключается в том, что в зависимости от типа соседнего операнда или типа аргумента вызываемой функции операнд может быть рассмотрен с другой точки зрения. Например, если список приравнивается структуре (в C и C++ это будет через {.x = 5,.y = 8...}), то будет так [.x : 5,.y : 8]. А в случае энама можно его внутреннее имя переслать. Например, @define mode as enum {READONLY; WRITEONLY} и в случае если контекстный тип это такой энам, то можно написать READONLY или WRITEONLY. Иначе нельзя и будет ошибка. А если вам нужны именно их численные значения, то можно написать mode.READONLY. Да и API следует лучше скомпоновать. Не удивлюсь, если сейчас посмотрю и увижу несколько почти одинаковых функций.