blob: 8cb050de2e1ee81490456af52e6ae80c42c3d6b4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
/* NSC -- new scala compiler
* Copyright 2005 LAMP/EPFL
* @author buraq
*/
// $Id$
package scala.tools.nsc.matching ;
import java.util.{ HashMap, TreeSet };
/** cartesian
*/
/** Int x TreeSet[ Int ]
*/
case class Npair(nstate: Integer, nset: TreeSet) {
override def equals(that: Any): Boolean = {
this match {
case Npair(nstate, nset) =>
that match {
case Npair(_nstate, _nset) =>
return ((nstate == _nstate)
&& (nset == _nset));
case _ => return false
}
case _ => return false
}
}
override def toString(): String = this match {
case Npair(nstate, nset) =>
//Integer dstate = (Integer) indexMap.get(nset);
"<n" + nstate.toString() + " in " + nset /*+" = d"+dstate*/ + ">";
case _ => null
}
def toString(indexMap: HashMap): String = {
//assert indexMap != null;
this match {
case Npair(nstate, nset) =>
//assert nstate != null;
val dstate = indexMap.get( nset ).asInstanceOf[Integer];
return "<n" + nstate.toString() + " in " + nset + " = d" + dstate + ">";
case _ =>
return null;
}
}
}
class NpairComparator extends StateSetComparator {
override def compare(o1: Any, o2: Any): Int = {
o1 match {
case Npair(nstate, nset) => o2 match {
case Npair(_nstate, _nset) =>
val res = nstate.compareTo(_nstate);
if (res != 0)
return res;
else
return super.compare(nset, _nset);
}
}
}
}
|