Я в процессе написания редактора кода для пользовательского языка. Мы используем ANTLR для lexer и parser и CodeMirror для рамки редактора (работает в браузере).Редактор кода с использованием ANTLR
Я могу сделать некоторые основные вещи, такие как синтаксическая раскраска ключевых слов, а также обеспечение рудиментарного завершения кода.
Что я нахожу, так это то, что пользователь часто находится в середине редактирования чего-либо, поэтому анализатор ANTLR не очень полезен, так как текущий входной поток не полностью анализируется (и часто приводит ANTLR к неправильному пути из-за неполный входной поток).
Поэтому я использую поток токенов, чтобы выяснить, что происходит, и попытаться предоставить контекстно-зависимую помощь.
Мне интересно, может ли кто-нибудь помочь в использовании ANTLR в качестве части редактора кода. Я на правильном пути, используя поток токенов вместо дерева синтаксического анализа?
Можно ли использовать ANTLR API для выполнения таких задач, как поиск маркеров для определения общего контекста того, что пользователь в настоящее время редактирует?
Извините, если это что-то неясно. Просто начните работу над этим проектом. :-)
Спасибо за любую помощь.
Я считаю, что автор ANTLR давно дал понять, что он не предназначен для этого сценария. Вам, вероятно, нужно написать ручную структуру компилятора, чтобы справиться с этим, как и любая другая среда IDE. –
См. Http://stackoverflow.com/questions/19738439/is-it-feasible-to-use-antlr-for-source-code-completion –
Хорошо, спасибо за отзыв и ссылку! – RedTailedHawk