diff options
author | c | 2024-03-09 11:01:23 -0500 |
---|---|---|
committer | c | 2024-03-09 11:01:23 -0500 |
commit | 099fd363f7972ad7e1c48f5fd9ab83aa38a40ea2 (patch) | |
tree | 7a2b81f5fba6630ec5d1da469135539007c16f3c /src/doer.c | |
parent | 9a7e88e33213135da7c8fa3607ca455d997f4a39 (diff) |
Introduced mortality.
Diffstat (limited to 'src/doer.c')
-rw-r--r-- | src/doer.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -4,7 +4,6 @@ target_t* target_init(char* name, tree_t* tree) { target_t* target = emalloc(sizeof(target_t)); - target->name = name; target->tree = tree; target->nxt = NULL; return target; @@ -13,7 +12,6 @@ target_t* target_init(char* name, tree_t* tree) { void target_destroy(target_t* target) { if (target) { target_destroy(target->nxt); - free(target->name); free(target); } } @@ -51,6 +49,10 @@ void doer_add_target(doer_t* doer, target_t* target) { else doer->ltarget->nxt = target; } +void blin_die(doer_t* doer) { + DIE(":(\nYour PC ran into a\n"); +} + void blin_print(doer_t* doer) { printf( "%s", @@ -80,7 +82,6 @@ void doer_do_block(doer_t* doer) { void doer_do_expr(doer_t* doer) { switch (doer->tree->type) { case TREE_TYPE_CALL: - /* Assume only call is `print` for now. */ doer_do_call(doer); break; case TREE_TYPE_DEF: @@ -109,7 +110,7 @@ void doer_do_call(doer_t* doer) { for (int i = 0; i < sizeof(blinfs) / sizeof(blinf_t); i++) { if (!strcmp(blinfs[i].name, doer->tree->data.call.target)) { (blinfs[i].fp)(doer); - break; + return; } } } |