From 1300aa3672d7ae27963465fa6d8d2a6ebe8a71d2 Mon Sep 17 00:00:00 2001 From: Tucker Evans Date: Thu, 5 Sep 2019 18:09:37 -0400 Subject: Fix count_args to handle single variable parameters --- main.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 6c601ff..394e3bc 100644 --- a/main.c +++ b/main.c @@ -139,27 +139,19 @@ ptree *t; { int r, l; - if (t->r && t->r->type == LIST) - r = count_args(t->r); - else if (t->r && t->r->type == ID) - r = 1; - else { - char buf[100]; - snprintf(buf, 100, "COUNT ARGS1: %d\n",(t->r)); - yyerror(buf); - } + if (!t) + return 0; - if (t->l && t->l->type == LIST) + if (t->type == LIST){ + r = count_args(t->r); l = count_args(t->l); - else if (t->l && t->l->type == ID) - l = 1; - else{ - char buf[100]; - snprintf(buf, 100, "COUNT ARGS2: %d\n", (t->l)); - yyerror(buf); + } else if (t->type == ID) { + return 1; + } else { + yyerror("NOT A PARAMETER LIST\n"); } - return l + r; + return r + l; } int set_func_types(t, nxt, size) -- cgit v1.1