variable source tokens have a temp for the live variable name and a temp for the...
[IRC.git] / Robust / src / Analysis / MLP / VariableSourceToken.java
1 package Analysis.MLP;
2
3 import IR.*;
4 import IR.Flat.*;
5 import java.util.*;
6 import java.io.*;
7
8 public class VariableSourceToken {
9
10   private TempDescriptor    varLive;
11   private FlatSESEEnterNode seseSrc;
12   private Integer           seseAge;
13   private TempDescriptor    varSrc; 
14
15   public VariableSourceToken( TempDescriptor    varLive, 
16                               FlatSESEEnterNode seseSrc,                              
17                               Integer           seseAge, 
18                               TempDescriptor    varSrc 
19                               ) {
20     this.varLive = varLive;
21     this.seseSrc = seseSrc;
22     this.seseAge = seseAge;
23     this.varSrc  = varSrc; 
24   }
25
26   public TempDescriptor getVarLive() {
27     return varLive;
28   }
29
30   public FlatSESEEnterNode getSESE() {
31     return seseSrc;
32   }
33
34   public Integer getAge() {
35     return seseAge;
36   }
37
38   public TempDescriptor getVarSrc() {
39     return varSrc;
40   }
41
42   public boolean equals( Object o ) {
43     if( o == null ) {
44       return false;
45     }
46
47     if( !(o instanceof VariableSourceToken) ) {
48       return false;
49     }
50
51     VariableSourceToken vst = (VariableSourceToken) o;
52
53     return seseSrc.equals( vst.seseSrc ) &&
54             varSrc.equals( vst.varSrc  ) &&
55            seseAge.equals( vst.seseAge ) &&
56            varLive.equals( vst.varLive );
57   }
58
59   public int hashCode() {
60     return (seseSrc.hashCode() << 3) + (varSrc.hashCode() << 4) * (varLive.hashCode() << 2) ^ seseAge.intValue();
61   }
62
63
64   public String toString() {
65     return "["+varLive+" -> "+seseSrc.getPrettyIdentifier()+", "+seseAge+", "+varSrc+"]";
66   }
67 }