Чтобы лучше всего проиллюстрировать мое требование, рассмотрите Java-подобный язык, который имеет классы и интерфейсы.Xtext: объединение различных корневых элементов с различными расширениями файлов
Этот язык требует, чтобы все классы находились в файле с расширением «.classdef», и все интерфейсы должны быть в файлах с расширением «.intdef». Корневой элемент грамматики в этих файлах будет другим.
В файле интерфейса он будет иметь корневой элемент Interface
, который может содержать экземпляры AbstractMethod
и StaticConstant
.
Грамматика корневой элемент для «.classdef» будет Class
и может содержать экземпляры MethodDeclaration
, MemberVariable
, StaticConstant
и т.д.
это возможно с XText иметь другой корень грамматики элемент в зависимости от того, что расширение файла из одного файла грамматики? Мне не имеет смысла разделять это на две грамматики, которые связаны между собой. Я не хочу использовать два плагина/комплекта eclipse для разных грамматик.
Вышеупомянутое является иллюстрацией. На самом деле у меня есть два разных типа файлов ... но два поддерживаемых набора элементов между двумя типами файлов почти полностью перекрываются.
Теоретически я мог бы реализовать его в валидаторе, чтобы вы не использовали пропущенный тип в одном из файлов. Но тогда мне также нужно будет отфильтровать предложение от помощника по контенту и т. Д. И т. Д.
Могу ли я сделать это с помощью одного проекта грамматике/Ui? Я могу понять, как это сделать с отдельными проектами, но я бы предпочел избежать этих накладных расходов! – jwa
Да, вы можете добавить несколько разделов языка в рабочий процесс, , но я не могу сказать, насколько это стабильно работает –