90 lines
2.2 KiB
Plaintext
90 lines
2.2 KiB
Plaintext
public trim(value: Text) (result: Text) {
|
|
result = dever.system.text_trim(value)
|
|
}
|
|
|
|
public lower(value: Text) (result: Text) {
|
|
result = dever.system.text_lower(value)
|
|
}
|
|
|
|
public upper(value: Text) (result: Text) {
|
|
result = dever.system.text_upper(value)
|
|
}
|
|
|
|
public codepoint(value: Text) (result: Int?) {
|
|
result = dever.system.text_codepoint(value)
|
|
}
|
|
|
|
public from_codepoint(value: Int) (result: Text?) {
|
|
result = dever.system.text_from_codepoint(value)
|
|
}
|
|
|
|
public at(value: Text, index: Int) (result: Text?) {
|
|
result = dever.system.text_at(value, index)
|
|
}
|
|
|
|
public slice(value: Text, start: Int, end: Int) (result: Text?) {
|
|
result = dever.system.text_slice(value, start, end)
|
|
}
|
|
|
|
public index_of(value: Text, pattern: Text) (result: Int?) {
|
|
result = dever.system.text_index_of(value, pattern)
|
|
}
|
|
|
|
public contains(value: Text, pattern: Text) (result: Bool) {
|
|
result = dever.system.text_contains(value, pattern)
|
|
}
|
|
|
|
public starts_with(value: Text, prefix: Text) (result: Bool) {
|
|
result = dever.system.text_starts_with(value, prefix)
|
|
}
|
|
|
|
public ends_with(value: Text, suffix: Text) (result: Bool) {
|
|
result = dever.system.text_ends_with(value, suffix)
|
|
}
|
|
|
|
public split(value: Text, separator: Text) (result: List<Text>) {
|
|
result = dever.system.text_split(value, separator)
|
|
}
|
|
|
|
public replace(value: Text, pattern: Text, replacement: Text) (result: Text) {
|
|
result = dever.system.text_replace(value, pattern, replacement)
|
|
}
|
|
|
|
public is_empty(value: Text) (result: Bool) {
|
|
result = length(value) == 0
|
|
}
|
|
|
|
type JoinState {
|
|
text: Text
|
|
separator: Text
|
|
first: Bool
|
|
}
|
|
|
|
public join(values: List<Text>, separator: Text) (result: Text) {
|
|
state = reduce(
|
|
join_piece,
|
|
values,
|
|
JoinState {
|
|
text = ""
|
|
separator = separator
|
|
first = true
|
|
}
|
|
)
|
|
result = state.text
|
|
}
|
|
|
|
join_piece(value: Text, state: JoinState) (result: JoinState) {
|
|
result = join_next(state.first, value, state)
|
|
}
|
|
|
|
join_next(first: true, value: Text, state: JoinState) (result: JoinState) {
|
|
result = state
|
|
result.text = value
|
|
result.first = false
|
|
}
|
|
|
|
join_next(first: false, value: Text, state: JoinState) (result: JoinState) {
|
|
result = state
|
|
result.text = state.text + state.separator + value
|
|
}
|