Проблема, когда я расширяю язык Xcore (и, следовательно, ECore)

Я пытаюсь расширить язык XCore. Для этого я создал новый проект XText в Eclipse Oxygen. Вот файл Xtext:

grammar org.xtext.example.mydsl.MyDsl with org.eclipse.emf.ecore.xcore.Xcore

generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"

Model:
    pack=XExpression
;

В файле MANIFEST я добавляю зависимость к Xcore v.1.5.

Наконец, в файле MWE2 я добавляю следующую строку:

component = XtextGenerator {
    [...]
    language = StandardLanguage {
        [...]
        referencedResource = "platform:/resource/org.eclipse.emf.ecore.xcore/model/Xcore.genmodel"
        [...]
   }
}

Тем не менее, я получаю следующую ошибку при выполнении рабочего процесса MWE2:

[ERROR]: GeneratorException: (Element: -UNKNOWN-; Reported by: XtextGenerator)  
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.IllegalValueException: Value 'org.eclipse.emf.ecore.impl.EReferenceImpl@5734eaa7 (name: null) (ordered: true, unique: true, lowerBound: 0, upperBound: 1) (changeable: true, volatile: false, transient: false, defaultValueLiteral: null, unsettable: false, derived: false) (containment: false, resolveProxies: true)' is not legal. (platform:/resource/org.xtext.example.mydsl/model/generated/MyDsl.genmodel, 10, 129)

Caused by: org.eclipse.emf.ecore.xmi.IllegalValueException: Value 'org.eclipse.emf.ecore.impl.EReferenceImpl@5734eaa7 (name: null) (ordered: true, unique: true, lowerBound: 0, upperBound: 1) (changeable: true, volatile: false, transient: false, defaultValueLiteral: null, unsettable: false, derived: false) (containment: false, resolveProxies: true)' is not legal. (platform:/resource/org.xtext.example.mydsl/model/generated/MyDsl.genmodel, 10, 129)

Caused by: java.lang.ClassCastException: The value of type 'org.eclipse.emf.ecore.impl.EClassImpl@5abca1e0 (name: EReference) (instanceClassName: null) (abstract: false, interface: false)' must be of type 'org.eclipse.emf.ecore.impl.EClassImpl@5ecba515 (name: EStructuralFeature) (instanceClassName: null) (abstract: true, interface: false)'

Что я проверил:

  • Я тестирую на другом компьютере, с другой установкой Eclipse, и проблема остается аналогичной
  • Если я заменю XCore на XBase в определении языка, у меня не будет проблемы
  • Добавление оператора импорта не решает проблему

0 ответов

Другие вопросы по тегам