thumbnail of a.png
thumbnail of a.png
a png
(48.62 KB, 740x864)
thumbnail of b.png
thumbnail of b.png
b png
(39.6 KB, 507x524)
Добавил пару поддержек в компилер, в особенности перегрузку функций и посыл аргументов в перемешанном порядке. Но я особо не проверял и работоспособность очень частичная.
Знаете, перегрузка функций и темпелйты это такая фигня! Ведь когда мы хотим вызвать функцию в си-подобном языке, мы на самом деле вызываем адрес. А название функции это просто константная переменная, которая содержит адрес самой функции/процедуры. А когда мы хотим вызвать несуществующую функцию, то есть либо создать её динамически (темплейт) или найти её настоящее название используя мнимное + аргументы, это уже что-то совершенно иное.
Из-за этого часть кода Иколайси сейчас в хаосе.
Но перегрузка функций необходима, чтобы, например, работала функция print. Ведь она будет вызывать функцию repr, которая перегружена для некоторых переменных некоторых библиотек, если автор библиотеки захочет.

Пока с max и min из liblaisi не разобрался. Чтобы начать нормально парсить, мне надо перевести Иколайси с pyparsing на прототип библиотеки dapa на питоне. Он уже более-менее готов, некоторые правила работают, но я всё ещё раздумываю какая архитектура там должна быть. Просто моя библиотека парсинга будет немало отличаться от pyparsing.
Тогда я смогу парсить препроцессинг не императивно, а декларативно, а вместе с ним разобраться со всякими эллипсисами.

Ещё я немного порезал стандарт Лайси, чтобы побыстрее выпустить первую работоспособную версию Иколайси и не заниматься неважными фичами.
Но что самое страшное, мне придётся в первой же работспособной версии научиться исполнять Лайси-код во время компиляции. Ну типа 5 равно 5 или не равно. Это нужно для некоторых типов. Например, в библиотеке math будет тип vec!N!, а у него настроен @assert, что если N == 0 (размер равен нулю), то будет ошибка.



 >>/8669/
Слышь, это для тебя компилятора нет, одна нога тут, другая там, сердце слоями валяется, а череп по швам распадается.