about summary refs log tree commit diff
path: root/examples/19.pry
diff options
context:
space:
mode:
Diffstat (limited to 'examples/19.pry')
-rw-r--r--examples/19.pry33
1 files changed, 33 insertions, 0 deletions
diff --git a/examples/19.pry b/examples/19.pry
new file mode 100644
index 0000000..2ae1973
--- /dev/null
+++ b/examples/19.pry
@@ -0,0 +1,33 @@
+extern printf = (*i8, varargs) => void;
+extern malloc = (i64) => *void;
+extern free = (*void) => void;
+
+let main = () => i64 {
+	let buf = cast(*i8, malloc(sizeof(i8) * 13));
+	(*(buf+cast(*i8, 0))) = 'h';
+	(*(buf+cast(*i8, 1))) = 'e';
+	(*(buf+cast(*i8, 2))) = 'l';
+	(*(buf+cast(*i8, 3))) = 'l';
+	(*(buf+cast(*i8, 4))) = 'o';
+	(*(buf+cast(*i8, 5))) = ' ';
+	(*(buf+cast(*i8, 6))) = 'w';
+	(*(buf+cast(*i8, 7))) = 'o';
+	(*(buf+cast(*i8, 8))) = 'r';
+	(*(buf+cast(*i8, 9))) = 'l';
+	(*(buf+cast(*i8, 10))) = 'd';
+	(*(buf+cast(*i8, 11))) = '\n';
+	(*(buf+cast(*i8, 12))) = '\0';
+	printf("%s", buf);
+	free(cast(*void, buf));
+	return 0;
+};
+
+/*
+
+Expected stdout:
+
+hello world!
+
+Expected return: 0
+
+*/