aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorTucker Evans <tuckerevans24@gmail.com>2019-09-05 17:59:44 -0400
committerTucker Evans <tuckerevans24@gmail.com>2019-09-05 18:03:17 -0400
commitc6d13abfc122c15ecc182b1fc5645628e8eb4d18 (patch)
tree3cc20de947e6cea8d725d9efd0dd6aeb1b2e95eb /main.c
parentd8a7a9b0ed653ec8061896efc0c8e11b5df6b166 (diff)
Add function argument types
Diffstat (limited to 'main.c')
-rw-r--r--main.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/main.c b/main.c
index d6cffdd..6c601ff 100644
--- a/main.c
+++ b/main.c
@@ -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