Skip to content
Snippets Groups Projects
Commit 4aa1448e authored by dgelessus's avatar dgelessus
Browse files

Use generics in LR0Item and related classes

parent a87f7c48
Branches
Tags
No related merge requests found
...@@ -9,7 +9,7 @@ package org.sablecc.sablecc; ...@@ -9,7 +9,7 @@ package org.sablecc.sablecc;
import java.util.*; import java.util.*;
final class LR0Item implements Cloneable, Comparable final class LR0Item implements Cloneable, Comparable<LR0Item>
{ {
final int production; final int production;
final int position; final int position;
...@@ -21,10 +21,8 @@ final class LR0Item implements Cloneable, Comparable ...@@ -21,10 +21,8 @@ final class LR0Item implements Cloneable, Comparable
} }
@Override @Override
public int compareTo(Object object) public int compareTo(LR0Item item)
{ {
LR0Item item = (LR0Item) object;
int result = production - item.production; int result = production - item.production;
if(result == 0) if(result == 0)
......
...@@ -9,22 +9,20 @@ package org.sablecc.sablecc; ...@@ -9,22 +9,20 @@ package org.sablecc.sablecc;
import java.util.*; import java.util.*;
import java.util.Vector; final class LR0ItemSet implements Cloneable, Comparable<LR0ItemSet>
final class LR0ItemSet implements Cloneable, Comparable
{ {
private final TreeMap items; private final TreeMap<LR0Item, LR0Item> items;
private int hashCode; private int hashCode;
LR0ItemSet() LR0ItemSet()
{ {
items = new TreeMap(); items = new TreeMap<>();
} }
private LR0ItemSet(LR0ItemSet set private LR0ItemSet(LR0ItemSet set
) )
{ {
items = (TreeMap) set.items.clone(); items = new TreeMap<>(set.items);
} }
void set void set
...@@ -48,15 +46,7 @@ final class LR0ItemSet implements Cloneable, Comparable ...@@ -48,15 +46,7 @@ final class LR0ItemSet implements Cloneable, Comparable
private void computeArray() private void computeArray()
{ {
Vector itemVector = new Vector(0); items_ = items.keySet().toArray(new LR0Item[0]);
for(Iterator e = items.keySet().iterator(); e.hasNext();)
{
itemVector.addElement(e.next());
}
items_ = new LR0Item[itemVector.size()];
itemVector.copyInto(items_);
modified_ = false; modified_ = false;
} }
...@@ -125,20 +115,7 @@ final class LR0ItemSet implements Cloneable, Comparable ...@@ -125,20 +115,7 @@ final class LR0ItemSet implements Cloneable, Comparable
LR0ItemSet set LR0ItemSet set
= (LR0ItemSet) obj; = (LR0ItemSet) obj;
if(set.items.size() != items.size()) return items.keySet().equals(set.items.keySet());
{
return false;
}
for(Iterator e = items.keySet().iterator(); e.hasNext();)
{
if(!set.get((LR0Item) e.next()))
{
return false;
}
}
return true;
} }
@Override @Override
...@@ -148,21 +125,18 @@ final class LR0ItemSet implements Cloneable, Comparable ...@@ -148,21 +125,18 @@ final class LR0ItemSet implements Cloneable, Comparable
} }
@Override @Override
public int compareTo(Object object) public int compareTo(LR0ItemSet set)
{ {
LR0ItemSet set
= (LR0ItemSet) object;
int result = items.size() - set.items.size(); int result = items.size() - set.items.size();
if(result == 0) if(result == 0)
{ {
Iterator e = items.keySet().iterator(); Iterator<LR0Item> e = items.keySet().iterator();
Iterator f = set.items.keySet().iterator(); Iterator<LR0Item> f = set.items.keySet().iterator();
while(e.hasNext() && f.hasNext() && (result == 0)) while(e.hasNext() && f.hasNext() && (result == 0))
{ {
result = ((LR0Item) e.next()).compareTo(f.next()); result = e.next().compareTo(f.next());
} }
if(result == 0) if(result == 0)
......
...@@ -9,7 +9,7 @@ package org.sablecc.sablecc; ...@@ -9,7 +9,7 @@ package org.sablecc.sablecc;
import java.util.*; import java.util.*;
final class LR1Item implements Cloneable, Comparable final class LR1Item implements Cloneable, Comparable<LR1Item>
{ {
final LR0Item lr0Item; final LR0Item lr0Item;
final int terminal; final int terminal;
...@@ -88,10 +88,8 @@ final class LR1Item implements Cloneable, Comparable ...@@ -88,10 +88,8 @@ final class LR1Item implements Cloneable, Comparable
} }
@Override @Override
public int compareTo(Object object) public int compareTo(LR1Item item)
{ {
LR1Item item = (LR1Item) object;
int result = lr0Item.compareTo(item.lr0Item); int result = lr0Item.compareTo(item.lr0Item);
if(result == 0) if(result == 0)
......
...@@ -8,22 +8,21 @@ ...@@ -8,22 +8,21 @@
package org.sablecc.sablecc; package org.sablecc.sablecc;
import java.util.*; 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; private int hashCode = 0;
LR1ItemSet() LR1ItemSet()
{ {
this.items = new TreeMap(); this.items = new TreeMap<>();
} }
private LR1ItemSet(LR1ItemSet set private LR1ItemSet(LR1ItemSet set
) )
{ {
this.items = (TreeMap) set.items.clone(); this.items = new TreeMap<>(set.items);
this.hashCode = set.hashCode; this.hashCode = set.hashCode;
} }
...@@ -48,15 +47,7 @@ final class LR1ItemSet implements Cloneable, Comparable ...@@ -48,15 +47,7 @@ final class LR1ItemSet implements Cloneable, Comparable
private void computeArray() private void computeArray()
{ {
Vector itemVector = new Vector(0); items_ = items.keySet().toArray(new LR1Item[0]);
for(Iterator e = items.keySet().iterator(); e.hasNext();)
{
itemVector.addElement(e.next());
}
items_ = new LR1Item[itemVector.size()];
itemVector.copyInto(items_);
modified_ = false; modified_ = false;
} }
...@@ -121,7 +112,7 @@ final class LR1ItemSet implements Cloneable, Comparable ...@@ -121,7 +112,7 @@ final class LR1ItemSet implements Cloneable, Comparable
LR1Item[] items = items(); LR1Item[] items = items();
int length = items.length; int length = items.length;
TreeSet strings = new TreeSet(); Set<String> strings = new TreeSet<>();
for(int i = 0; i < length; i++) for(int i = 0; i < length; i++)
{ {
...@@ -138,7 +129,7 @@ final class LR1ItemSet implements Cloneable, Comparable ...@@ -138,7 +129,7 @@ final class LR1ItemSet implements Cloneable, Comparable
result.append("{"); result.append("{");
boolean colon = false; boolean colon = false;
for(Iterator i = strings.iterator(); i.hasNext(); ) for(String s : strings)
{ {
if(colon) if(colon)
{ {
...@@ -152,7 +143,7 @@ final class LR1ItemSet implements Cloneable, Comparable ...@@ -152,7 +143,7 @@ final class LR1ItemSet implements Cloneable, Comparable
} }
result.append("\t"); result.append("\t");
result.append(i.next()); result.append(s);
} }
result.append(nl); result.append(nl);
...@@ -179,20 +170,7 @@ final class LR1ItemSet implements Cloneable, Comparable ...@@ -179,20 +170,7 @@ final class LR1ItemSet implements Cloneable, Comparable
LR1ItemSet set LR1ItemSet set
= (LR1ItemSet) obj; = (LR1ItemSet) obj;
if(set.items.size() != items.size()) return items.keySet().equals(set.items.keySet());
{
return false;
}
for(Iterator e = items.keySet().iterator(); e.hasNext();)
{
if(!set.get((LR1Item) e.next()))
{
return false;
}
}
return true;
} }
@Override @Override
...@@ -202,21 +180,18 @@ final class LR1ItemSet implements Cloneable, Comparable ...@@ -202,21 +180,18 @@ final class LR1ItemSet implements Cloneable, Comparable
} }
@Override @Override
public int compareTo(Object object) public int compareTo(LR1ItemSet set)
{ {
LR1ItemSet set
= (LR1ItemSet) object;
int result = items.size() - set.items.size(); int result = items.size() - set.items.size();
if(result == 0) if(result == 0)
{ {
Iterator e = items.keySet().iterator(); Iterator<LR1Item> e = items.keySet().iterator();
Iterator f = set.items.keySet().iterator(); Iterator<LR1Item> f = set.items.keySet().iterator();
while(e.hasNext() && f.hasNext() && (result == 0)) while(e.hasNext() && f.hasNext() && (result == 0))
{ {
result = ((LR1Item) e.next()).compareTo(f.next()); result = e.next().compareTo(f.next());
} }
if(result == 0) if(result == 0)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment