Я совершенно новичок в XText.
Когда вы определяете грамматику с помощью XText, вы можете указать вторую грамматику и использовать определения, которые она объявляет так, как сказано здесь :
grammar org.eclipse.xtext.example.Domainmodel with org.eclipse.xtext.common.Terminals
В Xtext каждая грамматика имеет уникальное имя, которое, подобно общедоступным классам Java, должно отражать расположение файла в пути к классам Java.В нашем случае файл грамматики находится в /org/eclipse/xtext/example/Domainmodel.xtext, поэтому имя грамматики org.eclipse.xtext.example.Domainmodel.Вторая часть этого оператора (с org.eclipse.xtext.common.Terminals) утверждает, что эта грамматика повторно использует и переопределяет правила из указанной грамматики.Org.eclipse.xtext.common.Terminals - это грамматика библиотеки, поставляемая с Xtext и предопределяющая наиболее распространенные терминальные правила
Я разрабатываю плагин XText и хочу определить свои собственные терминальные символыв отдельном файле.Является ли это возможным?Как я могу это сделать?
Я попытался создать новый файл Xtext и добавить его после org.eclipse.xtext.common.Terminals и добавить только шахту, но оба решения не компилируются.
Спасибо.
РЕДАКТИРОВАТЬ
Если я использую два файла xtext в одном проекте, один для грамматики и один для терминалов грамматики, я получаю следующееисключение при запуске файла mwe2:
java.lang.IllegalStateException: проблема при анализе 'classpath: /org/xvr/language/sh/ShaderDsl.xtext': [XtextLinkingDiagnostic: null: 1 Не удалось разрешитьссылка на грамматику 'org.xvr.language.sh.ShTerminal'., XtextLinkingDiagnostic: null: 9 Не удалось разрешить ссылку на AbstractRule 'ID'., TransformationDiagnostic: null: 14 Невозможно создать тип данных INVARIANT (ErrorCode: NoSuchTypeostDavisionable)null: 17 Невозможно создать тип данных PRECISION (ErrorCode: NoSuchTypeAvailable), TransformationDiagnostic: null: 19 Невозможно создать тип данных HIGH_PRECISION (ErrorCode: NoSuchTypeAvailable), TransformationDiagnostic: null: 20 Невозможно создать тип данных MEDIUM_PRECISION (ErrorCode: NoSuchTypeAvailable), TransformationDiagnostic: null: 21 Невозможно создать тип данных LOW_PRECISION (ErrorCode: NoSuchType 10 * 282 * 1027) 255*
грамматика
grammar org.xvr.language.sh.ShaderDsl with org.xvr.language.sh.ShTerminal //org.eclipse.xtext.common.Terminals
generate shaderDsl "http://www.xvr.org/language/sh/ShaderDsl"
....
и терминалы грамматики
grammar org.xvr.language.sh.ShTerminals with org.eclipse.xtext.common.Terminals
generate shTerminals "http://www.xvr.org/language/sh/ShTerminals"
terminal Test : 'test';