Java Types in Xtext DSL [message #557947] |
Thu, 09 September 2010 14:43 |
Dennis Vaughn Messages: 13 Registered: July 2009 |
Junior Member |
|
|
I am trying to create a DSL and I need to refer to java types in the DSL. The best I can tell I have followed the instructions on how to reference java types but no luck so far. Here is what a simplified version of my DSL looks like
grammar com.cisco.step.arti.cli.CliDsl with org.eclipse.xtext.common.Terminals
import "http://www.eclipse.org/xtext/common/JavaVMTypes" as types
generate cliDsl "http://www.cisco.com/step/arti/cli/CliDsl"
Descriptor:
(type+=Type)*;
QUALIFIED_NAME:
ID ('.' ID)*;
Type:
'type' name=ID 'mapped-to' javaType=[types::JvmType|QUALIFIED_NAME];
My mwe2 Generator block looks like the following:
component = Generator {
pathRtProject = runtimeProject
pathUiProject = "${runtimeProject}.ui"
projectNameRt = projectName
projectNameUi = "${projectName}.ui"
language = {
uri = grammarURI
fileExtensions = file.extensions
// Java API to access grammar elements (required by several other fragments)
fragment = grammarAccess.GrammarAccessFragment {}
// generates Java API for the generated EPackages
fragment = ecore.EcoreGeneratorFragment {
referencedGenModels = "classpath:/model/JavaVMTypes.genmodel"
}
// the serialization component
fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
// a custom ResourceFactory for use with EMF
fragment = resourceFactory.ResourceFactoryFragment {
fileExtensions = file.extensions
}
// The antlr parser generator fragment.
fragment = parser.antlr.XtextAntlrGeneratorFragment {
// options = {
// backtrack = true
// }
}
// java-based API for validation
fragment = validation.JavaValidatorFragment {
composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
// registerForImportedPackages = true
}
// scoping and exporting API
// fragment = scoping.ImportURIScopingFragment {}
// fragment = exporting.SimpleNamesFragment {}
// scoping and exporting API
fragment = scoping.ImportNamespacesScopingFragment {}
fragment = exporting.QualifiedNamesFragment {}
fragment = builder.BuilderIntegrationFragment {}
fragment = types.TypesGeneratorFragment {}
// formatter API
fragment = formatting.FormatterFragment {}
// labeling API
fragment = labeling.LabelProviderFragment {}
// outline API
fragment = outline.TransformerFragment {}
fragment = outline.OutlineNodeAdapterFactoryFragment {}
fragment = outline.QuickOutlineFragment {}
// quickfix API
fragment = quickfix.QuickfixProviderFragment {}
// content assist API
fragment = contentAssist.JavaBasedContentAssistFragment {}
// generates a more lightweight Antlr parser and lexer tailored for content assist
fragment = parser.antlr.XtextAntlrUiGeneratorFragment {}
fragment = org.eclipse.xtext.generator.validation.CheckFragment {}
}
The output from the generate looks OK
0 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Registering platform uri '/Users/devaughn/projects/arti-core'
1032 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning /Users/devaughn/projects/arti-core/com.cisco.step.arti.cli/../com.cisco.step.arti.cli/src-gen
1051 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning /Users/devaughn/projects/arti-core/com.cisco.step.arti.cli/../com.cisco.step.arti.cli.ui/src-gen
1219 [main] INFO ipse.xtext.generator.LanguageConfig - generating infrastructure for com.cisco.step.arti.cli.CliDsl with fragments : ImplicitRuntimeFragment, ImplicitUiFragment, GrammarAccessFragment, EcoreGeneratorFragment, ParseTreeConstructorFragment, ResourceFactoryFragment, XtextAntlrGeneratorFragment, JavaValidatorFragment, ImportNamespacesScopingFragment, QualifiedNamesFragment, BuilderIntegrationFragment, TypesGeneratorFragment, FormatterFragment, LabelProviderFragment, TransformerFragment, OutlineNodeAdapterFactoryFragment, QuickOutlineFragment, QuickfixProviderFragment, JavaBasedContentAssistFragment, XtextAntlrUiGeneratorFragment, CheckFragment
10571 [main] INFO or.validation.JavaValidatorFragment - executing generate for org.eclipse.xtext.generator.validation.JavaValidatorFragment
14435 [main] DEBUG enerator.CompositeGeneratorFragment - replacing binding : org.eclipse.xtext.scoping.IGlobalScopeProvider -> org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider (contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment)
14435 [main] DEBUG enerator.CompositeGeneratorFragment - with new binding : org.eclipse.xtext.scoping.IGlobalScopeProvider -> org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider (contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment)
14435 [main] DEBUG enerator.CompositeGeneratorFragment - replacing binding : java.lang.ClassLoader -> getClass().getClassLoader() (contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment)
14435 [main] DEBUG enerator.CompositeGeneratorFragment - with new binding : java.lang.ClassLoader -> AbstractCliDslRuntimeModule.class.getClassLoader() (contributed by org.eclipse.xtext.generator.validation.CheckFragment)
14474 [main] DEBUG enerator.CompositeGeneratorFragment - replacing binding : org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher -> org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher (contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment)
14475 [main] DEBUG enerator.CompositeGeneratorFragment - with new binding : org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher -> org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher (contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment)
14588 [main] INFO .emf.mwe2.runtime.workflow.Workflow - Done.
When I launch and eclipse runtime to try out the editor it appears that everything works until i get to the part of giving it a java class
type Date mapped-to java.util.Date
Here I get the error Quote: | Couldn't resolve reference to JvmType 'java.util.Date'.
|
Any help would be greatly appreciated!
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03971 seconds