Annotation of gforth/assert.fs, revision 1.1
1.1 ! anton 1: \ assertions
! 2:
! 3: \ !! factor out line number printing, share with debugging.fs
! 4:
! 5: variable assert-level \ all assertions above this level are turned off
! 6: 1 assert-level !
! 7:
! 8: : assertn ( n -- )
! 9: assert-level @ >
! 10: if
! 11: POSTPONE (
! 12: then ;
! 13:
! 14: : assert0( ( -- )
! 15: 0 assertn ; immediate
! 16: : assert1( ( -- )
! 17: 1 assertn ; immediate
! 18: : assert2( ( -- )
! 19: 2 assertn ; immediate
! 20: : assert3( ( -- )
! 21: 3 assertn ; immediate
! 22: : assert( ( -- )
! 23: POSTPONE assert1( ; immediate
! 24:
! 25: : (endassert) ( flag -- )
! 26: \ three inline arguments
! 27: if
! 28: r> 3 cells + >r EXIT
! 29: else
! 30: r>
! 31: dup 2@ type ." :" cell+ cell+
! 32: @ 0 .r ." : failed assertion"
! 33: true abort" assertion failed" \ !! or use a new throw code?
! 34: then ;
! 35:
! 36: : ) ( -- )
! 37: POSTPONE (endassert) loadfilename 2@ 2, loadline @ , ; immediate
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>