be4db265e6dca7c291888b1525f22dcb1c083907
[repair.git] / Repair / RepairCompiler / MCC / IR / IntegerLiteralExpr.java
1 package MCC.IR;
2 import java.util.Map;
3
4 public class IntegerLiteralExpr extends LiteralExpr {
5
6     int value;
7
8     public boolean usesDescriptor(Descriptor d) {
9         return false;
10     }
11
12     public IntegerLiteralExpr(int value) {
13         this.value = value; 
14         td = ReservedTypeDescriptor.INT;
15     }
16
17     public String name() {
18         return (new Integer(value)).toString();
19     }
20
21     public boolean isNull() {
22         return value==0;
23     }
24
25     public boolean equals(Map remap, Expr e) {
26         if (e==null)
27             return false;
28         else if (!(e instanceof IntegerLiteralExpr))
29             return false;
30         else return (((IntegerLiteralExpr)e).value==value);
31     }
32
33     public int getValue() {
34         return value;
35     }
36
37     public void generate(CodeWriter writer, VarDescriptor dest) {
38         writer.outputline("int " + dest.getSafeSymbol() + " = " + value + ";");
39     }
40
41     public void prettyPrint(PrettyPrinter pp) {
42         pp.output("" + value);
43     }
44
45     public TypeDescriptor typecheck(SemanticAnalyzer sa) {
46         td = ReservedTypeDescriptor.INT;
47         return td;
48     }
49 }