Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » TMF (Xtext) » Too many constants error in generated internalXXXParser.java
Too many constants error in generated internalXXXParser.java [message #708241] Tue, 02 August 2011 15:51 Go to next message
Elhamlaoui Mahmoud is currently offline Elhamlaoui MahmoudFriend
Messages: 268
Registered: March 2010
Senior Member
Hi,

I have a problem that show up in my ui project,

Quote:

Too many constants, the constant pool for InternalXXXParser would exceed 65536 entries


and i couldnt figure out how to workaround it,
relevant elements of my MWE file :

var antlrTimeout = "10000"

Workflow {


	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 {}



			// the serialization component
			fragment = parseTreeConstructor.ParseTreeConstructorFragment {}

			// a custom ResourceFactory for use with EMF 
			fragment = resourceFactory.ResourceFactoryFragment {
				fileExtensions = file.extensions
			}

			// the Antlr parser
			fragment = parser.antlr.XtextAntlrGeneratorFragment {
				options = {
					backtrack = true
					memoize = true 
					classSplitting = true

					
				}
				antlrParam = "-Xconversiontimeout" antlrParam = "${antlrTimeout}"

			}

			// the Ecore2Xtext specific terminal converter
			fragment = ecore2xtext.Ecore2XtextValueConverterServiceFragment {}

			// 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 {}


			// formatter API 
			fragment = ecore2xtext.FormatterFragment {}

			// labeling API 
			fragment = labeling.LabelProviderFragment {}

			// outline API 
//			fragment = outline.TransformerFragment {}
//			fragment = outline.OutlineNodeAdapterFactoryFragment {}
			fragment = outline.QuickOutlineFragment {}

			// java-based API for content assistance 
			fragment = contentAssist.JavaBasedContentAssistFragment {}

			// antlr parser generator tailored for content assist 
			
			fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
				options = {
					backtrack = true
					memoize = true 
					classSplitting = true
				}
			
				antlrParam = "-Xconversiontimeout" antlrParam = "${antlrTimeout}"
			}

			fragment = builder.BuilderIntegrationFragment {}

			// project wizard (optional) 

			// fragment = projectWizard.SimpleProjectWizardFragment {
			//		generatorProjectName = "${projectName}.generator" 
			//		modelFileExtension = file.extensions
			// }

			// quickfix API 
			fragment = quickfix.QuickfixProviderFragment {}
		}
	}
}

