Здравствуйте, VladD2, Вы писали:
VD>Nitra предоставляет инфраструктуру и набор DSL-ей для создания языка. Большая часть деталей реализации (составляющих основную сложность создания современных тулов для языка) Nitra берет на себя. Разработчику языка нужно предоставить только: VD>1. Описание грамматики (в виде правил заключенных в синтаксические модули). VD>2. Описать AST языка (или группы похожих языков). VD>3. Описать отображение PT на AST. VD>4. Описать вычисление на AST в виде определения набора зависимых свойств и некоторых вычислений на их основе. VD>6. Описать файл определения языка (где задается общая информация о языке). VD>7. Скормить все это компилятору Nitra и получить на выходе готовую интеграцию для своего языка программирования. VD>8. (если надо) Создать генератор исполнимого кода с использованием других подсистем Nitra.
Где в этой картине присходят такие вещи, как overload resolution, type inference и типизация лямбд? И в каком виде разработчик должен описывать правила для них?
Можно ли приспособить эту систему к языкам вроде C++?