Генератор редакторов для грамматик ANTLR?

#editor #antlr #antlr3 #xtext

#редактор #antlr #antlr3 #xtext

Вопрос:

Я использую ANTLR для создания нового языка программирования общего назначения, и я им вполне доволен.

В связи с тем, что я хотел бы предоставить хорошие инструменты для упрощения разработки программ, написанных на моем языке, я начинаю задумываться о реализации редактора для этого языка с помощью соответствующего плагина Eclipse.

Есть ли какие-либо инструменты / проект, которые позволяют вам иметь полноценный редактор (с подсветкой синтаксиса, завершением кода и т.д.). Я знаю, что Xtext позволяет вам делать это автоматически, как насчет ANTLR?

Я видел это письмо в списке рассылки ANTLR, но в нем нет ответов

Комментарии:

1. Xtext использует ANTLR под капотом

2. Я знаю это. Я спрашиваю, существует ли какой-либо инструмент, который, начиная с грамматики ANTLR, позволяет вам сгенерировать плагин редактора для eclipse (например, что такое doina Xtext). Существует ли что-нибудь подобное для ANTLR или нет?

Ответ №1:

Я бы попробовал Xtext. Он не предоставляет всех возможностей Antlr на уровне грамматики, но фреймворк предлагает отличные инфраструктурные компоненты, такие как тесная интеграция с компонентами моделирования Eclipse и пользовательским интерфейсом Eclipse.

Комментарии:

1. большое спасибо. Я обязательно это сделаю. Кажется, что моя грамматика не так сложна, поэтому перевести ее в Xtext будет не так уж и сложно. Однако, похоже, что не существует автоматической поддержки для выполнения одной и той же работы, начиная с грамматики ANTLR.

2. Вряд ли возможно автоматически преобразовать грамматику Antlr в Xtext. Грамматика Xtext содержит больше информации, такой как сопоставление конкретных синтаксических элементов с типобезопасными абстрактными синтаксическими элементами. Они не могут быть извлечены / выведены из простой грамматики Antlr. Однако вставка вашей грамматики во вновь созданную грамматику Xtext и решение автоматически выявленных проблем обычно не слишком болезненны.

Ответ №2:

Monticore, кажется, почти делает то, на что вы (и я) надеемся. В их примере диаграммы последовательности сообщений есть редактор Eclipse, это пример проекта Eclipse. В настоящее время я изучаю это. Monticore основан на antlr, и грамматика выглядит очень похоже на ANTLRs.