assert.fs (lib) ☞
The assert.fs library contains words to add assertions to your code.
Usage
Simply write assertions in your code like this:
require assert.fs
1 assert-level! \ this is the default
: main
assert( depth 0= )
\ other code goes here...
assert( 1 2 + 3 = ) ;
The code after the word assert( should push a flag to the parameter stack that
indicates whether the assertion succeeded. The word ) consumes this flag and
displays an error on false.
Make sure to not modify the stack in any other way between the assert( and )
words.
Assertion levels
The default assert-level is set to 1, which means that assertions defined
with assert0( and assert1( are enabled. Other assertions (at level 2 and 3)
will be skipped at compile-time and are not included in your final ROM.
The assert level can be set by calling assert-level! at toplevel. This value
can not be modified at run-time.
Word Index
assert-level! ( u – )
Set the assertion level. Valid levels are 0, 1, 2, 3 (default is 1).
Toplevel only, can not be used at run-time.
assert( ( – )
Alias for assert1(, the default assert.
assert0( ( – )
For important assertions that are always enabled.
assert1( ( – )
For regular assertions that are enabled by default.
assert2( ( – )
For debugging assertions that can be enabled manually.
assert3( ( – )
For extra slow assertions that can be enabled for thorough debugging.
) ( f – )
Ends the assertion. This word is doing the actual checking at run-time.