diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/aplwc_internal.h | 5 | ||||
| -rw-r--r-- | src/lib/eval.c | 10 | ||||
| -rw-r--r-- | src/lib/main.c | 10 | ||||
| -rw-r--r-- | src/lib/module.c | 1 |
4 files changed, 11 insertions, 15 deletions
diff --git a/src/lib/aplwc_internal.h b/src/lib/aplwc_internal.h index 5320336..b87cfad 100644 --- a/src/lib/aplwc_internal.h +++ b/src/lib/aplwc_internal.h @@ -34,7 +34,6 @@ struct root_ptr { }; struct aplwc_line { - struct aplwc *aplwc; struct string *text; struct token_list *tokens; }; @@ -79,19 +78,17 @@ enum value_tag { }; struct aplwc_value { - struct aplwc *aplwc; enum value_tag tag; }; struct aplwc_module { - struct aplwc *aplwc; struct string *name; struct token_list *tokens; struct aplwc_module *link; }; /* eval.c */ -struct aplwc_value *eval_line(struct aplwc_line *); +struct aplwc_value *eval_line(struct aplwc *, struct aplwc_line *); /* memory.c */ void memory_init(struct aplwc *); diff --git a/src/lib/eval.c b/src/lib/eval.c index 50c3cda..0da90db 100644 --- a/src/lib/eval.c +++ b/src/lib/eval.c @@ -1,19 +1,17 @@ #include "aplwc_internal.h" struct aplwc_value * -eval_line(struct aplwc_line *line) +eval_line(struct aplwc *aplwc, struct aplwc_line *line) { struct aplwc_value *value; - struct aplwc *aplwc; - aplwc = line->aplwc; + UNUSED_PARAMETER(line); + assert(aplwc->last_error == APLWC_OK); value = memory_alloc_aplwc_value(aplwc); - if(value != NULL){ - value->aplwc = aplwc; + if(value != NULL) value->tag = VALUE_NULL; - } return value; } diff --git a/src/lib/main.c b/src/lib/main.c index 454ad1c..dcf4a1c 100644 --- a/src/lib/main.c +++ b/src/lib/main.c @@ -109,7 +109,6 @@ aplwc_read(struct aplwc *aplwc, const char *linestr) if((line = memory_alloc_aplwc_line(aplwc)) == NULL) goto end; - line->aplwc = aplwc; line->text = text; line->tokens = tokens; @@ -131,13 +130,16 @@ aplwc_eval(AplwcLine line) AplwcValue value; struct aplwc_line *l; struct aplwc_value *v; + struct aplwc *aplwc; + + aplwc = line.ref.aplwc; aplwc_clear_value(&value); l = memory_root_get(line.ref); - l->aplwc->last_error = APLWC_OK; - v = eval_line(l); + aplwc->last_error = APLWC_OK; + v = eval_line(aplwc, l); if(v) - value.ref = memory_root_new(line.ref.aplwc, v); + value.ref = memory_root_new(aplwc, v); return value; } diff --git a/src/lib/module.c b/src/lib/module.c index 3bca396..2524eca 100644 --- a/src/lib/module.c +++ b/src/lib/module.c @@ -69,7 +69,6 @@ load_module(struct aplwc *aplwc, struct string *name, struct token_list *tokens) goto end; } - module->aplwc = aplwc; module->name = name; module->tokens = tokens; module->link = NULL; |