2014-12-27 1 views
3

У меня есть следующие XText грамматику:XText: Не удается разрешить ссылки

grammar dsl.miniproject.Question2.EclipsePluginLanguage with org.eclipse.xtext.common.Terminals 

import "platform:/resource/Question2/model/EclipsePluginModel.ecore" 
import "http://www.eclipse.org/emf/2002/Ecore" as ecore 

Plugin: 
    {Plugin} 
    'Plugin' Name = EntityName 
    '{'    
     (documentation = Documentation)? 
     (functions += Functionality)* 
     manifest = Manifest 
    '}' 
; 

Documentation: 
    {Documentation} 
    'description =' documentation = STRING 
; 

Manifest: 
    {Manifest} 
    'manifest' 
    '{' 
     (dependencies += Dependency)* 
     (extensionPoints += ExtensionPoint)*  
     (extensions += Extension)* 
    '}' 
; 

Functionality: 
    {Functionality} 
    'function' Name = EntityName ';' 
; 

Dependency: 
    {Dependency} 
    Name = EntityName '=>' depends = [Plugin|EntityName] 
; 

Extension: 
    {Extension} 
    Name = EntityName '->' extends = [ExtensionPoint|EntityName] 
; 

ExtensionPoint: 
    {ExtensionPoint} 
    'ExtensionPoint' Name = EntityName 
    '{' 
     'ref' functions += [Functionality|EntityName] ';'  
    '}' 
; 

EntityName: 
    ID ('.' ID)* 
; 

Однако при написании экс образец сценария:

Plugin x{ 
     description = "test" 

     function f; 
     function f2; 

     manifest{ 

      dep1 => x 

      ExtensionPoint ep.ep1{ 
       ref f; 
      } 

      ext1 -> ep.ep1 
     }  
} 

Я получаю следующее сообщение об ошибке:

Couldn't resolve reference to Plugin 'x'. Couldn't resolve reference to Functionality 'f'. ... etc

Это моя первая попытка xtext, и я не могу понять, что я делаю неправильно

Заранее благодарим за помощь!

ответ

2

привет вы должны назвать вам атрибут элементов имени name и НЕ Name , и вы должны убедиться, что (фактические) квалифицированные имена в объеме на месте вы используете это соответствует правилу терминала или типа данных вы используете (в вашем случае EntityName) в качестве альтернативы вы можете изменить IQualifiedNameProvider

+0

Вы, сэр, спасатели жизни. Большое спасибо!! – Jonny

 Смежные вопросы

  • Нет связанных вопросов^_^