March 2014 update

This commit is contained in:
Ingy döt Net 2014-04-02 16:56:35 +00:00
parent 09687c4926
commit a25938f123
1846 changed files with 21876 additions and 5203 deletions

View file

@ -0,0 +1,4 @@
DIVIDE foo BY bar GIVING foobar
ON SIZE ERROR
DISPLAY "Division by zero detected!"
END-DIVIDE

View file

@ -28,14 +28,13 @@ if (isIntegral!T || isFloatingPoint!T) {
}
}
return format("%5s %s", format("%1.1g", cast(real)result), msg);
return format("%5s %s", format("%1.1g", real(result)), msg);
}
void main() {
writeln("Division with check:");
writefln("int 1/ 0: %s", divCheck(1, 0));
writefln("ubyte 1/ 0: %s",
divCheck(cast(ubyte)1, cast(ubyte)0));
writefln("ubyte 1/ 0: %s", divCheck(ubyte(1), ubyte(0)));
writefln("real 1/ 0: %s", divCheck(1.0L, 0.0L));
writefln("real -1/ 0: %s", divCheck(-1.0L, 0.0L));
writefln("real 0/ 0: %s", divCheck(0.0L, 0.0L));

View file

@ -0,0 +1 @@
1/0; # Here is the default behavior.

View file

@ -0,0 +1,6 @@
NumericEventHandler( ':-division_by_zero'
= proc() infinity; end proc ):
1/0;
NumericStatus(':-division_by_zero'); # We may check the status flag

View file

@ -0,0 +1,10 @@
NumericEventHandler( ':-division_by_zero'
= proc()
WARNING("division by zero");
NumericStatus(':-division_by_zero'=false):
infinity;
end proc ):
1/0;
NumericStatus(':-division_by_zero');