77 lines
1.3 KiB
Plaintext
77 lines
1.3 KiB
Plaintext
# Claro Standard Library: text
|
|
# Use: IMPORT "lib/text.claro" AS text
|
|
EXPORT ALL
|
|
|
|
TEACH lower TAKES s
|
|
RETURN LOWER s
|
|
LEARNED
|
|
|
|
TEACH upper TAKES s
|
|
RETURN UPPER s
|
|
LEARNED
|
|
|
|
TEACH trim TAKES s
|
|
RETURN TRIM s
|
|
LEARNED
|
|
|
|
TEACH contains TAKES s, part
|
|
FIND part IN s AS pos
|
|
IF pos = 0
|
|
RETURN NO
|
|
ELSE
|
|
RETURN YES
|
|
ENDIF
|
|
LEARNED
|
|
|
|
TEACH startswith TAKES s, prefix
|
|
FIND prefix IN s AS pos
|
|
IF pos = 1
|
|
RETURN YES
|
|
ELSE
|
|
RETURN NO
|
|
ENDIF
|
|
LEARNED
|
|
|
|
TEACH endswith TAKES s, suffix
|
|
LENGTH s AS ls
|
|
LENGTH suffix AS lp
|
|
IF lp = 0
|
|
RETURN YES
|
|
ENDIF
|
|
IF lp > ls
|
|
RETURN NO
|
|
ENDIF
|
|
SUBSTR s FROM (ls - lp + 1) LEN lp AS tail
|
|
IF tail = suffix
|
|
RETURN YES
|
|
ELSE
|
|
RETURN NO
|
|
ENDIF
|
|
LEARNED
|
|
|
|
TEACH replace TAKES s, old, new
|
|
FIND old IN s AS pos
|
|
IF pos = 0
|
|
RETURN s
|
|
ENDIF
|
|
LENGTH old AS lo
|
|
SUBSTR s FROM 1 LEN (pos - 1) AS left
|
|
SUBSTR s FROM (pos + lo) AS right
|
|
RETURN left + new + right
|
|
LEARNED
|
|
|
|
TEACH split2 TAKES s, sep
|
|
SET out TO LIST
|
|
FIND sep IN s AS pos
|
|
IF pos = 0
|
|
ADD s TO out
|
|
RETURN out
|
|
ENDIF
|
|
LENGTH sep AS ls
|
|
SUBSTR s FROM 1 LEN (pos - 1) AS a
|
|
SUBSTR s FROM (pos + ls) AS b
|
|
ADD a TO out
|
|
ADD b TO out
|
|
RETURN out
|
|
LEARNED
|