Polymorphic Cross-Reference [message #1815236] |
Fri, 27 September 2019 13:46  |
Eclipse User |
|
|
|
Hi Xtext community,
I did a quick search in the forum but did not find sth. related, neither does the documentation give some hints about my problem.
Thus, I created a new thread:
So, my problem is that I need to build a language were I have polymorphic cross-references, i.e. the referenced targets are of different types...
See a minimal example below:
grammar no.hvl.past.Vylang with org.eclipse.xtext.common.Terminals
generate mylang "x.y.z/past/Mylang"
Model:
stuff+=Stuff*;
Stuff:
Apple |
Banana |
Basket
;
Apple:
'apple' name=ID
;
Banana:
'banana' name=ID
;
Basket:
'basket' name=ID '{'
(inside+=[Apple] | inside+=[Banana])*
'}'
;
Trying to generate the language fails with the following error message:
Quote:
0 [main] INFO text.xtext.generator.XtextGenerator - Initializing Xtext generator
11 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'org.eclipse.xtext.common.types.TypesPackage'
...
1172 [main] INFO text.xtext.generator.XtextGenerator - Generating x.y.z.Mylang
2065 [main] INFO nerator.ecore.EMFGeneratorFragment2 - Generating EMF model code
2104 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'x.y.z/Mylang' from 'platform:/resource/x.y.z.mylang/model/generated/Mylang.genmodel'
warning(200): ../x.y.z.mylang/src-gen/x/y/z/parser/antlr/internal/InternalMylang.g:296:3: Decision can match input such as "RULE_ID" using multiple alternatives: 1, 2
As a result, alternative(s) 2 were disabled for that input
error(201): ../x.y.z.mylang/src-gen/x/y/z/parser/antlr/internal/InternalMylang.g:296:3: The following alternatives can never be matched: 2
3126 [main] INFO text.xtext.generator.XtextGenerator - Generating common infrastructure
3161 [main] ERROR mf.mwe2.launch.runtime.Mwe2Launcher - Problems running workflow x.y.z.GenerateMylang:
[ERROR]: GeneratorException: (Element: -UNKNOWN-; Reported by: XtextGenerator)
org.eclipse.xtext.util.RuntimeIOException: java.io.FileNotFoundException: /Users/.../workspaces/modeling/x.y.z.mylang/../x.y.z.mylang/src-gen/x/y/z/parser/antlr/internal/InternalMylangLexer.java (No such file or directory)
at org.eclipse.xtext.generator.JavaIoFileSystemAccess.readTextFile(JavaIoFileSystemAccess.java:263)
at org.eclipse.xtext.generator.AbstractFileSystemAccess2.readTextFile(AbstractFileSystemAccess2.java:45)
at org.eclipse.xtext.xtext.generator.parser.antlr.AbstractAntlrGeneratorFragment2.improveCodeQuality(AbstractAntlrGeneratorFragment2.java:222)
at org.eclipse.xtext.xtext.generator.parser.antlr.AbstractAntlrGeneratorFragment2.splitParserAndLexerIfEnabled(AbstractAntlrGeneratorFragment2.java:213)
at org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2.generateProductionGrammar(XtextAntlrGeneratorFragment2.java:194)
at org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2.doGenerate(XtextAntlrGeneratorFragment2.java:156)
at org.eclipse.xtext.xtext.generator.parser.antlr.AbstractAntlrGeneratorFragment2.generate(AbstractAntlrGeneratorFragment2.java:109)
at org.eclipse.xtext.xtext.generator.CompositeGeneratorFragment2.generate(CompositeGeneratorFragment2.java:50)
at org.eclipse.xtext.xtext.generator.XtextGenerator.invokeInternal(XtextGenerator.java:230)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:132)
at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.java:34)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:212)
at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.invoke(AbstractCompositeWorkflowComponent.java:37)
at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:20)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:102)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:62)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:52)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:78)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:36)
Caused by: java.io.FileNotFoundException: /Users/.../workspaces/modeling/x.y.z.mylang/../x.y.z.mylang/src-gen/x/y/z/parser/antlr/internal/InternalMylangLexer.java (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at com.google.common.io.Files$FileByteSource.openStream(Files.java:130)
at com.google.common.io.Files$FileByteSource.read(Files.java:154)
at com.google.common.io.Files.toByteArray(Files.java:237)
at org.eclipse.xtext.generator.JavaIoFileSystemAccess.readTextFile(JavaIoFileSystemAccess.java:259)
... 18 more
However, the checker for the grammar editor does not report any errors...
It looks like that the underlying antlr has a problem with the alternatives?!
Can you help me with this problem? Or is it currently not possible to do such things in Xtext?
Many thanks in advance for your help!
Cheers,
Patrick
|
|
|
|
Powered by
FUDForum. Page generated in 0.24280 seconds