aboutsummaryrefslogtreecommitdiff
path: root/examples/libc.hff
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2022-08-14 11:16:03 +0200
committerlemon <lsof@mailbox.org>2022-08-14 11:16:03 +0200
commit0d1e125832d0fd8ca31c5f782e7c3db774ae5a02 (patch)
treee4622f75a8307d8ee1970f8bd6cc92766582f0ba /examples/libc.hff
parentc129f77ad724aa940b53a125de0e1e4de0ca7240 (diff)
woa
Diffstat (limited to 'examples/libc.hff')
-rw-r--r--examples/libc.hff32
1 files changed, 32 insertions, 0 deletions
diff --git a/examples/libc.hff b/examples/libc.hff
new file mode 100644
index 0000000..488a495
--- /dev/null
+++ b/examples/libc.hff
@@ -0,0 +1,32 @@
+// stdio.h
+struct FILE;
+extern static stdin *FILE,
+ stdout *FILE,
+ stderr *FILE;
+extern fn printf(fmt *const u8, ...) int;
+extern fn fprintf(fp *FILE, fmt *const u8, ...) int;
+extern fn sprintf(*u8, fmt *const u8, ...) int;
+extern fn snprintf(*u8, usize, fmt *const u8, ...) int;
+extern fn fopen(path *const u8, mode *const u8) *FILE;
+extern fn fclose(*FILE) int;
+extern fn fgetc(*FILE) int;
+extern fn fputc(int, *FILE) int;
+def EOF = -1;
+
+// stdlib.h
+extern fn abort() void;
+extern fn exit(c int) void;
+extern fn perror(s *const u8) void;
+extern fn malloc(n usize) *void;
+extern fn calloc(n usize, m usize) *void;
+extern fn realloc(p *void, n usize) *void;
+extern fn free(p *void) void;
+
+// string.h
+extern fn strlen(s *const u8) usize;
+extern fn strcmp(a *const u8, b *const u8) int;
+extern fn memcpy(*void, *const void, usize) *void;
+extern fn strcpy(*u8, *const u8) *u8;
+
+//ctype.h
+extern fn tolower(int) int;