Files

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