summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/matching/StateSetComparator.java
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2003-06-19 17:15:34 +0000
committerburaq <buraq@epfl.ch>2003-06-19 17:15:34 +0000
commit88cb90bf6d10e0766c08cfa277e32a52de6f96ab (patch)
tree7ce6cfd1b271387904fdb68b6a9928768ac26403 /sources/scalac/transformer/matching/StateSetComparator.java
parente7609c9d0e314117ef1c6161827d0982076090e7 (diff)
downloadscala-88cb90bf6d10e0766c08cfa277e32a52de6f96ab.tar.gz
scala-88cb90bf6d10e0766c08cfa277e32a52de6f96ab.tar.bz2
scala-88cb90bf6d10e0766c08cfa277e32a52de6f96ab.zip
automata stuff for pattern matching
Diffstat (limited to 'sources/scalac/transformer/matching/StateSetComparator.java')
-rw-r--r--sources/scalac/transformer/matching/StateSetComparator.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/sources/scalac/transformer/matching/StateSetComparator.java b/sources/scalac/transformer/matching/StateSetComparator.java
new file mode 100644
index 0000000000..71c43b2374
--- /dev/null
+++ b/sources/scalac/transformer/matching/StateSetComparator.java
@@ -0,0 +1,34 @@
+package scalac.transformer.matching ;
+
+import java.util.* ;
+
+class StateSetComparator implements Comparator {
+ // use lexicographic order
+ public int compare( Object o1, Object o2 ) {
+ /*
+ System.out.print("lexi" );
+ System.out.print( o1 +" ");
+ System.out.println( o2 );
+ */
+ Iterator it1 = ((TreeSet) o1).iterator();
+ Iterator it2 = ((TreeSet) o2).iterator();
+ while( it1.hasNext() ) {
+ while( it2.hasNext() ) {
+ if( !it1.hasNext() )
+ return -1;
+
+ int i1 = ((Integer) it1.next()).intValue();
+ int i2 = ((Integer) it2.next()).intValue();
+ if( i1 < i2 )
+ return -1;
+ else if ( i1 > i2 )
+ return 1;
+ }
+ if( it1.hasNext() )
+ return 1;
+ }
+ if( it2.hasNext() )
+ return -1;
+ return 0;
+ }
+ }