aboutsummaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
Diffstat (limited to 'std')
-rw-r--r--std/stdlib.c8
-rw-r--r--std/stdlib.sloth2
-rw-r--r--std/stdmath.c11
-rw-r--r--std/stdmath.sloth2
4 files changed, 22 insertions, 1 deletions
diff --git a/std/stdlib.c b/std/stdlib.c
index b50c0c5..f8df9e8 100644
--- a/std/stdlib.c
+++ b/std/stdlib.c
@@ -3,3 +3,11 @@
void wait(long long x) {
sleep(x);
}
+
+int len(char *str) {
+ return strlen(str);
+}
+
+char charAt(char *str, int) {
+ return str[int];
+}
diff --git a/std/stdlib.sloth b/std/stdlib.sloth
index 7b6e2f9..36f3879 100644
--- a/std/stdlib.sloth
+++ b/std/stdlib.sloth
@@ -1,5 +1,7 @@
foreign fn wait(x: Int) Void;
foreign fn print(str: String) Void;
+foreign fn len(str: String) Int;
+foreign fn charAt(str: String) Char;
fn termpos(x: int, y: int) Void {
print("\x1b[");
diff --git a/std/stdmath.c b/std/stdmath.c
new file mode 100644
index 0000000..c9a91c3
--- /dev/null
+++ b/std/stdmath.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+int randGen(int min, int max) {
+ time_t t;
+
+ srand((unsigned) time(&t));
+
+ return rand() % (max - min + 1) + min;
+}
diff --git a/std/stdmath.sloth b/std/stdmath.sloth
index ebf9a7c..0f967eb 100644
--- a/std/stdmath.sloth
+++ b/std/stdmath.sloth
@@ -1,4 +1,4 @@
-foreign fn rand() Int;
+foreign fn randGen(min: Int, max: Int) Int;
fn abs(x: Int) Int {
if x < 0 {