From 32c9b5a9c854996ce7370618c348fcbd842d8d4f Mon Sep 17 00:00:00 2001
From: MrCoderV3 <iliya.gbm@gmail.com>
Date: Fri, 25 Apr 2025 13:05:40 +0330
Subject: Added print library

---
 code/lib/print.felan | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 167 insertions(+)
 create mode 100644 code/lib/print.felan

(limited to 'code/lib/print.felan')

diff --git a/code/lib/print.felan b/code/lib/print.felan
new file mode 100644
index 0000000..fd6663c
--- /dev/null
+++ b/code/lib/print.felan
@@ -0,0 +1,167 @@
+print :: (value:u8)->void{
+  putc value;
+};
+
+print :: (value:[]u8)->void{
+  i :u64= 0;
+  while i < value.length {
+    putc value[i];
+    i += 1;
+  }
+};
+
+print_reverse :: (value:[]u8, size:u8)->void{
+  size := size;
+  while size != 0 {
+    size -= 1;
+    putc value[size];
+  }
+};
+
+print :: (value:i8)->void {
+  value := value;
+  if (value < 0) {
+    putc '-';
+    if (value == -128) {
+      print("128");
+      return;
+    }
+    value = -value;
+  }
+  
+  output :[3]u8= undefined;
+  i :u8= 0;
+  while {
+    output[i] = '0' + @cast(value % 10, u8);
+    i += 1;
+    value /= 10;
+    value != 0;
+  } {}
+
+  print_reverse(output, i - 1);
+};
+
+print :: (value:i16)->void {
+  value := value;
+  if (value < 0) {
+    putc '-';
+    if (value == -32768) {
+      print("32768");
+      return;
+    }
+    value = -value;
+  }
+  
+  output :[5]u8= undefined;
+  i :u8= 0;
+  while {
+    output[i] = '0' + @cast(value % 10, u8);
+    i += 1;
+    value /= 10;
+    value != 0;
+  } {}
+
+  print_reverse(output, i);
+};
+
+print :: (value:i32)->void {
+  value := value;
+  if (value < 0) {
+    putc '-';
+    if (value == -2147483648) {
+      print("2147483648");
+      return;
+    }
+    value = -value;
+  }
+  
+  output :[10]u8= undefined;
+  i :u8= 0;
+  while {
+    output[i] = '0' + @cast(value % 10, u8);
+    i += 1;
+    value /= 10;
+    value != 0;
+  } {}
+
+  print_reverse(output, i - 1);
+};
+
+print :: (value:i64)->void {
+  value := value;
+  if (value < 0) {
+    putc '-';
+    if (value == -9223372036854775808) {
+      print("9223372036854775808");
+      return;
+    }
+    value = -value;
+  }
+  
+  output :[19]u8= undefined;
+  i :u8= 0;
+  while {
+    output[i] = '0' + @cast(value % 10, u8);
+    i += 1;
+    value /= 10;
+    value != 0;
+  } {}
+
+  print_reverse(output, i - 1);
+};
+
+print :: (value:u8)->void{
+  value := value;
+  result :[3]u8 = undefined;
+  i :u8= 0;
+  while {
+    result[i] = '0' + @cast(value % 10,u8);
+    i += 1;
+    value /= 10;
+    value != 0;
+  } {}
+
+  print_reverse(result, i - 1);
+};
+
+print :: (value:u16)->void{
+  value := value;
+  result :[5]u8 = undefined;
+  i :u8= 0;
+  while {
+    result[i] = '0' + @cast(value % 10,u8);
+    i += 1;
+    value /= 10;
+    value != 0;
+  } {}
+
+  print_reverse(result, i - 1);
+};
+
+print :: (value:u32)->void{
+  value := value;
+  result :[10]u8 = undefined;
+  i :u8= 0;
+  while {
+    result[i] = '0' + @cast(value % 10,u8);
+    i += 1;
+    value /= 10;
+    value != 0;
+  } {}
+
+  print_reverse(result, i - 1);
+};
+
+print :: (value:u64)->void{
+  value := value;
+  result :[20]u8 = undefined;
+  i :u8= 0;
+  while {
+    result[i] = '0' + @cast(value % 10,u8);
+    i += 1;
+    value /= 10;
+    value != 0;
+  } {}
+
+  print_reverse(result, i - 1);
+};
\ No newline at end of file
-- 
cgit v1.2.3