Стабильный релиз | 2.31.0 / 2 марта 2021 г. ( 2021-03-02 ) [1] |
---|---|
Репозиторий | github.com/eclipse-xtext/xtext |
Тип | Программная структура |
Лицензия | Публичная лицензия Eclipse |
Веб-сайт | xtext.org |
Xtext — это программная среда с открытым исходным кодом для разработки языков программирования и предметно-ориентированных языков (DSL). В отличие от стандартных генераторов парсеров , Xtext генерирует не только парсер , но и модель классов для абстрактного синтаксического дерева , а также предоставляет полнофункциональную, настраиваемую IDE на базе Eclipse. [2]
Xtext разрабатывается в проекте Eclipse как часть проекта Eclipse Modeling Framework . Он лицензирован в соответствии с Eclipse Public License . [3]
Первая версия Xtext была опубликована в 2006 году в проекте openArchitectureWare. Последняя версия, выпущенная в рамках проекта oAW, была 4.3. С начала 2008 года Xtext разрабатывается в Eclipse в рамках проекта Eclipse Modeling Project. [4]
Присоединившись к ежегодному одновременному выпуску Eclipse , Xtext выпустил версии 0.7.0 (июнь 2009), 1.0 (июнь 2010), 2.0 (июнь 2011), 2.3 (июнь 2012), 2.5 (декабрь 2013), 2.6 (май 2014) и 2.7 (сентябрь 2014). Фреймворк в основном разрабатывается немецкой компанией Itemis. [5]
Чтобы указать язык, разработчик должен написать грамматику на языке грамматики Xtext. Эта грамматика описывает, как модель Ecore выводится из текстовой нотации. Из этого определения генератор кода выводит парсер ANTLR и классы для объектной модели. Оба могут использоваться независимо от Eclipse.
Xtext включает в себя функции, которые хорошо интегрируются с IDE на базе Eclipse:
Языки Xtext и IDE обладают высокой степенью настройки, поскольку языковая инфраструктура и IDE связаны с использованием внедрения зависимостей и Google Guice . Компоненты по умолчанию можно легко заменить, привязав вместо них настроенные.
Начиная с версии 2.0, Xtext облегчает разработку доменно-специфичных языков для виртуальной машины Java , ссылаясь на артефакты Java и компилируя их с тесной интеграцией в Java Development Toolkit Eclipse. Библиотека языков выражений многократного использования обеспечивает богатое поведение в DSL.
Генератор кода, написанный в Xtend , может быть подключен к любому языку. Для языков JVM достаточно сопоставить концепции DSL с артефактами Java, чтобы получить целостную интеграцию Java. Также доступен альтернативный интерпретатор . [ требуется пояснение ]
На момент написания этой статьи [ когда? ] на домашней странице Xtext было перечислено около 40 коммерческих и некоммерческих проектов из нескольких прикладных областей, использующих Xtext. [6]