--- gforth/test/ttester.fs 2007/11/02 12:44:49 1.7 +++ gforth/test/ttester.fs 2007/11/03 08:20:32 1.8 @@ -174,7 +174,7 @@ HAS-FLOATING-STACK [IF] : F-> ( ... -- ... ) FDEPTH DUP ACTUAL-FDEPTH ! START-FDEPTH @ > IF - FDEPTH START-FDEPTH @ DO ACTUAL-FRESULTS I FLOATS + F! LOOP + FDEPTH START-FDEPTH @ - 0 DO ACTUAL-FRESULTS I FLOATS + F! LOOP THEN ; : F} ( ... -- ... ) @@ -191,20 +191,19 @@ HAS-FLOATING-STACK [IF] THEN ; : F...}T ( -- ) - FDEPTH START-FDEPTH @ = 0= IF - S" NUMBER OF FLOAT RESULTS BEFORE AND AFTER '->' DOES NOT MATCH: " ERROR - THEN FCURSOR @ START-FDEPTH @ + ACTUAL-FDEPTH @ <> IF S" NUMBER OF FLOAT RESULTS BEFORE '->' DOES NOT MATCH ...}T SPRECIFICATION: " ERROR - THEN ; + ELSE FDEPTH START-FDEPTH @ = 0= IF + S" NUMBER OF FLOAT RESULTS BEFORE AND AFTER '->' DOES NOT MATCH: " ERROR + THEN THEN ; + : FTESTER ( R -- ) FDEPTH 0= ACTUAL-FDEPTH @ FCURSOR @ START-FDEPTH @ + 1+ < OR IF - S" NUMBER OF FLOAT RESULTS AFTER '->' BELOW ...}T SPECIFICATION: " ERROR EXIT - THEN - ACTUAL-FRESULTS FCURSOR @ FLOATS + F@ FCONF= 0= IF - S" INCORRECT FP RESULT: " ERROR - THEN + S" NUMBER OF FLOAT RESULTS AFTER '->' BELOW ...}T SPECIFICATION: " ERROR + ELSE ACTUAL-FRESULTS FCURSOR @ FLOATS + F@ FCONF= 0= IF + S" INCORRECT FP RESULT: " ERROR + THEN THEN 1 FCURSOR +! ; [ELSE] @@ -254,7 +253,7 @@ HAS-FLOATING-STACK [IF] : -> \ ( ... -- ) RECORD DEPTH AND CONTENT OF STACK. DEPTH DUP ACTUAL-DEPTH ! \ RECORD DEPTH START-DEPTH @ > IF \ IF THERE IS SOMETHING ON STACK - DEPTH START-DEPTH @ DO ACTUAL-RESULTS I CELLS + ! LOOP \ SAVE THEM + DEPTH START-DEPTH @ - 0 DO ACTUAL-RESULTS I CELLS + ! LOOP \ SAVE THEM THEN F-> ; @@ -273,21 +272,19 @@ HAS-FLOATING-STACK [IF] F} ; : ...}T ( -- ) - DEPTH START-DEPTH @ = 0= IF - S" NUMBER OF CELL RESULTS BEFORE AND AFTER '->' DOES NOT MATCH: " ERROR - THEN XCURSOR @ START-DEPTH @ + ACTUAL-DEPTH @ <> IF S" NUMBER OF CELL RESULTS BEFORE '->' DOES NOT MATCH ...}T SPECIFICATION: " ERROR - THEN + ELSE DEPTH START-DEPTH @ = 0= IF + S" NUMBER OF CELL RESULTS BEFORE AND AFTER '->' DOES NOT MATCH: " ERROR + THEN THEN F...}T ; : XTESTER ( X -- ) DEPTH 0= ACTUAL-DEPTH @ XCURSOR @ START-DEPTH @ + 1+ < OR IF S" NUMBER OF CELL RESULTS AFTER '->' BELOW ...}T SPECIFICATION: " ERROR EXIT - THEN - ACTUAL-RESULTS XCURSOR @ CELLS + @ <> IF - S" INCORRECT CELL RESULT: " ERROR - THEN + ELSE ACTUAL-RESULTS XCURSOR @ CELLS + @ <> IF + S" INCORRECT CELL RESULT: " ERROR + THEN THEN 1 XCURSOR +! ; : X}T XTESTER ...}T ;