Add packages/strings/strings.grnd
This commit is contained in:
85
packages/strings/strings.grnd
Normal file
85
packages/strings/strings.grnd
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
fun -char !findChar -string &str -char &char
|
||||||
|
set &idx 0
|
||||||
|
getstrsize $str &len
|
||||||
|
|
||||||
|
@loop
|
||||||
|
equal $idx $len &store
|
||||||
|
if $store %end
|
||||||
|
getstrcharat $str $idx &stridx
|
||||||
|
equal $stridx $char &store
|
||||||
|
if $store %return
|
||||||
|
add $idx 1 &idx
|
||||||
|
jump %loop
|
||||||
|
|
||||||
|
@return
|
||||||
|
return $idx
|
||||||
|
|
||||||
|
@end
|
||||||
|
endfun
|
||||||
|
|
||||||
|
fun -char !findCharInstance -string &str -char &char -int &instance
|
||||||
|
set &idx 0
|
||||||
|
getstrsize $str &len
|
||||||
|
|
||||||
|
@loop
|
||||||
|
equal $idx $len &store
|
||||||
|
if $store %end
|
||||||
|
getstrcharat $str $idx &stridx
|
||||||
|
equal $stridx $char &store
|
||||||
|
if $store %decrement
|
||||||
|
@increment
|
||||||
|
add $idx 1 &idx
|
||||||
|
jump %loop
|
||||||
|
|
||||||
|
@decrement
|
||||||
|
equal $instance 0 &store
|
||||||
|
if $store %return
|
||||||
|
subtract $instance 1 &instance
|
||||||
|
jump %increment
|
||||||
|
|
||||||
|
@return
|
||||||
|
return $idx
|
||||||
|
|
||||||
|
@end
|
||||||
|
endfun
|
||||||
|
|
||||||
|
fun -string !mid -string &str -int &idx -int &len
|
||||||
|
set &ans ""
|
||||||
|
lesser $idx 0 &store
|
||||||
|
if $store %end
|
||||||
|
@loop
|
||||||
|
getstrsize $str &store
|
||||||
|
equal $store $idx &store
|
||||||
|
if $store %end
|
||||||
|
getstrcharat $str $idx &store
|
||||||
|
add $ans $store &ans
|
||||||
|
add $idx 1 &idx
|
||||||
|
getstrsize $ans &store
|
||||||
|
equal $store $len &store
|
||||||
|
if $store %return
|
||||||
|
jump %loop
|
||||||
|
|
||||||
|
@return
|
||||||
|
return $ans
|
||||||
|
|
||||||
|
@end
|
||||||
|
endfun
|
||||||
|
|
||||||
|
fun -string !inBrackets -string &str -char &left -char &right -int &instance
|
||||||
|
# Get start idx
|
||||||
|
pusharg $str
|
||||||
|
pusharg $left
|
||||||
|
pusharg $instance
|
||||||
|
call !findCharInstance &store
|
||||||
|
stdlnout $store
|
||||||
|
endfun
|
||||||
|
|
||||||
|
fun -string !matchStart -string &str -string &instr
|
||||||
|
getstrsize $instr &store
|
||||||
|
pusharg $str
|
||||||
|
pusharg 0
|
||||||
|
pusharg $store
|
||||||
|
call !mid &store
|
||||||
|
equal $store $instr &store
|
||||||
|
return $store
|
||||||
|
endfun
|
Reference in New Issue
Block a user