function psi\div(int $numerator, int $denominator) : array {
let numerator = intval($numerator);
let denominator = intval($denominator);
+ pre_assert denominator != 0;
return to_array(div, to_int(quot), to_int(rem));
}
function psi\ldiv(int $numerator, int $denominator) : array {
let numerator = intval($numerator);
let denominator = intval($denominator);
+ pre_assert denominator != 0;
return to_array(ldiv, to_int(quot), to_int(rem));
}
function psi\lldiv(int $numerator, int $denominator) : array {
let numerator = intval($numerator);
let denominator = intval($denominator);
+ pre_assert denominator != 0;
return to_array(lldiv, to_int(quot), to_int(rem));
}
let endptr = &NULL;
return to_float(strtold);
set $end = to_string(*endptr);
-}
\ No newline at end of file
+}
+
+function psi\free(object $memory) : void {
+ let ptr = objval($memory);
+ return void(free);
+}
+
+function psi\malloc(int $size) : object {
+ let size = intval($size);
+ pre_assert size >= 0;
+ return to_object(malloc);
+}
+
+function psi\calloc(int $nmemb, int $size) : object {
+ let nmemb = intval($nmemb);
+ let size = intval($size);
+ pre_assert size >= 0;
+ return to_object(calloc);
+}
+
+function psi\realloc(object $obj, int $size) : object {
+ let ptr = objval($obj);
+ let size = intval($size);
+ pre_assert size >= 0;
+ return to_object(realloc);
+}