09d37e40aec7faec46d74b40f4081a2613795e39
[repair.git] / Repair / RepairCompiler / MCC / IR / SizeofExpr.java
1 package MCC.IR;
2
3 import java.util.*;
4
5 public class SizeofExpr extends Expr {
6
7     SetExpr setexpr;
8
9     public SizeofExpr(SetExpr setexpr) {
10         if (setexpr == null) {
11             throw new NullPointerException();
12         }
13
14         this.setexpr = setexpr;
15     }
16
17     public SetExpr getSetExpr() {
18         return setexpr;
19     }
20
21     public Set getRequiredDescriptors() {
22         return setexpr.getRequiredDescriptors();
23     }
24
25     public void generate(CodeWriter writer, VarDescriptor dest) {
26         setexpr.generate_size(writer, dest);
27     }
28
29     public void prettyPrint(PrettyPrinter pp) {
30         pp.output("sizeof(");
31         setexpr.prettyPrint(pp);
32         pp.output(")");
33     }
34
35     public TypeDescriptor typecheck(SemanticAnalyzer sa) {
36         this.td = ReservedTypeDescriptor.INT;
37         return this.td;        
38     }
39
40     public Set getInversedRelations() {
41         return setexpr.getInversedRelations();
42     }
43         
44 }