public void process() {
		// methods affect fields, but no side-effects outside this object
		// So, call order sensitive
		// First collect all rules for later use in checkForLabelConflict()
		if (g.rules != null) {
			for (Rule r : g.rules.values()) nameToRuleMap.put(r.name, r);
		}
		checkReservedNames(g.rules.values());
		checkActionRedefinitions(collector.namedActions);
		checkForLabelConflicts(g.rules.values());
	}
Check for symbol problems; no side-effects.  Inefficient to walk rules
 and such multiple times, but I like isolating all error checking outside
 of code that actually defines symbols etc...

 Side-effect: strip away redef'd rules.
tool/src/org/antlr/v4/semantics/SymbolChecks.java