Могу ли я использовать грамматику ANTLR для плагинов, подсвечивающих код IntelliJ IDEA?

Я использую грамматику ANTLR g4 для разбора моего DSL.
Я хотел бы создать плагин для поддержки подсветки кода и завершения кода в IntelliJ IDEA.
Насколько я вижу, IDEA использует форматы bnf и flex для парсинга.
Есть ли возможность использовать грамматику ANTL? Или конвертировать грамматику ANTLR в bnf и flex?

1 ответ

Обновлено 22 декабря 2020 г.

Вопрос № 1. Можно ли напрямую использовать грамматику ANTLR для создания плагина JetBrains для языковой поддержки?

Да, в какой-то степени. Похоже поможет библиотека antlr4-intellij-adaptor . У меня нет личного опыта. Он описывает себя как «библиотеку для поддержки использования грамматик ANTLRv4 для пользовательских языков при разработке подключаемых модулей IDE на основе IntelliJ».

Просто для пояснения, другой инструмент, плагин ANTLRv4 для IntelliJ , предназначен для помощи в разработке грамматик ANTLRv4. Он не поддерживает использование грамматики ANTLRv4 для создания лексера и синтаксического анализатора для использования редакторами JetBrains (например, CLion, GoLand, IntelliJ, PyCharm, RubyMine и т. д.).


Вопрос № 2. Можно ли преобразовать грамматику ANTLR в некоторые другие формы (например, BNF и Flex), которые можно использовать для создания плагина JetBrains для языковой поддержки?

Да, но это большая тема. Я хотел бы направить вас к этому сообщению о переполнении стека: существуют ли инструменты для преобразования между ANTLR и другими формами BNF?


Связанные инструменты : вы можете найти Grammar Kit от Jetbrains полезным, это «Плагин IntelliJ IDEA для разработчиков языковых плагинов».

Рекомендуемая документация : Кроме того, JetBrains предоставляет обширную документацию о том, как расширить языковую поддержку для своих редакторов.

Другие вопросы по тегам