Проект, над которым я работаю, имеет собственный формат файла с предопределенной структурой.Структура действительно проста и универсальна (и я не могу ее изменить): она состоит из (вложенных) команд и типизированных свойств.
Используя эту структуру, было создано несколько диалектов.Диалекты являются «экземпляром» общей грамматики и определяют имя и значение команд и ожидаемые свойства.
Я создал модель с EMF для одного из этих диалектов, и я хотел бы повторноXText позволяет легко создать профессиональный текстовый редактор и иметь возможность читать и писать мою модель в правильном формате.
Теперь у меня есть выбор.С одной стороны, я могу напрямую ориентироваться на диалект и смешивать в одной и той же грамматике понятия из пользовательской файловой структуры и понятия из диалекта.С другой стороны, я могу создать грамматику, описывающую файловую структуру, и поверх этого я могу описать свой диалект.
Каким путем я должен следовать?Я думаю, что последний является лучшим, но как я могу создать грамматику, описывающую эти два слоя?