diff --git a/src/main/java/org/sablecc/sablecc/LR0Item.java b/src/main/java/org/sablecc/sablecc/LR0Item.java index 16d87c993ea2367e0d2a72c7b25732aa018630c0..104702ee03d052596b6616d5a4bc09e6c2546b7d 100644 --- a/src/main/java/org/sablecc/sablecc/LR0Item.java +++ b/src/main/java/org/sablecc/sablecc/LR0Item.java @@ -9,7 +9,7 @@ package org.sablecc.sablecc; import java.util.*; -final class LR0Item implements Cloneable, Comparable +final class LR0Item implements Cloneable, Comparable<LR0Item> { final int production; final int position; @@ -21,10 +21,8 @@ final class LR0Item implements Cloneable, Comparable } @Override - public int compareTo(Object object) + public int compareTo(LR0Item item) { - LR0Item item = (LR0Item) object; - int result = production - item.production; if(result == 0) diff --git a/src/main/java/org/sablecc/sablecc/LR0ItemSet.java b/src/main/java/org/sablecc/sablecc/LR0ItemSet.java index 56fc438e0b681769dc11da4b9d4ade7edcb86347..a58b1a91fed189fd6fdf4d9787d758fcf3c23421 100644 --- a/src/main/java/org/sablecc/sablecc/LR0ItemSet.java +++ b/src/main/java/org/sablecc/sablecc/LR0ItemSet.java @@ -9,22 +9,20 @@ package org.sablecc.sablecc; import java.util.*; -import java.util.Vector; - -final class LR0ItemSet implements Cloneable, Comparable +final class LR0ItemSet implements Cloneable, Comparable<LR0ItemSet> { - private final TreeMap items; + private final TreeMap<LR0Item, LR0Item> items; private int hashCode; LR0ItemSet() { - items = new TreeMap(); + items = new TreeMap<>(); } private LR0ItemSet(LR0ItemSet set ) { - items = (TreeMap) set.items.clone(); + items = new TreeMap<>(set.items); } void set @@ -48,15 +46,7 @@ final class LR0ItemSet implements Cloneable, Comparable private void computeArray() { - Vector itemVector = new Vector(0); - - for(Iterator e = items.keySet().iterator(); e.hasNext();) - { - itemVector.addElement(e.next()); - } - - items_ = new LR0Item[itemVector.size()]; - itemVector.copyInto(items_); + items_ = items.keySet().toArray(new LR0Item[0]); modified_ = false; } @@ -125,20 +115,7 @@ final class LR0ItemSet implements Cloneable, Comparable LR0ItemSet set = (LR0ItemSet) obj; - if(set.items.size() != items.size()) - { - return false; - } - - for(Iterator e = items.keySet().iterator(); e.hasNext();) - { - if(!set.get((LR0Item) e.next())) - { - return false; - } - } - - return true; + return items.keySet().equals(set.items.keySet()); } @Override @@ -148,21 +125,18 @@ final class LR0ItemSet implements Cloneable, Comparable } @Override - public int compareTo(Object object) + public int compareTo(LR0ItemSet set) { - LR0ItemSet set - = (LR0ItemSet) object; - int result = items.size() - set.items.size(); if(result == 0) { - Iterator e = items.keySet().iterator(); - Iterator f = set.items.keySet().iterator(); + Iterator<LR0Item> e = items.keySet().iterator(); + Iterator<LR0Item> f = set.items.keySet().iterator(); while(e.hasNext() && f.hasNext() && (result == 0)) { - result = ((LR0Item) e.next()).compareTo(f.next()); + result = e.next().compareTo(f.next()); } if(result == 0) diff --git a/src/main/java/org/sablecc/sablecc/LR1Item.java b/src/main/java/org/sablecc/sablecc/LR1Item.java index a3471f0c91068d520758db49694dd9b9fcec75ae..0936d085fdff40f3242facb194745816709d5796 100644 --- a/src/main/java/org/sablecc/sablecc/LR1Item.java +++ b/src/main/java/org/sablecc/sablecc/LR1Item.java @@ -9,7 +9,7 @@ package org.sablecc.sablecc; import java.util.*; -final class LR1Item implements Cloneable, Comparable +final class LR1Item implements Cloneable, Comparable<LR1Item> { final LR0Item lr0Item; final int terminal; @@ -88,10 +88,8 @@ final class LR1Item implements Cloneable, Comparable } @Override - public int compareTo(Object object) + public int compareTo(LR1Item item) { - LR1Item item = (LR1Item) object; - int result = lr0Item.compareTo(item.lr0Item); if(result == 0) diff --git a/src/main/java/org/sablecc/sablecc/LR1ItemSet.java b/src/main/java/org/sablecc/sablecc/LR1ItemSet.java index 983c7cb2e000a2593a139c9bdeba10cfdc5cd9e1..ca9596349283c99314ba1fc3fb253ab0f11f781d 100644 --- a/src/main/java/org/sablecc/sablecc/LR1ItemSet.java +++ b/src/main/java/org/sablecc/sablecc/LR1ItemSet.java @@ -8,22 +8,21 @@ package org.sablecc.sablecc; import java.util.*; -import java.util.Vector; -final class LR1ItemSet implements Cloneable, Comparable +final class LR1ItemSet implements Cloneable, Comparable<LR1ItemSet> { - private final TreeMap items; + private final TreeMap<LR1Item, LR1Item> items; private int hashCode = 0; LR1ItemSet() { - this.items = new TreeMap(); + this.items = new TreeMap<>(); } private LR1ItemSet(LR1ItemSet set ) { - this.items = (TreeMap) set.items.clone(); + this.items = new TreeMap<>(set.items); this.hashCode = set.hashCode; } @@ -48,15 +47,7 @@ final class LR1ItemSet implements Cloneable, Comparable private void computeArray() { - Vector itemVector = new Vector(0); - - for(Iterator e = items.keySet().iterator(); e.hasNext();) - { - itemVector.addElement(e.next()); - } - - items_ = new LR1Item[itemVector.size()]; - itemVector.copyInto(items_); + items_ = items.keySet().toArray(new LR1Item[0]); modified_ = false; } @@ -121,7 +112,7 @@ final class LR1ItemSet implements Cloneable, Comparable LR1Item[] items = items(); int length = items.length; - TreeSet strings = new TreeSet(); + Set<String> strings = new TreeSet<>(); for(int i = 0; i < length; i++) { @@ -138,7 +129,7 @@ final class LR1ItemSet implements Cloneable, Comparable result.append("{"); boolean colon = false; - for(Iterator i = strings.iterator(); i.hasNext(); ) + for(String s : strings) { if(colon) { @@ -152,7 +143,7 @@ final class LR1ItemSet implements Cloneable, Comparable } result.append("\t"); - result.append(i.next()); + result.append(s); } result.append(nl); @@ -179,20 +170,7 @@ final class LR1ItemSet implements Cloneable, Comparable LR1ItemSet set = (LR1ItemSet) obj; - if(set.items.size() != items.size()) - { - return false; - } - - for(Iterator e = items.keySet().iterator(); e.hasNext();) - { - if(!set.get((LR1Item) e.next())) - { - return false; - } - } - - return true; + return items.keySet().equals(set.items.keySet()); } @Override @@ -202,21 +180,18 @@ final class LR1ItemSet implements Cloneable, Comparable } @Override - public int compareTo(Object object) + public int compareTo(LR1ItemSet set) { - LR1ItemSet set - = (LR1ItemSet) object; - int result = items.size() - set.items.size(); if(result == 0) { - Iterator e = items.keySet().iterator(); - Iterator f = set.items.keySet().iterator(); + Iterator<LR1Item> e = items.keySet().iterator(); + Iterator<LR1Item> f = set.items.keySet().iterator(); while(e.hasNext() && f.hasNext() && (result == 0)) { - result = ((LR1Item) e.next()).compareTo(f.next()); + result = e.next().compareTo(f.next()); } if(result == 0)