summaryrefslogtreecommitdiff
blob: 662abfe1e17f16125b71afe1ed839e57d959d2ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
diff -Naur antlr-3.3.orig/tool/src/main/java/org/antlr/tool/CompositeGrammar.java antlr-3.3/tool/src/main/java/org/antlr/tool/CompositeGrammar.java
--- antlr-3.3.orig/tool/src/main/java/org/antlr/tool/CompositeGrammar.java	2010-11-30 01:54:04.000000000 +0000
+++ antlr-3.3/tool/src/main/java/org/antlr/tool/CompositeGrammar.java	2015-10-03 14:28:50.063497181 +0100
@@ -219,7 +219,9 @@
 	public List<Grammar> getIndirectDelegates(Grammar g) {
 		List<Grammar> direct = getDirectDelegates(g);
 		List<Grammar> delegates = getDelegates(g);
-		delegates.removeAll(direct);
+		if (direct != null) {
+			delegates.removeAll(direct);
+		}
 		return delegates;
 	}
 
@@ -389,7 +391,7 @@
 		Set<String> localRuleDefs = new HashSet<String>();
 		Set<String> overrides = new HashSet<String>();
 		// compute set of non-overridden rules for this delegate
-		for (Rule r : p.grammar.getRules()) {
+		for (Rule r : (Collection<Rule>) p.grammar.getRules()) {
 			if ( !ruleDefs.contains(r.name) ) {
 				localRuleDefs.add(r.name);
 			}
@@ -409,7 +411,7 @@
 
 		// pass larger set of defined rules to delegates
 		if ( p.children!=null ) {
-			for (CompositeGrammarTree delegate : p.children) {
+			for (CompositeGrammarTree delegate : (List<CompositeGrammarTree>) p.children) {
 				_minimizeRuleSet(ruleDefs, delegate);
 			}
 		}