aboutsummaryrefslogtreecommitdiff
path: root/sem_check.c
diff options
context:
space:
mode:
authorTucker Evans <tuckerevans24@gmail.com>2019-08-03 20:48:13 -0400
committerTucker Evans <tuckerevans24@gmail.com>2019-08-03 20:48:39 -0400
commit8c59ccd6e23ac63d59f5839ad410c04b393ff0c0 (patch)
tree7f73ed2cf6450614599514ca77a2646624484da8 /sem_check.c
parente9ae811ffaa08caef0acca643ca1e7a1ff72396f (diff)
parent12f50dec6a529784a360dfaec9dc562b810ae2fd (diff)
Merge branch 'scopes' into types
Diffstat (limited to 'sem_check.c')
-rw-r--r--sem_check.c36
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;
+}