forth/cat.fs

36 lines
455 B
Forth
Executable File

\ cat.fs - String concatenation
variable str
: cat { a1 u1 a2 u2 -- a3 u1+u2 }
here str !
u1 u2 + chars allot
u1 0 u+do
a1 i + @
str i + !
loop
u2 0 u+do
a2 i + @
str u1 + i + !
loop
str u1 u2 +
;
: 3cat { a1 u1 a2 u2 a3 u3 -- a4 u1+u2+u3 }
here str !
u1 u2 u3 + + chars allot
u1 0 u+do
a1 i + @
str i + !
loop
u2 0 u+do
a2 i + @
str u1 i + + !
loop
u3 0 u+do
a3 i + @
str u1 u2 i + + + !
loop
str u1 u2 u3 + +
;