A few modifications to the core.fr test set required by the PETSCII charset.

And some tests are commented out with \vf as VolksForth can't yet easily be
ANS-shimmed into providing EVALUATE and the WHILE - ELSE construct.
This commit is contained in:
Philip Zembrod 2020-06-21 15:23:22 +02:00
parent 2eb2620641
commit a32c1ece1d

View File

@ -621,15 +621,15 @@ T{ -1 1ST +! 1ST @ -> 0 }T
TESTING CHAR [CHAR] [ ] BL S" TESTING CHAR [CHAR] [ ] BL S"
T{ BL -> 20 }T T{ BL -> 20 }T
T{ CHAR X -> 58 }T T{ CHAR x -> 58 }T \ vf: s/X/x/
T{ CHAR HELLO -> 48 }T T{ CHAR hello -> 48 }T \ vf: s/HELLO/hello/
T{ : GC1 [CHAR] X ; -> }T T{ : GC1 [CHAR] x ; -> }T \ vf: s/X/x/
T{ : GC2 [CHAR] HELLO ; -> }T T{ : GC2 [CHAR] hello ; -> }T \ vf: s/HELLO/hello/
T{ GC1 -> 58 }T T{ GC1 -> 58 }T
T{ GC2 -> 48 }T T{ GC2 -> 48 }T
T{ : GC3 [ GC1 ] LITERAL ; -> }T T{ : GC3 [ GC1 ] LITERAL ; -> }T
T{ GC3 -> 58 }T T{ GC3 -> 58 }T
T{ : GC4 S" XY" ; -> }T T{ : GC4 S" xy" ; -> }T \ vf: s/XY/xy/
T{ GC4 SWAP DROP -> 2 }T T{ GC4 SWAP DROP -> 2 }T
T{ GC4 DROP DUP C@ SWAP CHAR+ C@ -> 58 59 }T T{ GC4 DROP DUP C@ SWAP CHAR+ C@ -> 58 59 }T
@ -684,13 +684,13 @@ T{ 3 GI4 -> 3 4 5 6 }T
T{ 5 GI4 -> 5 6 }T T{ 5 GI4 -> 5 6 }T
T{ 6 GI4 -> 6 7 }T T{ 6 GI4 -> 6 7 }T
T{ : GI5 BEGIN DUP 2 > \vf T{ : GI5 BEGIN DUP 2 >
WHILE DUP 5 < WHILE DUP 1+ REPEAT 123 ELSE 345 THEN ; -> }T \vf WHILE DUP 5 < WHILE DUP 1+ REPEAT 123 ELSE 345 THEN ; -> }T
T{ 1 GI5 -> 1 345 }T \vf T{ 1 GI5 -> 1 345 }T
T{ 2 GI5 -> 2 345 }T \vf T{ 2 GI5 -> 2 345 }T
T{ 3 GI5 -> 3 4 5 123 }T \vf T{ 3 GI5 -> 3 4 5 123 }T
T{ 4 GI5 -> 4 5 123 }T \vf T{ 4 GI5 -> 4 5 123 }T
T{ 5 GI5 -> 5 123 }T \vf T{ 5 GI5 -> 5 123 }T
T{ : GI6 ( N -- 0,1,..N ) DUP IF DUP >R 1- RECURSE R> THEN ; -> }T T{ : GI6 ( N -- 0,1,..N ) DUP IF DUP >R 1- RECURSE R> THEN ; -> }T
T{ 0 GI6 -> 0 }T T{ 0 GI6 -> 0 }T
@ -774,27 +774,27 @@ T{ W1 -> HERE 2 + }T
\ ------------------------------------------------------------------------ \ ------------------------------------------------------------------------
TESTING EVALUATE TESTING EVALUATE
: GE1 S" 123" ; IMMEDIATE \vf : GE1 S" 123" ; IMMEDIATE
: GE2 S" 123 1+" ; IMMEDIATE \vf : GE2 S" 123 1+" ; IMMEDIATE
: GE3 S" : GE4 345 ;" ; \vf : GE3 S" : GE4 345 ;" ;
: GE5 EVALUATE ; IMMEDIATE \vf : GE5 EVALUATE ; IMMEDIATE
T{ GE1 EVALUATE -> 123 }T ( TEST EVALUATE IN INTERP. STATE ) \vf T{ GE1 EVALUATE -> 123 }T ( TEST EVALUATE IN INTERP. STATE )
T{ GE2 EVALUATE -> 124 }T \vf T{ GE2 EVALUATE -> 124 }T
T{ GE3 EVALUATE -> }T \vf T{ GE3 EVALUATE -> }T
T{ GE4 -> 345 }T \vf T{ GE4 -> 345 }T
T{ : GE6 GE1 GE5 ; -> }T ( TEST EVALUATE IN COMPILE STATE ) \vf T{ : GE6 GE1 GE5 ; -> }T ( TEST EVALUATE IN COMPILE STATE )
T{ GE6 -> 123 }T \vf T{ GE6 -> 123 }T
T{ : GE7 GE2 GE5 ; -> }T \vf T{ : GE7 GE2 GE5 ; -> }T
T{ GE7 -> 124 }T \vf T{ GE7 -> 124 }T
\ ------------------------------------------------------------------------ \ ------------------------------------------------------------------------
TESTING SOURCE >IN WORD TESTING SOURCE >IN WORD
: GS1 S" SOURCE" 2DUP EVALUATE \vf : GS1 S" SOURCE" 2DUP EVALUATE
>R SWAP >R = R> R> = ; \vf >R SWAP >R = R> R> = ;
T{ GS1 -> <TRUE> <TRUE> }T \vf T{ GS1 -> <TRUE> <TRUE> }T
VARIABLE SCANS VARIABLE SCANS
: RESCAN? -1 SCANS +! SCANS @ IF 0 >IN ! THEN ; : RESCAN? -1 SCANS +! SCANS @ IF 0 >IN ! THEN ;
@ -803,8 +803,8 @@ T{ 2 SCANS !
345 RESCAN? 345 RESCAN?
-> 345 345 }T -> 345 345 }T
: GS2 5 SCANS ! S" 123 RESCAN?" EVALUATE ; \vf : GS2 5 SCANS ! S" 123 RESCAN?" EVALUATE ;
T{ GS2 -> 123 123 123 123 123 }T \vf T{ GS2 -> 123 123 123 123 123 }T
: GS3 WORD COUNT SWAP C@ ; : GS3 WORD COUNT SWAP C@ ;
T{ BL GS3 HELLO -> 5 CHAR H }T T{ BL GS3 HELLO -> 5 CHAR H }T
@ -832,7 +832,7 @@ TESTING <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL
R> DROP 2DROP <FALSE> \ LENGTHS MISMATCH R> DROP 2DROP <FALSE> \ LENGTHS MISMATCH
THEN ; THEN ;
: GP1 <# 41 HOLD 42 HOLD 0 0 #> S" BA" S= ; : GP1 <# 41 HOLD 42 HOLD 0 0 #> S" ba" S= ; \ vf: s/BA/ba/
T{ GP1 -> <TRUE> }T T{ GP1 -> <TRUE> }T
: GP2 <# -1 SIGN 0 SIGN -1 SIGN 0 0 #> S" --" S= ; : GP2 <# -1 SIGN 0 SIGN -1 SIGN 0 0 #> S" --" S= ;
@ -878,7 +878,7 @@ T{ GP6 -> <TRUE> }T
LOOP LOOP
MAX-BASE A DO MAX-BASE A DO
I 0 <# #S #> I 0 <# #S #>
1 = SWAP C@ 41 I A - + = AND AND 1 = SWAP C@ C1 I A - + = AND AND \ vf: s/41/C1/
LOOP LOOP
R> BASE ! ; R> BASE ! ;