Fix auto.term in history
[pforth] / fth / t_strings.fth
CommitLineData
bb6b2dcd 1\ @(#) t_strings.fth 97/12/10 1.1\r
2\ Test ANS Forth String Word Set\r
3\\r
4\ Copyright 1994 3DO, Phil Burk\r
5\r
6include? }T{ t_tools.fth\r
7\r
8marker task-t_string.fth\r
9\r
10decimal\r
11\r
12test{\r
13\r
14echo off\r
15\r
16\ ==========================================================\r
17\ test is.ok?\r
18T{ 1 2 3 }T{ 1 2 3 }T\r
19\r
20: STR1 S" Hello " ;\r
21: STR2 S" Hello World" ;\r
22: STR3 S" " ;\r
23\r
24\ ----------------------------------------------------- -TRAILING\r
25T{ STR1 -TRAILING }T{ STR1 DROP 5 }T\r
26T{ STR2 -TRAILING }T{ STR2 }T\r
27T{ STR3 -TRAILING }T{ STR3 }T\r
28\r
29\ ----------------------------------------------------- /STRING\r
30T{ STR2 6 /STRING }T{ STR2 DROP 6 CHARS + STR2 NIP 6 - }T\r
31\r
32\r
33\ ----------------------------------------------------- BLANK\r
34: T.COMMA.SEQ ( n -- , lay down N sequential bytes )\r
35 0 ?DO I C, LOOP\r
36;\r
37CREATE T-BLANK-DATA 64 T.COMMA.SEQ\r
38T{ T-BLANK-DATA 8 + C@ }T{ 8 }T\r
39T-BLANK-DATA 7 + 3 BLANK\r
40T{ T-BLANK-DATA 6 + C@ }T{ 6 }T\r
41T{ T-BLANK-DATA 7 + C@ }T{ BL }T\r
42T{ T-BLANK-DATA 8 + C@ }T{ BL }T\r
43T{ T-BLANK-DATA 9 + C@ }T{ BL }T\r
44T{ T-BLANK-DATA 10 + C@ }T{ 10 }T\r
45FORGET T.COMMA.SEQ\r
46\r
47\ ----------------------------------------------------- CMOVE\r
48: T.COMMA.SEQ ( n -- , lay down N sequential bytes )\r
49 0 ?DO I C, LOOP\r
50;\r
51CREATE T-BLANK-DATA 64 T.COMMA.SEQ\r
52T-BLANK-DATA 7 + T-BLANK-DATA 6 + 3 CMOVE\r
53T{ T-BLANK-DATA 5 + C@ }T{ 5 }T\r
54T{ T-BLANK-DATA 6 + C@ }T{ 7 }T\r
55T{ T-BLANK-DATA 7 + C@ }T{ 8 }T\r
56T{ T-BLANK-DATA 8 + C@ }T{ 9 }T\r
57T{ T-BLANK-DATA 9 + C@ }T{ 9 }T\r
58FORGET T.COMMA.SEQ\r
59\r
60\ ----------------------------------------------------- CMOVE>\r
61: T.COMMA.SEQ ( n -- , lay down N sequential bytes )\r
62 0 ?DO I C, LOOP\r
63;\r
64CREATE T-BLANK-DATA 64 T.COMMA.SEQ\r
65T{ T-BLANK-DATA 6 + T-BLANK-DATA 7 + 3 CMOVE>\r
66T{ T-BLANK-DATA 5 + C@ }T{ 5 }T\r
67T{ T-BLANK-DATA 6 + C@ }T{ 6 }T\r
68T{ T-BLANK-DATA 7 + C@ }T{ 6 }T\r
69T{ T-BLANK-DATA 8 + C@ }T{ 7 }T\r
70T{ T-BLANK-DATA 9 + C@ }T{ 8 }T\r
71T{ T-BLANK-DATA 10 + C@ }T{ 10 }T\r
72FORGET T.COMMA.SEQ\r
73\r
74\ ----------------------------------------------------- COMPARE\r
75T{ : T.COMPARE.1 S" abcd" S" abcd" compare ; t.compare.1 }T{ 0 }T\r
76T{ : T.COMPARE.2 S" abcd" S" abcde" compare ; t.compare.2 }T{ -1 }T\r
77T{ : T.COMPARE.3 S" abcdef" S" abcde" compare ; t.compare.3 }T{ 1 }T\r
78T{ : T.COMPARE.4 S" abGd" S" abcde" compare ; t.compare.4 }T{ -1 }T\r
79T{ : T.COMPARE.5 S" abcd" S" aXcde" compare ; t.compare.5 }T{ 1 }T\r
80T{ : T.COMPARE.6 S" abGd" S" abcd" compare ; t.compare.6 }T{ -1 }T\r
81T{ : T.COMPARE.7 S" World" S" World" compare ; t.compare.7 }T{ 0 }T\r
82FORGET T.COMPARE.1\r
83\r
84\ ----------------------------------------------------- SEARCH\r
85: STR-SEARCH S" ABCDefghIJKL" ;\r
86T{ : T.SEARCH.1 STR-SEARCH S" ABCD" SEARCH ; T.SEARCH.1 }T{ STR-SEARCH TRUE }T\r
87T{ : T.SEARCH.2 STR-SEARCH S" efg" SEARCH ; T.SEARCH.2 }T{\r
88 STR-SEARCH 4 - SWAP 4 CHARS + SWAP TRUE }T\r
89T{ : T.SEARCH.3 STR-SEARCH S" IJKL" SEARCH ; T.SEARCH.3 }T{\r
90 STR-SEARCH DROP 8 CHARS + 4 TRUE }T\r
91T{ : T.SEARCH.4 STR-SEARCH STR-SEARCH SEARCH ; T.SEARCH.4 }T{\r
92 STR-SEARCH TRUE }T\r
93\r
94T{ : T.SEARCH.5 STR-SEARCH S" CDex" SEARCH ; T.SEARCH.5 }T{\r
95 STR-SEARCH FALSE }T\r
96T{ : T.SEARCH.6 STR-SEARCH S" KLM" SEARCH ; T.SEARCH.6 }T{\r
97 STR-SEARCH FALSE }T\r
98FORGET STR-SEARCH\r
99\r
100\ ----------------------------------------------------- SLITERAL\r
101CREATE FAKE-STRING CHAR H C, CHAR e C, CHAR l C, CHAR l C, CHAR o C, \r
102ALIGN\r
103T{ : T.SLITERAL.1 [ FAKE-STRING 5 ] SLITERAL ; T.SLITERAL.1 FAKE-STRING 5 COMPARE\r
104 }T{ 0 }T\r
105 \r
106}test\r