diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2024-12-13 16:10:52 -0500 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2024-12-13 16:10:52 -0500 |
commit | 5c207b7038d3a634e8a752ceb4ea3dcd1553ebfa (patch) | |
tree | 366ecee7b657152abb9f6ae9ae3c05ad16863616 /compiler.c | |
parent | 0b0659ec65c8167548c3f32707b5bde249d6a458 (diff) |
Diffstat (limited to 'compiler.c')
-rw-r--r-- | compiler.c | 22 |
1 files changed, 10 insertions, 12 deletions
@@ -30,11 +30,7 @@ Vector vect_init(size_t item_size) { } void _vect_grow(Vector *v) { - if (v->size / 2 > VECT_MAX_GROW) { - v->size += VECT_MAX_GROW; - } else { - v->size += v->size / 2; - } + v->size += VECT_MAX_GROW; v->data = realloc(v->data, v->size * v->_el_sz); } @@ -738,6 +734,7 @@ char *_op_get_register(int reg, int size) { default: printf("ERROR: invalid register size %d (this is a compiler issue)\n", size); vect_push(&out, &add); + vect_push_string(&out, "; Invalid register size"); break; } @@ -5322,6 +5319,7 @@ void eval_strict_arr(Module *mod, Vector *out, Vector *tokens, Variable *v, size int end = tnsl_find_closing(tokens, start); int count = 0; bool first = true; + start++; for (size_t i = start; i < end; i++) { cur = vect_get(tokens, i); @@ -5344,7 +5342,7 @@ void eval_strict_arr(Module *mod, Vector *out, Vector *tokens, Variable *v, size vect_push_string(&store, "\n"); first = true; - for (start++; start < end; start++) { + for (; start < end; start++) { cur = vect_get(tokens, start); if(tok_str_eq(cur, ",")) { first = true; @@ -5352,13 +5350,13 @@ void eval_strict_arr(Module *mod, Vector *out, Vector *tokens, Variable *v, size if (first) { first = false; if (_var_ptr_type(&strip) > 1) { - eval_strict_arr(mod, &store, tokens, &strip, start + 2, datalab, ntharr); - } else if (_var_ptr_type(v) > PTYPE_NONE) { - eval_strict_ptr(mod, &store, tokens, &strip, start + 2, datalab, ntharr); - } else if (!is_inbuilt(v->type->name)) { - eval_strict_composite(mod, &store, tokens, &strip, start + 2, datalab, ntharr); + eval_strict_arr(mod, &store, tokens, &strip, start, datalab, ntharr); + } else if (_var_ptr_type(&strip) > PTYPE_NONE) { + eval_strict_ptr(mod, &store, tokens, &strip, start, datalab, ntharr); + } else if (!is_inbuilt(strip.type->name)) { + eval_strict_composite(mod, &store, tokens, &strip, start, datalab, ntharr); } else { - eval_strict_literal(&store, tokens, &strip, start + 2); + eval_strict_literal(&store, tokens, &strip, start); } } |