From 82a77fc047fe63834d2143b00ad285e2b5d9edc2 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Thu, 30 Dec 2021 15:22:29 +0100 Subject: [PATCH] Add :nil:nil --- Makefile | 2 +- doc/std.md | 4 ++++ example/test.uwu | 3 ++- std/bool.c | 1 - std/int.c | 2 +- std/nil.c | 10 ++++++++++ uwu | Bin 0 -> 46424 bytes 7 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 std/nil.c create mode 100755 uwu diff --git a/Makefile b/Makefile index f218bdb..8dbf5d8 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ uwu: src/*.c src/*.h .PHONY: std api -std: std/bool.so std/int.so std/str.so +std: std/bool.so std/int.so std/str.so std/nil.so api: api/api.so std/%.so: std/%.c diff --git a/doc/std.md b/doc/std.md index 1ebd6db..debf460 100644 --- a/doc/std.md +++ b/doc/std.md @@ -1,5 +1,9 @@ # Standard library +## The `:nil` module + +- `:nil:nil`: The nil constant + ## The `:bool` module - `:bool:if`: Requires exactly 3 arguments of arbitrary type. If $0 is a truthy value, evaluate and return $1. If $0 is a falsy value, evaluate and return $2. Values considered as falsy are: `:bool:false` and `:nil:nil`. Everything else is considered truey. diff --git a/example/test.uwu b/example/test.uwu index 375a03f..081eb69 100644 --- a/example/test.uwu +++ b/example/test.uwu @@ -3,5 +3,6 @@ hello_world "hello world main :str:cat( hello_world, - fibo:print(10) + fibo:print(10), + :nil:nil ) diff --git a/std/bool.c b/std/bool.c index 80aade5..76772bf 100644 --- a/std/bool.c +++ b/std/bool.c @@ -9,7 +9,6 @@ static inline bool get_bool_arg(UwUVMArgs *args, size_t i) return uwubool_get(uwuvm_get_arg(args, i)); } -#include "../api/str.h" UwUVMValue uwu_if(UwUVMArgs *args) { if (args->num != 3) diff --git a/std/int.c b/std/int.c index 48c808b..dfc436c 100644 --- a/std/int.c +++ b/std/int.c @@ -80,7 +80,7 @@ static int reduce(const char *fnname, UwUVMArgs *args, ReduceOP op, int result) UwUVMValue uwu_add(UwUVMArgs *args) { - return uwuint_create(reduce(":int:mul", args, ROP_ADD, 0)); + return uwuint_create(reduce(":int:add", args, ROP_ADD, 0)); } UwUVMValue uwu_sub(UwUVMArgs *args) diff --git a/std/nil.c b/std/nil.c new file mode 100644 index 0000000..33230fb --- /dev/null +++ b/std/nil.c @@ -0,0 +1,10 @@ +#include "../src/err.h" +#include "../api/nil.h" + +UwUVMValue uwu_nil(UwUVMArgs *args) +{ + if (args->num != 0) + error(":nil:nil does not accept any arguments\n"); + + return uwunil_create(); +} diff --git a/uwu b/uwu new file mode 100755 index 0000000000000000000000000000000000000000..d09296494d36786b62a8f2854820717be412a274 GIT binary patch literal 46424 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 literal 0 HcmV?d00001 -- 2.44.0