summaryrefslogtreecommitdiff
path: root/code/lib/print.felan
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-04-25 22:28:40 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-04-25 22:28:40 +0330
commit378bd7e143ddde38a070966cc0b61c2f8d5c7ee7 (patch)
treebdfe66b524fc183b7faf432e3d08d18e6a89b67f /code/lib/print.felan
parentdc26ae0b913ff49ecbf0f653b4baffa7a37f2303 (diff)
parent0202e4c30d404e84b0ca37daad0a0c77135bf1a5 (diff)
Merge branch 'master' of https://github.com/A404M/felan
Diffstat (limited to 'code/lib/print.felan')
-rw-r--r--code/lib/print.felan167
1 files changed, 167 insertions, 0 deletions
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