5 public class VarExpr extends Expr {
8 VarDescriptor vd = null;
10 public VarExpr(String varname) {
11 this.varname = varname;
14 public Set getRequiredDescriptors() {
18 public void generate(CodeWriter writer, VarDescriptor dest) {
19 writer.outputline(vd.getType().getGenerateType().getSafeSymbol() + " " + dest.getSafeSymbol() +
20 " = (" + vd.getType().getGenerateType().getSafeSymbol() + ") " + vd.getSafeSymbol() + ";");
23 public void prettyPrint(PrettyPrinter pp) {
27 public TypeDescriptor typecheck(SemanticAnalyzer sa) {
28 vd = (VarDescriptor) sa.getSymbolTable().get(varname);
31 System.out.println(varname);
32 sa.getErrorReporter().report(null, "Undefined variable '" + varname + "'");
36 assert vd.getType() != null;
38 this.td = vd.getType();