From fa6a4104b04aa7834fdafc3aca9b479605445ca7 Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Mon, 4 Jan 2021 15:28:21 +0300 Subject: Strings work, everything is fine. =) --- examples/generated.c | 6 ------ examples/generated.csx | 8 ++++++++ examples/translator.c | 2 ++ src/csx.c | 2 +- 4 files changed, 11 insertions(+), 7 deletions(-) delete mode 100644 examples/generated.c diff --git a/examples/generated.c b/examples/generated.c deleted file mode 100644 index e0c3b3b..0000000 --- a/examples/generated.c +++ /dev/null @@ -1,6 +0,0 @@ -#include -int main() -{ -csx_run(csx_list(csx_name("do"),csx_list(csx_name("set"),csx_name("no"),csx_list(csx_name("fn"),csx_list(csx_name("x"),0),csx_list(csx_name("same"),csx_name("x"),csx_list(0),0),0),0),csx_list(csx_name("set"),csx_name("outint"),csx_list(csx_name("fn"),csx_list(csx_name("n"),0),csx_list(csx_name("if"),csx_list(csx_name("<"),csx_name("n"),csx_int(0),0),csx_list(csx_name("do"),csx_list(csx_name("out"),csx_int(45),0),csx_list(csx_name("outint"),csx_list(csx_name("neg"),csx_name("n"),0),0),0),csx_list(csx_name("if"),csx_list(csx_name("<"),csx_name("n"),csx_int(10),0),csx_list(csx_name("out"),csx_list(csx_name("+"),csx_int(48),csx_name("n"),0),0),csx_list(csx_name("do"),csx_list(csx_name("outint"),csx_list(csx_name("div"),csx_name("n"),csx_int(10),0),0),csx_list(csx_name("out"),csx_list(csx_name("+"),csx_int(48),csx_list(csx_name("mod"),csx_name("n"),csx_int(10),0),0),0),0),0),0),0),0),csx_list(csx_name("set"),csx_name("map"),csx_list(csx_name("fn"),csx_list(csx_name("f"),csx_name("l"),0),csx_list(csx_name("if"),csx_list(csx_name("no"),csx_name("l"),0),csx_list(0),csx_list(csx_name("pair"),csx_list(csx_name("f"),csx_list(csx_name("head"),csx_name("l"),0),0),csx_list(csx_name("map"),csx_name("f"),csx_list(csx_name("tail"),csx_name("l"),0),0),0),0),0),0),csx_list(csx_name("map"),csx_list(csx_name("fn"),csx_list(csx_name("n"),0),csx_list(csx_name("outint"),csx_name("n"),0),csx_list(csx_name("out"),csx_int(10),0),0),csx_list(csx_name("quote"),csx_list(csx_int(99),csx_int(37),csx_int(73),csx_int(42),0),0),0),csx_list(csx_name("set"),csx_name("id"),csx_list(csx_name("fn"),csx_name("args"),csx_name("args"),0),0),csx_list(csx_name("outint"),csx_list(csx_list(csx_name("id"),csx_int(42),csx_int(13),csx_int(31),0),csx_int(2),0),0),csx_list(csx_name("out"),csx_int(10),0),0)); -return 0; -} diff --git a/examples/generated.csx b/examples/generated.csx index 4d3d5fb..8710bd6 100644 --- a/examples/generated.csx +++ b/examples/generated.csx @@ -18,3 +18,11 @@ [set id [fn args args]] [outint [[id 42 13 31] 2]] [out 10] +[out ["Hello!" 1]] +[out 10] +[set outstr [fn [str] [if str + [do [out [head str]] [outstr [tail str]]] + [] +]]] +[outstr "Hello, World!"] +[out 10] diff --git a/examples/translator.c b/examples/translator.c index 8358a47..29f4d4e 100644 --- a/examples/translator.c +++ b/examples/translator.c @@ -40,6 +40,7 @@ void readlist() if (first) first = 0; else putchar(','); printf("csx_str(\""); + c = getchar(); while (c != EOF && c != '"') { if (c == '\\') c = getchar(); if (c == '"' || c == '\\') putchar('\\'); @@ -47,6 +48,7 @@ void readlist() c = getchar(); } printf("\")"); + c = getchar(); } else if (c == '\'') { if (first) first = 0; else putchar(','); diff --git a/src/csx.c b/src/csx.c index 3c897dd..bacf0f7 100644 --- a/src/csx.c +++ b/src/csx.c @@ -497,5 +497,5 @@ void *csx_str(const char *str) *p = new_pair(csx_int(*str), null); p = (pair_data **)&(*p)->tail; } - return res; + return new_pair(csx_name("quote"), new_pair(res, null)); } -- cgit v1.2.3