aboutsummaryrefslogtreecommitdiff
path: root/src/doer.c
diff options
context:
space:
mode:
authorc2024-03-23 10:52:52 -0400
committerc2024-03-23 10:52:52 -0400
commitbbcda663d5b2b2f055de12107e0abab536e5beea (patch)
treea70ec5edb9912ca3bbbf230fba6196741b2c8394 /src/doer.c
parent53d5c419bdfaa58c2cf7c30e51e4515f66fa85a1 (diff)
Doubly-linked the abstract syntax tree.
Diffstat (limited to 'src/doer.c')
-rw-r--r--src/doer.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/doer.c b/src/doer.c
index ab1ca4d..19de0d8 100644
--- a/src/doer.c
+++ b/src/doer.c
@@ -1,6 +1,7 @@
#include "include/doer.h"
#include "include/tree.h"
#include "include/util.h"
+#include <string.h>
target_t* target_init(char* name, tree_t* tree) {
target_t* target = emalloc(sizeof(target_t));
@@ -108,8 +109,16 @@ void blin_printl(doer_t* doer) {
);
}
-void blin_to_str(doer_t* doer) {
- // TODO
+void blin_str_cat(doer_t* doer) {
+ tree_t* oldt = doer->tree;
+ doer->tree = doer->tree->data.call.arg->data.carg.val;
+ char* str1 = doer_eval_str(doer);
+ doer->tree = oldt->data.call.arg->data.carg.nxt->data.carg.val;
+ char* str2 = doer_eval_str(doer);
+
+ tree_destroy(doer->tree);
+
+// doer->tree = tree_init(TREE_TYPE_LSTR);
}
void doer_do_block(doer_t* doer) {