* gnu/packages/java.scm (java-antlr4-runtime): New variable. * gnu/packages/patches/java-antlr4-Add-standalone-generator.patch: New file. * gnu/packages/patches/java-antlr4-fix-code-too-large.java: New file. * gnu/local.mk (dist_patch_DATA): Add them.
		
			
				
	
	
		
			90 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
From d22db2048534bdf3d9615117291f9d86564ff10d Mon Sep 17 00:00:00 2001
 | 
						|
From: Julien Lepiller <julien@lepiller.eu>
 | 
						|
Date: Sat, 19 Sep 2020 21:05:48 +0200
 | 
						|
Subject: [PATCH] Separate addPropertyAliases in two methods
 | 
						|
 | 
						|
The quantity of data used to generate addPropertyAliases creates a big
 | 
						|
method, that is too big for java and results in "error: code too large".
 | 
						|
This is most likely due to added data between the expected version of
 | 
						|
icu and the actual version of icu in Guix.
 | 
						|
---
 | 
						|
 .../org/antlr/v4/tool/templates/unicodedata.st | 17 ++++++++++++++---
 | 
						|
 .../unicode/UnicodeDataTemplateController.java | 18 ++++++++++--------
 | 
						|
 2 files changed, 24 insertions(+), 11 deletions(-)
 | 
						|
 | 
						|
diff --git a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
 | 
						|
index 0f22c73..3573873 100644
 | 
						|
--- a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
 | 
						|
+++ b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
 | 
						|
@@ -1,4 +1,4 @@
 | 
						|
-unicodedata(propertyCodePointRanges, propertyAliases) ::= <<
 | 
						|
+unicodedata(propertyCodePointRanges, propertyAliasesA, propertyAliasesB) ::= <<
 | 
						|
 package org.antlr.v4.unicode;
 | 
						|
 
 | 
						|
 import java.util.Arrays;
 | 
						|
@@ -15,7 +15,7 @@ import org.antlr.v4.runtime.misc.Interval;
 | 
						|
  */
 | 
						|
 public abstract class UnicodeData {
 | 
						|
        private static final Map\<String, IntervalSet\> propertyCodePointRanges = new HashMap\<\>(<length(propertyCodePointRanges)>);
 | 
						|
-       private static final Map\<String, String\> propertyAliases = new HashMap\<\>(<length(propertyAliases)>);
 | 
						|
+       private static final Map\<String, String\> propertyAliases = new HashMap\<\>(<length(propertyAliasesA)> + <length(propertyAliasesB)>);
 | 
						|
 
 | 
						|
        // Work around Java 64k bytecode method limit by splitting up static
 | 
						|
        // initialization into one method per Unicode property
 | 
						|
@@ -30,9 +30,20 @@ static private void addProperty<i>() {
 | 
						|
        propertyCodePointRanges.put("<k>".toLowerCase(Locale.US), codePointRanges);
 | 
						|
 \}}; separator="\n\n">
 | 
						|
 
 | 
						|
+       // Property aliases
 | 
						|
+       static private void addPropertyAliases1() {
 | 
						|
+              <propertyAliasesA.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesA.(k)>".toLowerCase(Locale.US)); }; separator="\n">
 | 
						|
+       }
 | 
						|
+
 | 
						|
+       // Property aliases
 | 
						|
+       static private void addPropertyAliases2() {
 | 
						|
+              <propertyAliasesB.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesB.(k)>".toLowerCase(Locale.US)); }; separator="\n">
 | 
						|
+       }
 | 
						|
+
 | 
						|
        // Property aliases
 | 
						|
        static private void addPropertyAliases() {
 | 
						|
-              <propertyAliases.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliases.(k)>".toLowerCase(Locale.US)); }; separator="\n">
 | 
						|
+             addPropertyAliases1();
 | 
						|
+             addPropertyAliases2();
 | 
						|
        }
 | 
						|
 
 | 
						|
        // Put it all together
 | 
						|
diff --git a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
 | 
						|
index da244a3..dc591cb 100644
 | 
						|
--- a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
 | 
						|
+++ b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
 | 
						|
@@ -78,17 +78,19 @@ public abstract class UnicodeDataTemplateController {
 | 
						|
 		addTR35ExtendedPictographicPropertyCodesToCodePointRanges(propertyCodePointRanges);
 | 
						|
 		addEmojiPresentationPropertyCodesToCodePointRanges(propertyCodePointRanges);
 | 
						|
 
 | 
						|
-		Map<String, String> propertyAliases = new LinkedHashMap<>();
 | 
						|
-		addUnicodeCategoryCodesToNames(propertyAliases);
 | 
						|
-		addUnicodeBinaryPropertyCodesToNames(propertyAliases);
 | 
						|
-		addUnicodeScriptCodesToNames(propertyAliases);
 | 
						|
-		addUnicodeBlocksToNames(propertyAliases);
 | 
						|
-		addUnicodeIntPropertyCodesToNames(propertyAliases);
 | 
						|
-		propertyAliases.put("EP", "Extended_Pictographic");
 | 
						|
+		Map<String, String> propertyAliases1 = new LinkedHashMap<>();
 | 
						|
+		Map<String, String> propertyAliases2 = new LinkedHashMap<>();
 | 
						|
+		addUnicodeCategoryCodesToNames(propertyAliases1);
 | 
						|
+		addUnicodeBinaryPropertyCodesToNames(propertyAliases1);
 | 
						|
+		addUnicodeScriptCodesToNames(propertyAliases1);
 | 
						|
+		addUnicodeBlocksToNames(propertyAliases2);
 | 
						|
+		addUnicodeIntPropertyCodesToNames(propertyAliases2);
 | 
						|
+		propertyAliases2.put("EP", "Extended_Pictographic");
 | 
						|
 
 | 
						|
 		Map<String, Object> properties = new LinkedHashMap<>();
 | 
						|
 		properties.put("propertyCodePointRanges", propertyCodePointRanges);
 | 
						|
-		properties.put("propertyAliases", propertyAliases);
 | 
						|
+		properties.put("propertyAliasesA", propertyAliases1);
 | 
						|
+		properties.put("propertyAliasesB", propertyAliases2);
 | 
						|
 		return properties;
 | 
						|
 	}
 | 
						|
 
 | 
						|
-- 
 | 
						|
2.28.0
 | 
						|
 |