e3f0d7347f5c62a6d9dfe19705421508049880c6
[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 equals(Map remap, Expr e) {
22         if (e==null)
23             return false;
24         else if (!(e instanceof IntegerLiteralExpr))
25             return false;
26         else return (((IntegerLiteralExpr)e).value==value);
27     }
28
29     public int getValue() {
30         return value;
31     }
32
33     public void generate(CodeWriter writer, VarDescriptor dest) {
34         writer.outputline("int " + dest.getSafeSymbol() + " = " + value + ";");
35     }
36
37     public void prettyPrint(PrettyPrinter pp) {
38         pp.output("" + value);
39     }
40
41     public TypeDescriptor typecheck(SemanticAnalyzer sa) {
42         td = ReservedTypeDescriptor.INT;
43         return td;
44     }
45
46 }