added 'rfind'

This commit is contained in:
IgorCielniak
2026-03-25 11:12:32 +01:00
parent ab613e644a
commit d639c63fd3

View File

@@ -536,6 +536,7 @@ word contains
end 0 nip nip nip nip end 0 nip nip nip nip
end end
# find the first occurence of a string inside another string, returns the index
# find [*, addr, len, addr | len] -> [* | index] # find [*, addr, len, addr | len] -> [* | index]
word find word find
0 >r 2 pick for 0 >r 2 pick for
@@ -543,3 +544,13 @@ word find
>r >r >r 1 + r> r> r> rswap r> 1 + >r rswap >r >r >r 1 + r> r> r> rswap r> 1 + >r rswap
end 0 nip nip nip nip end 0 nip nip nip nip
end end
# find the last occurence of a string inside another string, returns the index
# rfind [*, addr, len, addr | len] -> [* | index]
word rfind
>r >r dup >r + 1 - r> r> r>
2 pick 1 - >r 2 pick for
4dup strcmp 1 == if rswap r> nip nip nip nip rdrop ret end
>r >r >r 1 - r> r> r> rswap r> 1 - >r rswap
end 0 nip nip nip nip
end