[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[xtext-dev] Split grammar (multiple grammars) in 1 project?
|
Hello All,
In a researchproject (called CC/Castle) I have two related grammars. Or actually two file-extensions: *.Moat and *.Caste. The syntax that is allowed in a .Moat-file is a subset of that of that in a .Castle-file
I want to use xtext to build a eclipse editor (and compiler) for those two filetypes. But I run into problems. So some advice is welcome.
I assumed I should create 1 project-set (ccCastle, ccCastle.ui, ccCastle.generator; as made by the xtext(1.0.1) project-wizzard. And define both grammars there.
I started by the Moat one. And was able to build a editor for it. Great.
But adding the Castle one didn't worked, at least not as I expected. Writinge a Castle.xtext file is not a problem but getting it working in the project
I have a file starting with "grammar nl.softwareBeterMaken.ccCastle.Castle with nl.softwareBeterMaken.ccCastle.Moat" . This seams to work, as the rules that are "inherited" form the Moat.xtext file a recognized.
To compile it, I copied the file "GenerateMoat.mwe2" to "GenerateCastle.mwe2" and replaced the strings 'moat' to 'castle'. I was able to run that file as MWE2-workflow. But it doesn't really work. I tried several
alternatives (including importing the Moat.xtext file instead of the with statement). and all other things I could think of. Nothings seams to work ..
Some details/errors
* PROBLEM: AbstractCastleProposalProvider can not resolved to a type (CastleProposalProvider.java)
* PROBLEM: The import nl.softwareBeterMaken.ccCastle.ui.contentassist.AbstractCastleProposalProvider cannot be resolved (CastleProposalProvider.java)
* PROLEM: Package 'nl.softwareBeterMaken.ccCastle.castle.impl' does not exist in this plug-in (MANIFEST.MF)
* BUILD ERROR: org.eclipse.emf.mwe.core.WorkflowInterruptedException: The generated EPackage references an external EPackage, but 'referencedGenModels' hasn't been registered.
See below for full log.
Now I'm wondering: is it possible to define two extensions/grammars in 1 project? Or did I change so many items, Eclispe is out of sync (I see some java file appearing in src/ too. Is that correct, should they be in src-gen?) Are I mad?
Any advice is welcome. Please ask for details when needed.
Note: I'm not really a java-expert, nor a Eclipse-guru. But I assume I don't have to, to design a language.
I do no about languages, compilers parsers and stuff. I did use yacc/bison, C and Emacs in the past. I assume that would to to..
--Groetjes
ALbert Mietus
Send prive mail to: ALbert at ons-huis dot net
Don't send spam mail!
http://albert.mietus.nl http://SoftwareBeterMaken.nl
Console log
0 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Registering platform uri '/Users/albert/work/CC.Castle'
956 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning /Users/albert/work/CC.Castle/nl.softwareBeterMaken.ccCastle/../nl.softwareBeterMaken.ccCastle/src-gen
966 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning /Users/albert/work/CC.Castle/nl.softwareBeterMaken.ccCastle/../nl.softwareBeterMaken.ccCastle.ui/src-gen
1157 [main] INFO ipse.xtext.generator.LanguageConfig - generating infrastructure for nl.softwareBeterMaken.ccCastle.Castle with fragments : ImplicitRuntimeFragment, ImplicitUiFragment, GrammarAccessFragment, EcoreGeneratorFragment, ParseTreeConstructorFragment, ResourceFactoryFragment, XtextAntlrGeneratorFragment, JavaValidatorFragment, ImportNamespacesScopingFragment, QualifiedNamesFragment, BuilderIntegrationFragment, FormatterFragment, LabelProviderFragment, TransformerFragment, OutlineNodeAdapterFactoryFragment, QuickOutlineFragment, QuickfixProviderFragment, JavaBasedContentAssistFragment, XtextAntlrUiGeneratorFragment
org.eclipse.emf.mwe.core.WorkflowInterruptedException: The generated EPackage references an external EPackage, but 'referencedGenModels' hasn't been registered.
at org.eclipse.xtext.generator.ecore.EcoreGeneratorFragment.checkGenModelExists(EcoreGeneratorFragment.java:222)
at org.eclipse.xtext.generator.ecore.EcoreGeneratorFragment.proxifyExternalReferences(EcoreGeneratorFragment.java:214)
at org.eclipse.xtext.generator.ecore.EcoreGeneratorFragment.generate(EcoreGeneratorFragment.java:158)
at org.eclipse.xtext.generator.CompositeGeneratorFragment.generate(CompositeGeneratorFragment.java:81)
at org.eclipse.xtext.generator.LanguageConfig.generate(LanguageConfig.java:69)
at org.eclipse.xtext.generator.Generator.generate(Generator.java:296)
at org.eclipse.xtext.generator.Generator.invokeInternal(Generator.java:106)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:126)
at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.java:34)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:201)
at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.invoke(AbstractCompositeWorkflowComponent.java:31)
at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:19)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:80)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:52)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:74)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:35)
10715 [main] INFO or.validation.JavaValidatorFragment - executing generate for org.eclipse.xtext.generator.validation.JavaValidatorFragment
14802 [main] INFO .emf.mwe2.runtime.workflow.Workflow - Done.