antlr3
                                
                                 antlr3 copied to clipboard
                                
                                    antlr3 copied to clipboard
                            
                            
                            
                        Make test suite deterministic.
Avoid using java.util.HashSet/java.util.HashMap, since iteration order in the hash set (even if the keys' hashCode methods are deterministic) is dependent on the exact size of the hash set, bucket organization, etc.  This changes for different versions of the JDK, causing tests to have repeatable false failures when run on (eg) openjdk 1.8 (it appears the test suite was written against JDK 5/6).
Use java.util.LinkedHashSet/LinkedHashMap so that the iteration order is always repeatable (and the tests always pass).  (Define a few missing hashCode methods while we're at it, although using LinkedHashSet means that isn't necessary in order to get repeatable iteration order.)