aboutsummaryrefslogtreecommitdiff
path: root/scope.h
diff options
context:
space:
mode:
Diffstat (limited to 'scope.h')
-rw-r--r--scope.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/scope.h b/scope.h
new file mode 100644
index 0000000..34301ce
--- /dev/null
+++ b/scope.h
@@ -0,0 +1,21 @@
+struct scope {
+ struct hashtable *tags;
+ struct hashtable *decls;
+ struct value *breaklabel;
+ struct value *continuelabel;
+ struct switchcases *switchcases;
+ struct scope *parent;
+};
+
+struct scope *mkscope(struct scope *);
+struct scope *delscope(struct scope *);
+
+struct declaration;
+void scopeputdecl(struct scope *, const char *, struct declaration *);
+struct declaration *scopegetdecl(struct scope *, const char *, _Bool);
+
+struct type;
+void scopeputtag(struct scope *, const char *, struct type *);
+struct type *scopegettag(struct scope *, const char *, _Bool);
+
+extern struct scope filescope;