Initial commit: Oraset programming language with documentation
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
!! String manipulation functions module
|
||||
|
||||
import math
|
||||
|
||||
def string_length(s) {
|
||||
return len(s);
|
||||
}
|
||||
|
||||
def string_reverse(s) {
|
||||
let result = ``;
|
||||
let i = len(s);
|
||||
while (i > 0) {
|
||||
i = i - 1;
|
||||
result = result + substring(s, i, i + 1);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
def string_startsWith(s, prefix) {
|
||||
if (len(prefix) > len(s)) {
|
||||
return 0;
|
||||
}
|
||||
return substring(s, 0, len(prefix)) == prefix ? 1 : 0;
|
||||
}
|
||||
|
||||
def string_endsWith(s, suffix) {
|
||||
if (len(suffix) > len(s)) {
|
||||
return 0;
|
||||
}
|
||||
let start = len(s) - len(suffix);
|
||||
return substring(s, start, len(s)) == suffix ? 1 : 0;
|
||||
}
|
||||
|
||||
def string_contains(s, substr) {
|
||||
if (len(substr) == 0) {
|
||||
return 1;
|
||||
}
|
||||
if (len(substr) > len(s)) {
|
||||
return 0;
|
||||
}
|
||||
let i = 0;
|
||||
while (i <= len(s) - len(substr)) {
|
||||
if (substring(s, i, i + len(substr)) == substr) {
|
||||
return 1;
|
||||
}
|
||||
i = i + 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
def string_replace(s, old, new) {
|
||||
if (len(old) == 0) {
|
||||
return s;
|
||||
}
|
||||
let result = ``;
|
||||
let i = 0;
|
||||
while (i < len(s)) {
|
||||
if (substring(s, i, i + len(old)) == old) {
|
||||
result = result + new;
|
||||
i = i + len(old);
|
||||
} else {
|
||||
result = result + substring(s, i, i + 1);
|
||||
i = i + 1;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
def string_toUpperCase(s) {
|
||||
return upper(s);
|
||||
}
|
||||
|
||||
def string_toLowerCase(s) {
|
||||
return lower(s);
|
||||
}
|
||||
|
||||
def string_trim(s) {
|
||||
let start = 0;
|
||||
while (start < len(s) && (substring(s, start, start + 1) == ` ` || substring(s, start, start + 1) == `\t` || substring(s, start, start + 1) == `\n` || substring(s, start, start + 1) == `\r`)) {
|
||||
start = start + 1;
|
||||
}
|
||||
let end = len(s) - 1;
|
||||
while (end >= start && (substring(s, end, end + 1) == ` ` || substring(s, end, end + 1) == `\t` || substring(s, end, end + 1) == `\n` || substring(s, end, end + 1) == `\r`)) {
|
||||
end = end - 1;
|
||||
}
|
||||
if (start > end) {
|
||||
return ``;
|
||||
}
|
||||
return substring(s, start, end + 1);
|
||||
}
|
||||
|
||||
def string_split(s, delimiter) {
|
||||
// This is a placeholder for future implementation
|
||||
// In a real implementation, we would return an array
|
||||
return `split not implemented yet`;
|
||||
}
|
||||
Reference in New Issue
Block a user