Научился читать грамматику для bison, нашёл несколько новых для себя мелочей синтаксиса daScript.
1. assume
Аналог #define
в си, текстовая подстановка выражений. Со всеми ее минусами.
2. =>
Символ стрелки используется для записи коротких блоков/лямбд/безымянных функций:
А также для записи создания кортежей и таблиц:
3. auto для инициализации
auto при инициализации может выводить тип массивов (статических и динамических) и кортежей. Для структур — не может
4. сокращенная запись при обьявлении переменных ссылочных типов
5. if после выражений
Условие может стоять после определённых выражений (с опциональной веткой else):
6. aka
Синоним для имени переменной (как намного менее “злобный” вариант assume
)
7. expect
Ключевое слово для тестового фреймворка dasTest
Для запуска теста нужно вызвать скрипт dastest и передает в параметре test
имя скрипт для тестирования (или директории с группой скриптов):
8. named arguments
Функцию можно вызвать с явными именами аргументов.
Также можно скомбинировать первые неименованные аргументы, или вызов через пайп:
Больше примеров. Логика выбора — именованные аргументы применяются после неименованных и могут “перекрывать” их.
9. with
with позволяет внутри блока обращаться к полям структуры без явного указания её имени: