REPL character substitution now working again.
[forth.jl.git] / src / lib_11_extensions.4th
1 \ Non-core extension words
2
3 CREATE CODEBUFFER 1000 CELLS ALLOT
4 VARIABLE >CB
5 0 >CB !
6
7 : PARSE-CODE
8     0 >CB !
9
10     BEGIN
11         >IN @ #IB @ >= IF   \ End of IB?
12             '\n' CODEBUFFER >CB @ + !
13             1 >CB +!
14             SOURCE-ID 0= IF CR THEN
15             QUERY-INPUT     \ Get next line
16         ELSE
17             BL CODEBUFFER >CB @ + !
18             1 >CB +!
19         THEN
20
21         BL WORD COUNT
22         2DUP ( addr n addr n)
23         PAD SWAP CMOVE
24
25         PAD OVER TOLOWER
26         PAD OVER s" end-code" COMPARE
27         0= IF
28             2DROP EXIT
29         THEN
30
31         dup -rot ( n addr n )
32         CODEBUFFER >CB @ + SWAP CMOVE
33         >CB +!
34     AGAIN
35 ;
36
37 : CODE
38     BL WORD HEADER
39     PARSE-CODE
40     CODEBUFFER >CB @ CREATE-PRIM ,
41 ;