be7eb889ef9f6dbdeb35b351e77bb34e7ce360d7
[repair.git] / Repair / RepairCompiler / MCC / IR / BooleanLiteralExpr.java
1 package MCC.IR;
2
3 import MCC.State;
4
5 public class BooleanLiteralExpr extends LiteralExpr {
6     
7     boolean value;
8     
9     public BooleanLiteralExpr(boolean value) {
10         this.value = value;
11         td = ReservedTypeDescriptor.INT;
12     }
13
14     public abstract boolean equals(Map remap, Expr e) {
15         if (e==null)
16             return false;
17         else if (!e instanceof BooleanLiteralExpr)
18             return false;
19         else return (((BooleanLiteralExpr)e).value==value);
20     }
21
22     public boolean getValue() {
23         return value;
24     }
25
26     public void generate(CodeWriter writer, VarDescriptor dest) {
27         writer.outputline("int " + dest.getSafeSymbol() + " = " + (value ? "1" : "0") + ";");
28     }
29
30     public void prettyPrint(PrettyPrinter pp) {
31         pp.output(value ? "true" : "false");
32     }
33
34     public TypeDescriptor typecheck(SemanticAnalyzer sa) {
35         td = ReservedTypeDescriptor.INT;
36         return td;
37     }
38
39 }