I have the following Xtext grammar:
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)*
;
However when writing a sample script ex:
Plugin x{
description = "test"
function f;
function f2;
manifest{
dep1 => x
ExtensionPoint ep.ep1{
ref f;
}
ext1 -> ep.ep1
}
}
I get the following error:
Couldn't resolve reference to Plugin 'x'. Couldn't resolve reference to Functionality 'f'. ... etc
This is my first attempt at xtext and I cannot figure out what I'm doing wrong
Thanks in advance for any help!!
hi you should name you elements name attribute name and NOT Name
and you have to make sure the (actual) qualified names in the scope at the place you use it match the terminal or datatype rule you use (in your case EntityName) alternatively you can change IQualifiedNameProvider
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With