Интерактивное прототипирование и отладка грамматики
От: nikov США http://www.linkedin.com/in/nikov
Дата: 08.07.15 18:04
Оценка:
У меня иногда встаёт задача интерактивного прототипирования и отладки некоторой грамматики. У меня есть некоторое представление о том, какие правила должны быть в грамматике (возможно, неполное или где-то ошибочное), и мне хочется написать какие-то тесты, немедленно увидеть получившееся AST или ошибки разбора, что-то изменить в грамматике или тестах, немедленно увидеть, что изменилось в AST и т.д.

Обычно для этой цели я использую язык M и старую бета-версию Intellipad 2009 года, которые были частью ныне почившего майкрософтовского проекта Oslo. В целом, это удовлетворяет моим требованиям, хотя там отсутствуют многие удобства, которые бы мне хотелось иметь: автодополнение(и в редакторе грамматики, и в редакторе разбираемого текста), навигация к декларации правила, поиск мест использования правила, автоматическое переименование, возможность определить правила для цветной подстветки разбираемого кода (хотя бы синие ключевые слова и зеленые комментарии), фолдинг исходного кода и AST. Сообщения об ошибках разбора также оставляют желать лучшего: хотя они сообщают, в каком месте появилась ошибка (и подчёркивают его красным), и там даже есть некоторое автоматическое восстановление после ошибок, они не сообщают, например, какие токены были бы допустимыми в данном месте.

Вот как это выглядит:



Возможно ли (легко ли) реализовать такое приложение на основе Nitra? Можно ли устранить те недостатки, о которых я писал выше?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.