diff options
| author | Tucker Evans <tuckerevans24@gmail.com> | 2019-09-25 20:31:31 -0400 | 
|---|---|---|
| committer | Tucker Evans <tuckerevans24@gmail.com> | 2019-09-29 21:53:16 -0400 | 
| commit | e6234f0793c3e7d9978831d884d420a5dbb5bfb1 (patch) | |
| tree | 41b44541d08f448ba5e3ebaadb46b0ce288c317c | |
| parent | d6b038578577f7c0f4eeb95e35e6a2113e6d9732 (diff) | |
Add io functions to base scope
| -rw-r--r-- | pc.l | 16 | ||||
| -rw-r--r-- | pc.y | 9 | 
2 files changed, 23 insertions, 2 deletions
@@ -34,6 +34,22 @@ id	[A-Za-z][A-Za-z0-9_]*  	return PROG;  } +input { +	node *tmp; +	tmp = scope_insert(cur_scope, "write"); +	tmp->func_info = malloc(sizeof(struct fi)); + +	return IO; +} + +output { +	node *tmp; +	tmp = scope_insert(cur_scope, "read"); +	tmp->func_info = malloc(sizeof(struct fi)); + +	return IO; +} +  "var" {  	debug_print(VAR, NULL);  	return VAR; @@ -26,6 +26,7 @@ extern scope *cur_scope;  }  %token PROG +%token IO  %token VAR  %token PROC FUNC  %token BEG END @@ -94,7 +95,7 @@ extern scope *cur_scope;  %%  program -	:PROG ID '(' id_list ')' ';' +	:PROG ID '(' io_list ')' ';'  	var_declarations  	sub_prog_declarations  	compound_statement @@ -105,7 +106,6 @@ program  		print_tree($9);  #endif  		free_tree($9); -		free_tree($4);  #ifdef DEBUG  		print_scope(cur_scope);  #endif @@ -113,6 +113,11 @@ program  	}  ; +io_list +	:IO +	|io_list ',' IO +; +  id_list  	:ID  	{  | 
