2014-12-27 4 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)* 
; 

샘플 스크립트 예 쓰기 :

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

: 나는 다음과 같은 오류가

Plugin x{ 
     description = "test" 

     function f; 
     function f2; 

     manifest{ 

      dep1 => x 

      ExtensionPoint ep.ep1{ 
       ref f; 
      } 

      ext1 -> ep.ep1 
     }  
} 

을 이것은 xtext에서의 첫 번째 시도이고 내가 뭘 잘못하고 있는지 알 수 없다.

도움을 주셔서 미리 감사드립니다 !!

답변

2

안녕하세요 당신은 당신 요소의 이름 속성 name 및 NOT Name 이름을 지정해야하고 당신은 당신이 당신의 경우에 (당신이 사용하는 터미널 또는 데이터 형식 규칙과 일치하는 사용 장소의 범위에서 (실제) 자격을 갖춘 이름을 확인해야 EntityName) 번갈아 바꿀 수도 있습니다. IQualifiedNameProvider

+0

당신은 생명의 은인입니다. 고마워요 !! – Jonny