diff options
author | Tucker Evans <tuckerevans24@gmail.com> | 2019-08-03 20:48:13 -0400 |
---|---|---|
committer | Tucker Evans <tuckerevans24@gmail.com> | 2019-08-03 20:48:39 -0400 |
commit | 8c59ccd6e23ac63d59f5839ad410c04b393ff0c0 (patch) | |
tree | 7f73ed2cf6450614599514ca77a2646624484da8 /sem_check.c | |
parent | e9ae811ffaa08caef0acca643ca1e7a1ff72396f (diff) | |
parent | 12f50dec6a529784a360dfaec9dc562b810ae2fd (diff) |
Merge branch 'scopes' into types
Diffstat (limited to 'sem_check.c')
-rw-r--r-- | sem_check.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/sem_check.c b/sem_check.c new file mode 100644 index 0000000..637d044 --- /dev/null +++ b/sem_check.c @@ -0,0 +1,36 @@ +#include <assert.h> +#include <stdio.h> + +#include "node.h" +#include "scope.h" +#include "tree.h" +#include "y.tab.h" +#include "pc.h" +#include "sem_check.h" + +void check_id(s, n) +scope *s; +char *n; +{ + char buf[100]; + + if (scope_search(s, n)) { + snprintf(buf, 100, "\"%s\" already defined in scope...\n", n); + yyerror(buf); + } +} + +node* check_exists(s, n) +scope *s; +char *n; +{ + node *tmp; + char buf[100]; + + if(!(tmp = scope_search(s,n))) { + snprintf(buf, 100, "Cannot find \"%s\"\n", n); + yyerror(buf); + } + + return tmp; +} |