From 0e835d9b8f97087810dddb9743aa84b6431ff3a7 Mon Sep 17 00:00:00 2001 From: Tucker Evans Date: Sat, 27 Jul 2019 12:55:31 -0400 Subject: Rename hash.* -> scope.* --- scope.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 scope.h (limited to 'scope.h') diff --git a/scope.h b/scope.h new file mode 100644 index 0000000..8a8cdb1 --- /dev/null +++ b/scope.h @@ -0,0 +1,27 @@ +#ifndef SCOPE_H +#define SCOPE_H + +#define HASH_SIZE 211 + +typedef struct hash { + node* table[HASH_SIZE]; + struct hash *prev, *next; + char function_boundry; +} scope; + +scope* mkscope(scope*); +void free_scope(scope*); + +/*stack routines*/ +scope* pop_scope(scope*); +scope* push_scope(scope*); + +/*helpers*/ +node* scope_insert(scope*, char*); +node* scope_search_all(scope*, char*); +node* scope_search(scope*, char*); +node* scope_safe_search_all(scope*, char*); + +/*hash function*/ +int hash_pwj(char*); +#endif -- cgit v1.1 From d9ba5ec2f86dd69eae4edac586a889fccd8d31b1 Mon Sep 17 00:00:00 2001 From: Tucker Evans Date: Sat, 27 Jul 2019 13:26:15 -0400 Subject: Fix typos & errors --- scope.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'scope.h') diff --git a/scope.h b/scope.h index 8a8cdb1..7160b5e 100644 --- a/scope.h +++ b/scope.h @@ -9,7 +9,7 @@ typedef struct hash { char function_boundry; } scope; -scope* mkscope(scope*); +scope* mkscope(); void free_scope(scope*); /*stack routines*/ @@ -23,5 +23,5 @@ node* scope_search(scope*, char*); node* scope_safe_search_all(scope*, char*); /*hash function*/ -int hash_pwj(char*); +int hashpjw(char*); #endif -- cgit v1.1 From 60507214c098beaf3ae01a202e564bfe2f7c8364 Mon Sep 17 00:00:00 2001 From: Tucker Evans Date: Sat, 27 Jul 2019 21:08:22 -0400 Subject: Add basic scoping --- scope.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'scope.h') diff --git a/scope.h b/scope.h index 7160b5e..0a07a26 100644 --- a/scope.h +++ b/scope.h @@ -5,16 +5,16 @@ typedef struct hash { node* table[HASH_SIZE]; - struct hash *prev, *next; - char function_boundry; + struct hash *prev; + node* ret_var; } scope; scope* mkscope(); void free_scope(scope*); /*stack routines*/ -scope* pop_scope(scope*); -scope* push_scope(scope*); +void pop_scope(scope**); +void push_scope(scope**); /*helpers*/ node* scope_insert(scope*, char*); -- cgit v1.1