Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » TMF (Xtext) » language elements must have 'name' attribute?
language elements must have 'name' attribute? [message #720971] Wed, 31 August 2011 15:31 Go to next message
steven reinisch is currently offline steven reinischFriend
Messages: 33
Registered: July 2009
Member
hi,

consider this simple grammar:

grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals
import "http://www.eclipse.org/xtext/common/JavaVMTypes" as jvmTypes
generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"

Model:
	(types += Type)*
	(operations += Operation)*
;

Type:
	'type' clazz = [jvmTypes::JvmType | FQN]
;

Operation:
	'op' op = [jvmTypes::JvmOperation | FQN]
;

FQN: 
	ID ("." ID)*
; 


If a try to read all declared types from a model with this workflow:

Workflow {
   component = org.eclipse.xtext.mwe.Reader{
   path = "src/model"
		
   register = org.xtext.example.mydsl.MyDslStandaloneSetup{}
		
   load = {
      slot = "model"
      type = 'Type'
   }
}


I get this output:

0    WARN  SlotEntry          - Could not find any exported element of type 'Type' -> Slot 'model' is empty.
3    INFO  Workflow           - Done.


No instances of 'Type' can be found although declared in the model.
If a change the grammar and add a 'name' attribute to 'Type':

Type:
	'type' name=ID clazz = [jvmTypes::JvmType | FQN]
;


'Type' instances can be read.
The additional 'name' attribute adds noise to the language. In general, what do I need to do, to omit a 'name' attribute but still be able to read language elements from a model?

regards,

steven

[Updated on: Wed, 31 August 2011 15:32]

Report message to a moderator

Re: language elements must have 'name' attribute? [message #720993 is a reply to message #720971] Wed, 31 August 2011 16:16 Go to previous messageGo to next message
Christian Dietrich is currently offline Christian DietrichFriend
Messages: 14669
Registered: July 2009
Senior Member
Hi,

in your case: use a iqualifiednameprovider to give to model the name as its resources uri might be the fastest solution. or adapting org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy.createEObjectDescriptions(EObject, IAcceptor<IEObjectDescription>)

~Christian

~Christian


Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
Re: language elements must have 'name' attribute? [message #721082 is a reply to message #720993] Wed, 31 August 2011 20:42 Go to previous messageGo to next message
Sven Efftinge is currently offline Sven EfftingeFriend
Messages: 1823
Registered: July 2009
Senior Member
The following should work:

Workflow {
   component = org.eclipse.xtext.mwe.Reader{
   path = "src/model"
		
   register = org.xtext.example.mydsl.MyDslStandaloneSetup{}
		
   loadFromResourceSet = {
      slot = "model"
      type = 'Type'
   }
}
Re: language elements must have 'name' attribute? [message #721205 is a reply to message #721082] Thu, 01 September 2011 07:31 Go to previous messageGo to next message
steven reinisch is currently offline steven reinischFriend
Messages: 33
Registered: July 2009
Member
hi,

using

Workflow {
   component = org.eclipse.xtext.mwe.Reader{
   path = "src/model"
		
   register = org.xtext.example.mydsl.MyDslStandaloneSetup{}
		
   loadFromResourceSet = {
      slot = "model"
      type = 'Type'
   }
}


works. thanks sven.

using an own IQualifiedNameProvider works, too. thanks christian.

what am I exactly supposed to do if I want to addapt org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy.createEObjectDescriptions(EObject, IAcceptor<IEObjectDescription>)? The DefaultResourceDescriptionStrategy uses my registered IQualifiedNameProvider. So what else should be customized?

regards,

steven
Re: language elements must have 'name' attribute? [message #721213 is a reply to message #721205] Thu, 01 September 2011 07:44 Go to previous message
Christian Dietrich is currently offline Christian DietrichFriend
Messages: 14669
Registered: July 2009
Senior Member
Hi,

making the DefaultResourceDescriptionStrategy not using your IQualifiedNameProvider if it finds your root element Wink

~Christian


Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
Previous Topic:[Xtext] Usage of XBase and JavaVmTypes
Next Topic:Can I write my DSL grammar in several .xtext files?
Goto Forum:
  


Current Time: Fri Apr 26 19:29:40 GMT 2024

Powered by FUDForum. Page generated in 0.04806 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top