diff options
author | Tucker Evans <tuckerevans24@gmail.com> | 2019-09-05 17:59:44 -0400 |
---|---|---|
committer | Tucker Evans <tuckerevans24@gmail.com> | 2019-09-05 18:03:17 -0400 |
commit | c6d13abfc122c15ecc182b1fc5645628e8eb4d18 (patch) | |
tree | 3cc20de947e6cea8d725d9efd0dd6aeb1b2e95eb /main.c | |
parent | d8a7a9b0ed653ec8061896efc0c8e11b5df6b166 (diff) |
Add function argument types
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -162,6 +162,29 @@ ptree *t; return l + r; } +int set_func_types(t, nxt, size) +ptree *t; +int size, *nxt; +{ + int tmp; + + if (!t) + return size; + + if (t->type == LIST){ + tmp = set_func_types(t->l, nxt, size); + for (;size > tmp; --size) ++nxt; + size = set_func_types(t->r, nxt, size); + } else if (t->type == ID){ + if (--size == -1) + yyerror("VARIABLE COUNT CHANGED!!!\n"); + + *nxt = t->attr.nval->var_type; + return size; + } + return size; +} + int main() { #ifdef DEBUG_TYPES |