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