В связи с существенным продвижением в Тривиль компиляторе на Тривиле, стала явной необходимость (или хотя бы полезность) добавления нескольких конструкций языка и они были добавлены:
- выбор по типу
- цикл по вектору (foreach), потенциально расширяемый до арифметического и цикла по итератору
- выходные (in out) параметры
Не описываю здесь, см. в описании языка. Смотреть надо в ветке bootstep8, она еще не слита в мастер.
В библиотеках существенно доработаны строки, полностью переделан форматный вывод, в том числе сделан другой синтаксис форматной строки. Я долго изучал Go и Rust форматы, и сделал, как мне кажется, хороший и логичный синтаксис (и без необходимости переключаться на латиницу). Реализовано еще не все, но мне стало гораздо удобнее. Краткое описание в исходнике. Как всегда, критика и предложения приветствуются.
Компилятор на Тривиле очень существенно продвинулся (написано почти 4.5 тысячи строк):
- полностью выложен AST (АСД)
- почти полностью написан парсер — осталось доделать только разбор литералов, а для этого дописать еще несколько функций в библиотеки. Хотел доделать сегодня, но бензин закончился.
Сравнение с прошлым замером:
- 2023.05.14
- compiler: 10369 lines in 56 files (Go)
- runtime: 1312 lines (C),
- библиотеки: 10/1230 lines (Тривиль)
- компилятор: 948 lines (Тривиль)
- 2023.06.04
- compiler: 11128 lines in 57 files (Go) + 800 (новые конструкции и правка ошибок)
- runtime: 1530 lines (C), +200
- библиотеки: 10/1818 lines (Тривиль) +600
- компилятор: 4352 lines (Тривиль) +3500