Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » TMF (Xtext) » Creating two xtext grammar files within one project(To make the grammar more clear and understandable)
Creating two xtext grammar files within one project [message #1799653] Wed, 12 December 2018 05:35 Go to next message
P J is currently offline P JFriend
Messages: 64
Registered: October 2018
Member
Hi,
I'm developing a DSL using Xtext and I need to separate the grammar definitions into different xtext files in the same project so that it is easy to handle, then import the necessary file when required. Is it possible to do so?
Can anyone kindly help me implement this?
Regards.
Re: Creating two xtext grammar files within one project [message #1799654 is a reply to message #1799653] Wed, 12 December 2018 05:40 Go to previous messageGo to next message
Christian Dietrich is currently online Christian DietrichFriend
Messages: 14667
Registered: July 2009
Senior Member
Simply put multiple language sections to the workflow

Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
Re: Creating two xtext grammar files within one project [message #1799657 is a reply to message #1799654] Wed, 12 December 2018 05:55 Go to previous messageGo to next message
P J is currently offline P JFriend
Messages: 64
Registered: October 2018
Member
Hi Christian,
Thanks for the reply. I did add it to the Mwe2 workflow as I have seen instructions by you in another question in this forum. I also create a file named OfflineExpression.xtext. But when I did and tried to build the workflow, I get the below error in the console (I believe the reason for this is the grammar url of the OfflineExpression.xtext file being incorrect): -

0    [main] INFO  text.xtext.generator.XtextGenerator  - Initializing Xtext generator
5    [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Adding generated EPackage 'org.eclipse.xtext.common.types.TypesPackage'
177  [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Registering project io.typefox.xtext.langserver.example at 'file:/D:/XtextConversion_DONOTDELETE/mytest2/io.typefox.xtext.langserver.example/'
177  [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Registering project io.typefox.xtext.langserver.example.tests at 'file:/D:/XtextConversion_DONOTDELETE/mytest2/io.typefox.xtext.langserver.example.tests/'
177  [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Registering project io.typefox.xtext.langserver.example.ide at 'file:/D:/XtextConversion_DONOTDELETE/mytest2/io.typefox.xtext.langserver.example.ide/'
177  [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Registering project io.typefox.xtext.langserver.example.ui at 'file:/D:/XtextConversion_DONOTDELETE/mytest2/io.typefox.xtext.langserver.example.ui/'
177  [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Registering project io.typefox.xtext.langserver.example.ui.tests at 'file:/D:/XtextConversion_DONOTDELETE/mytest2/io.typefox.xtext.langserver.example.ui.tests/'
192  [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Using resourceSet registry. The registered Packages will not be registered in the global EPackage.Registry.INSTANCE!
369  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/Xtext/Xbase/XAnnotations' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel'
369  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xtype' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel'
385  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xbase' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel'
385  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/xtext/common/JavaVMTypes' from 'platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel'
856  [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Using resourceSet registry. The registered Packages will not be registered in the global EPackage.Registry.INSTANCE!
934  [main] ERROR xt.generator.XtextGeneratorLanguage  - [XtextSyntaxDiagnostic: null:3 required (...)+ loop did not match anything at input '<EOF>']
934  [main] ERROR mf.mwe2.launch.runtime.Mwe2Launcher  - Problems running workflow io.typefox.xtext.langserver.example.GenerateMyDsl: Problem parsing 'file:/D:/XtextConversion_DONOTDELETE/mytest2/io.typefox.xtext.langserver.example/../io.typefox.xtext.langserver.example/src/io/typefox/xtext/langserver/example/OfflineExpression.xtext':
XtextSyntaxDiagnostic: null:3 required (...)+ loop did not match anything at input '<EOF>'
java.lang.RuntimeException: Problems running workflow io.typefox.xtext.langserver.example.GenerateMyDsl: Problem parsing 'file:/D:/XtextConversion_DONOTDELETE/mytest2/io.typefox.xtext.langserver.example/../io.typefox.xtext.langserver.example/src/io/typefox/xtext/langserver/example/OfflineExpression.xtext':
XtextSyntaxDiagnostic: null:3 required (...)+ loop did not match anything at input '<EOF>'
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:104)
	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.lang.IllegalStateException: Problem parsing 'file:/D:/XtextConversion_DONOTDELETE/mytest2/io.typefox.xtext.langserver.example/../io.typefox.xtext.langserver.example/src/io/typefox/xtext/langserver/example/OfflineExpression.xtext':
XtextSyntaxDiagnostic: null:3 required (...)+ loop did not match anything at input '<EOF>'
	at org.eclipse.xtext.xtext.generator.XtextGeneratorLanguage.initialize(XtextGeneratorLanguage.java:278)
	at org.eclipse.xtext.xtext.generator.StandardLanguage.initialize(StandardLanguage.java:189)
	at org.eclipse.xtext.xtext.generator.XtextGenerator.initialize(XtextGenerator.java:185)
	at org.eclipse.xtext.xtext.generator.XtextGenerator.checkConfigurationInternal(XtextGenerator.java:139)
	at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent2.checkConfiguration(AbstractWorkflowComponent2.java:21)
	at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.preInvoke(Mwe2Bridge.java:65)
	at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.preInvoke(AbstractWorkflowComponent.java:197)
	at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.preInvoke(AbstractCompositeWorkflowComponent.java:29)
	at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:18)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:102)
	... 4 more




Below is the content of my workflow: -

module io.typefox.xtext.langserver.example.GenerateMyDsl

import org.eclipse.xtext.xtext.generator.*
import org.eclipse.xtext.xtext.generator.model.project.*

var rootPath = ".."

Workflow {
	
	component = XtextGenerator {
		configuration = {
			project = StandardProjectConfig {
				baseName = "io.typefox.xtext.langserver.example"
				rootPath = rootPath
				runtimeTest = {
					enabled = true
				}
				eclipsePlugin = {
					enabled = true
				}
				eclipsePluginTest = {
					enabled = true
				}
				createEclipseMetaData = true
			}
			code = {
				encoding = "windows-1252"
				lineDelimiter = "\r\n"
				fileHeader = "/*\n * generated by Xtext \${version}\n */"
			}
		}
		language = StandardLanguage {
		name = "io.typefox.xtext.langserver.example.MyDsl"
		fileExtensions = "dsl"

		serializer = {
			generateStub = false
		}
		validator = {
			// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
			// Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage
			generateDeprecationValidation = true
		}
		parserGenerator={
			combinedGrammar=false
		}
		junitSupport = {
			junitVersion = "5"
		}
		}
		language = StandardLanguage {
		name = "io.typefox.xtext.langserver.example.OfflineExpression"
		fileExtensions = "dsl2"

		serializer = {
			generateStub = false
		}
		validator = {
			// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
			// Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage
			generateDeprecationValidation = true
		}
		parserGenerator={
			combinedGrammar=false
		}
		junitSupport = {
			junitVersion = "5"
		}
		}
	}	
}


Below is the content of OfflineExpression.xtext: -

grammar io.typefox.xtext.langserver.example.OfflineExpression with org.eclipse.xtext.common.Terminals

generate offlineExpression "http://www.typefox.io/xtext/langserver/example/OfflineExpression"


I get an error at 'generate offlineExpression "http://www.typefox.io/xtext/langserver/example/OfflineExpression"' saying 'required (...)+ loop did not match anything at input '<EOF>''
Could you please tell me how this should be corrected?

[Updated on: Wed, 12 December 2018 06:04]

Report message to a moderator

Re: Creating two xtext grammar files within one project [message #1799659 is a reply to message #1799657] Wed, 12 December 2018 06:08 Go to previous message
P J is currently offline P JFriend
Messages: 64
Registered: October 2018
Member
Hi,
I realized this error was because my OfflineExpression.xtext file had no grammar declared in it. When I added a simple grammar, the workflow built fine.
Thank you!
Previous Topic:Xtext content description identification
Next Topic:Error in creating fragment for STRING
Goto Forum:
  


Current Time: Fri Apr 26 17:10:33 GMT 2024

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

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

Back to the top