i chech up yhis filled bug but there is no clue of solution
https://bugs.eclipse.org/bugs/show_bug.cgi?id=328753
Any ideas,
Re: Too many constants error in generated internalXXXParser.java [message #709100 is a reply to message #708241] Wed, 03 August 2011 13:53 Go to previous messageGo to next message
Sebastian Zarnekow is currently offline Sebastian ZarnekowFriend
Messages: 3118
Registered: July 2009
Senior Member
Hi,

did you try Xtext 2.0.1? The comments of the ticket
https://bugs.eclipse.org/bugs/show_bug.cgi?id=349992 describe how you
can reduce the number of statics in the generated parser in 2.0.1.

Regards,
Sebastian
--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com

On 02.08.11 17:51, elhamlaoui wrote:
> Hi,
>
> I have a problem that show up in my ui project,
> Quote:
>> Too many constants, the constant pool for InternalXXXParser would
>> exceed 65536 entries
>
>
> and i couldnt figure out how to workaround it,
> relevant elements of my MWE file :
>
>
> var antlrTimeout = "10000"
>
> Workflow {
>
>
> 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 {}
>
>
>
> // the serialization component
> fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
>
> // a custom ResourceFactory for use with EMF fragment =
> resourceFactory.ResourceFactoryFragment {
> fileExtensions = file.extensions
> }
>
> // the Antlr parser
> fragment = parser.antlr.XtextAntlrGeneratorFragment {
> options = {
> backtrack = true
> memoize = true classSplitting = true
>
>
> }
> antlrParam = "-Xconversiontimeout" antlrParam = "${antlrTimeout}"
>
> }
>
> // the Ecore2Xtext specific terminal converter
> fragment = ecore2xtext.Ecore2XtextValueConverterServiceFragment {}
>
> // 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 {}
>
>
> // formatter API fragment = ecore2xtext.FormatterFragment {}
>
> // labeling API fragment = labeling.LabelProviderFragment {}
>
> // outline API // fragment = outline.TransformerFragment {}
> // fragment = outline.OutlineNodeAdapterFactoryFragment {}
> fragment = outline.QuickOutlineFragment {}
>
> // java-based API for content assistance fragment =
> contentAssist.JavaBasedContentAssistFragment {}
>
> // antlr parser generator tailored for content assist
> fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
> options = {
> backtrack = true
> memoize = true classSplitting = true
> }
>
> antlrParam = "-Xconversiontimeout" antlrParam = "${antlrTimeout}"
> }
>
> fragment = builder.BuilderIntegrationFragment {}
>
> // project wizard (optional)
> // fragment = projectWizard.SimpleProjectWizardFragment {
> // generatorProjectName = "${projectName}.generator" //
> modelFileExtension = file.extensions
> // }
>
> // quickfix API fragment = quickfix.QuickfixProviderFragment {}
> }
> }
> }
>
> i chech up yhis filled bug but there is no clue of solution
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=328753
> Any ideas,
Re: Too many constants error in generated internalXXXParser.java [message #709105 is a reply to message #708241] Wed, 03 August 2011 13:53 Go to previous messageGo to next message
Sebastian Zarnekow is currently offline Sebastian ZarnekowFriend
Messages: 3118
Registered: July 2009
Senior Member
Hi,

did you try Xtext 2.0.1? The comments of the ticket
https://bugs.eclipse.org/bugs/show_bug.cgi?id=349992 describe how you
can reduce the number of statics in the generated parser in 2.0.1.

Regards,
Sebastian
--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com

On 02.08.11 17:51, elhamlaoui wrote:
> Hi,
>
> I have a problem that show up in my ui project,
> Quote:
>> Too many constants, the constant pool for InternalXXXParser would
>> exceed 65536 entries
>
>
> and i couldnt figure out how to workaround it,
> relevant elements of my MWE file :
>
>
> var antlrTimeout = "10000"
>
> Workflow {
>
>
> 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 {}
>
>
>
> // the serialization component
> fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
>
> // a custom ResourceFactory for use with EMF fragment =
> resourceFactory.ResourceFactoryFragment {
> fileExtensions = file.extensions
> }
>
> // the Antlr parser
> fragment = parser.antlr.XtextAntlrGeneratorFragment {
> options = {
> backtrack = true
> memoize = true classSplitting = true
>
>
> }
> antlrParam = "-Xconversiontimeout" antlrParam = "${antlrTimeout}"
>
> }
>
> // the Ecore2Xtext specific terminal converter
> fragment = ecore2xtext.Ecore2XtextValueConverterServiceFragment {}
>
> // 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 {}
>
>
> // formatter API fragment = ecore2xtext.FormatterFragment {}
>
> // labeling API fragment = labeling.LabelProviderFragment {}
>
> // outline API // fragment = outline.TransformerFragment {}
> // fragment = outline.OutlineNodeAdapterFactoryFragment {}
> fragment = outline.QuickOutlineFragment {}
>
> // java-based API for content assistance fragment =
> contentAssist.JavaBasedContentAssistFragment {}
>
> // antlr parser generator tailored for content assist
> fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
> options = {
> backtrack = true
> memoize = true classSplitting = true
> }
>
> antlrParam = "-Xconversiontimeout" antlrParam = "${antlrTimeout}"
> }
>
> fragment = builder.BuilderIntegrationFragment {}
>
> // project wizard (optional)
> // fragment = projectWizard.SimpleProjectWizardFragment {
> // generatorProjectName = "${projectName}.generator" //
> modelFileExtension = file.extensions
> // }
>
> // quickfix API fragment = quickfix.QuickfixProviderFragment {}
> }
> }
> }
>
> i chech up yhis filled bug but there is no clue of solution
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=328753
> Any ideas,
Re: Too many constants error in generated internalXXXParser.java [message #709214 is a reply to message #709100] Wed, 03 August 2011 16:35 Go to previous messageGo to next message
Elhamlaoui Mahmoud is currently offline Elhamlaoui MahmoudFriend
Messages: 268
Registered: March 2010
Senior Member
Hi Sebastian,

Ive tried your solution by adding
  fieldsPerClass = "500" 
to both fragments:" fragment = parser.antlr.XtextAntlrGeneratorFragment"
and "fragment = parser.antlr.XtextAntlrUiGeneratorFragment" but i still got the same problem in my UI package : ui/contentassist/antlr/internal

Thanks
Re: Too many constants error in generated internalXXXParser.java [message #709729 is a reply to message #709214] Thu, 04 August 2011 08:19 Go to previous messageGo to next message
Sebastian Zarnekow is currently offline Sebastian ZarnekowFriend
Messages: 3118
Registered: July 2009
Senior Member
Hi,

does it work with 200 fields per class. How does the error message look
like? Could you provide your grammar?

Regards,
Sebastian
--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com

On 03.08.11 18:35, elhamlaoui wrote:
> Hi Sebastian,
>
> Ive tried your solution by adding fieldsPerClass = "500" to both
> fragments:" fragment = parser.antlr.XtextAntlrGeneratorFragment"
> and "fragment = parser.antlr.XtextAntlrUiGeneratorFragment" but i still
> got the same problem in my UI package : ui/contentassist/antlr/internal
>
> Thanks
Re: Too many constants error in generated internalXXXParser.java [message #709799 is a reply to message #709729] Thu, 04 August 2011 10:16 Go to previous messageGo to next message
Elhamlaoui Mahmoud is currently offline Elhamlaoui MahmoudFriend
Messages: 268
Registered: March 2010
Senior Member
Hi Sebastian,

It tried with the 200 fileds per class but it doesnt work, i have a (little bit) huge grammar, the problem is in the
/src-gen/com/ensias/dslx/ui/contentassist/antlr/internal/InternalDslxParser.java with the same error message :
Quote:

Too many constants, the constant pool for InternalDslxParser would exceed 65536 entries

Thanks for your help

Re: Too many constants error in generated internalXXXParser.java [message #709813 is a reply to message #709799] Thu, 04 August 2011 10:31 Go to previous messageGo to next message
Elhamlaoui Mahmoud is currently offline Elhamlaoui MahmoudFriend
Messages: 268
Registered: March 2010
Senior Member
The same grammar is working on the xtext 1.0.2
Re: Too many constants error in generated internalXXXParser.java [message #709862 is a reply to message #709813] Thu, 04 August 2011 12:03 Go to previous messageGo to next message
Elhamlaoui Mahmoud is currently offline Elhamlaoui MahmoudFriend
Messages: 268
Registered: March 2010
Senior Member
Hi Sebastian,

Its working now, i ve removed the backtrack & memoize option and i got the an error like http://www.eclipse.org/forums/index.php/m/536873/ that i solved it.

thanks for your help
Re: Too many constants error in generated internalXXXParser.java [message #719900 is a reply to message #709862] Mon, 29 August 2011 12:06 Go to previous message
Elhamlaoui Mahmoud is currently offline Elhamlaoui MahmoudFriend
Messages: 268
Registered: March 2010
Senior Member
Hi,

The same problem shows up again when i try to extend my grammar, its look like the grammar is limited by a certain number of lines,
Any ideas?

Regards
Mahmoud
Previous Topic:Couldn't resolve reference to JvmOperation
Next Topic:Xtext serialization :help to understand the error trace
Goto Forum:
  


Current Time: Tue Apr 23 08:15:18 GMT 2024

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

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

Back to the top