public void Visit(Return rreturn) { _sb.Append("return"); if (rreturn.Exp != null) { _sb.Append(" "); rreturn.Exp.Accept(this); } _sb.Append(";"); }
public void Visit(Return rreturn) { if (rreturn.Exp != null) { rreturn.Exp.Accept(this); rreturn.SmclType = rreturn.Exp.SmclType; } else { rreturn.SmclType = VoidType; } SmclType expectedRetType = _env.VisitPartEnv.Functions[_env.VisitFunName].GetReturn(); MustBe(rreturn.SmclType, expectedRetType, "return a " + rreturn.SmclType + " in a " + expectedRetType + " function"); }