model and checks
[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 Set getRequiredDescriptors() {
18         return setexpr.getRequiredDescriptors();
19     }
20
21     public void generate(CodeWriter writer, VarDescriptor dest) {
22         setexpr.generate_size(writer, dest);
23     }
24
25     public void prettyPrint(PrettyPrinter pp) {
26         pp.output("sizeof(");
27         setexpr.prettyPrint(pp);
28         pp.output(")");
29     }
30
31     public TypeDescriptor typecheck(SemanticAnalyzer sa) {
32         this.td = ReservedTypeDescriptor.INT;
33         return this.td;        
34     }
35
36         
37 }