public Void VisitVarActualParameter(VarActualParameter ast, FormalParameter arg) { var actualType = ast.Vname.Visit(this); if (!ast.Vname.IsVariable) { ReportError("actual parameter is not a variable", ast.Vname); } else if (arg is VarFormalParameter) { var parameter = (VarFormalParameter)arg; CheckAndReportError(actualType.Equals(parameter.Type), "wrong type for var actual parameter", ast.Vname); } else { ReportError("var actual parameter not expected here", ast.Vname); } return(null); }
public int VisitVarActualParameter(VarActualParameter ast, Frame frame) { EncodeFetchAddress(ast.Vname, frame); return(Machine.AddressSize); }