diff options
author | buraq <buraq@epfl.ch> | 2003-06-19 17:15:34 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2003-06-19 17:15:34 +0000 |
commit | 88cb90bf6d10e0766c08cfa277e32a52de6f96ab (patch) | |
tree | 7ce6cfd1b271387904fdb68b6a9928768ac26403 /sources/scalac/transformer/matching/StateSetComparator.java | |
parent | e7609c9d0e314117ef1c6161827d0982076090e7 (diff) | |
download | scala-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.java | 34 |
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; + } + } |