aboutsummaryrefslogtreecommitdiff
path: root/pc.y
diff options
context:
space:
mode:
authorTucker Evans <tuckerevans24@gmail.com>2019-08-05 21:31:48 -0400
committerTucker Evans <tuckerevans24@gmail.com>2019-08-16 19:10:49 -0400
commit7e29eae526f7a5014934b92a239923dd30835afd (patch)
tree92eb5137963d27b70c7ea82356434110154b2ab0 /pc.y
parentee6c598892518d956388bb008095de6d4d7fe123 (diff)
WIP Add function and array info to node struct
Diffstat (limited to 'pc.y')
-rw-r--r--pc.y12
1 files changed, 11 insertions, 1 deletions
diff --git a/pc.y b/pc.y
index 81cb69b..cd993ec 100644
--- a/pc.y
+++ b/pc.y
@@ -167,8 +167,18 @@ sub_prog_declaration
sub_prog_head
:FUNC ID arguments ':' standard_type ';'
{
+ node *tmp;
+ int i = -1;
+
check_id(cur_scope->prev, $2);
- scope_insert(cur_scope->prev, $2);
+ tmp = scope_insert(cur_scope->prev, $2);
+
+ assert(tmp->func_info = malloc(sizeof struct fi));
+ /*TODO add count of parameters*/
+ tmp->func_info->argc = i;
+ assert(tmp->func_info->argv = malloc(i * sizeof int));
+
+ tmp->var_type = $5
cur_scope->ret_var = scope_insert(cur_scope, $2);
cur_scope->ret_var->var_type = $5;