aboutsummaryrefslogtreecommitdiff
path: root/code/main.felan
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-23 23:58:30 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-23 23:58:30 +0330
commit3c9aea642e3b2f4083705f1cd42fa911d35ee696 (patch)
treed990b2ffdb63161a9aef7cce20e5714461f86085 /code/main.felan
parent093c3bece426686b175db9ddaecd6abc8908fd87 (diff)
add way to call C functions
Diffstat (limited to 'code/main.felan')
-rw-r--r--code/main.felan74
1 files changed, 8 insertions, 66 deletions
diff --git a/code/main.felan b/code/main.felan
index c2e573c..dffcf15 100644
--- a/code/main.felan
+++ b/code/main.felan
@@ -1,69 +1,11 @@
-@import("basic.felan");
-
-print :: (comptime t:type,v:t)->void{
- if @type_of(v) == u8
- @putc(v);
- else
- @putc('n');
-};
-
-fun0 :: () -> void {
- i := 0;
- while true {
- i += 1;
- if i == 7
- return;
- else if i % 2 == 0
- continue;
- else if i == 8
- break;
- print(u8,@cast(i,u8)+'0');
- print(u16,@cast(@cast(i,u8) + '0',u16));
- }
-};
-
-fun1 :: ()->void{
- a :[20]u8 = undefined;
- a[0] = '2';
- b := a;
- @putc(a[0]);
- @putc(b[0]);
-};
-
-fun2 :: ()->void{
- b := '2';
- c := &b;
- d := &c;
- d.*.* = '6';
- @putc(b);
- @putc(c.*);
- @putc(d.*.*);
-};
-
-fun3 :: ()->void{
- st :: struct{
- a : i64;
- };
- a : st = undefined;
- a.a = 2;
- @putc(@cast(a.a,u8)+'0');
-};
-
-fun4 :: ()->void{
- p := @size_of(123);
- @putc(@cast(p,u8)+'0');
-};
-
-/*
-libc :: @c_library("/lib/libc.so");
-
-putchar : (i8)->void : @c_function(libc,"putchar");
-*/
+libc :: @c_library("/lib/libc.so.6");
+putchar :: @c_function(libc,"putchar",(i32)->i32);
+puts :: @c_function(libc,"puts",(*u8)->i32);
main :: ()->void{
- // fun0();
- // fun1();
- // fun2();
- // fun3();
- fun4();
+ a :i32= 97;
+ a = putchar(a);
+ putchar(a);
+ b := "hello\0";
+ puts(&(b[0]));
};