Nitra — это языковый "верстак" (workbench). С помощью Nitra можно создавать полноценные языки программирования получая при этом автоматическую поддержку IDE. Nitra поддерживает модульность и расширяемость (в плоть до расширения правил во время парсинга). Nitra — это не просто парсер (хотя наш парсер один из лучших в мире, если не лучший), Nitra — это еще и поддержка типизации (семантического анализа). Nitra предоставляет возможности для: описания областей видимости, описания деклараций языка, автоматического (на базе деклараций) описания и создания символов, связывания имен (с символами), разрешения имен и вывода типов. Nitra решает основные проблемы связанные с разработкой языков программирования. Например, берет на себя управление порядок вычисления при типизации, хранит полную информацию о тексте (местоположение каждого элемена) и т.п.

Ниже приведен перечень статей в порядке в котором их стоит читать. Некоторые материалы устарели. Постараюсь их обновлять.

[Nitra] Introduction — общие сведения о Nitra.

[Nitra] Пример простого языка вычисляющего выражения — минимальный язык способный продемонстрировать большинство фич Nitra. В этом примере используется маппинг, области видимости, связывание имен, зависимые свойства.

Реализация языка программирования Mini C на Nitra
Автор(ы): Чистяков Владислав Юрьевич
Дата: 07.03.2017
В статье описывается реализация компилятора языка программирования Mini C на базе Nitra (под платформу .Net). Mini C — это упрощенная версия языка C. В статье описывается все этапы реализации языка от создания парсера, до генерации MSIL. И сам язык и данное описание созданы для демонстрации того как разрабатывать языки программирования на Nitra. Nitra — это средство разрабоки ЯП (language workbench). Nitra можно использовать для создания языков программирования с расширяемыми синтаксисом и семантикой, а так же языков предметной области (DSL).
— пример полностью реализованного мини-языка (парсинг, типизация, генерация кода). Репозиторий проекта Mini C.

Описание языка описания расширяемых парсеров «Nitra»
Автор(ы):


Описание подсистемы сбора информации «Nitra»
Автор(ы):


Обработка результата парсинга
Автор(ы): Чистяков Владислав Юрьевич
Дата: 18.11.2015
В статье рассматриваются различные способы обработки результатов парсинга в Nitra.
Данная статья интересна если есть желание вручную обрабатывать результаты парсинга (без применения подсистемы типизации).

[Nitra] Calculator example — очень простой пример, демонстрирующий разбор операторов с приоритетом и обработку дерева разбора без создания AST и прочих элементов типизации.
Автор: VladD2    Оценить