summaryrefslogtreecommitdiffstats
path: root/include/rule.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/rule.h')
-rw-r--r--include/rule.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/rule.h b/include/rule.h
index 531222ce..58c4aeef 100644
--- a/include/rule.h
+++ b/include/rule.h
@@ -73,18 +73,21 @@ extern void scope_release(const struct scope *scope);
* @list: scope symbol list node
* @identifier: identifier
* @expr: initializer
+ * @refcnt: reference counter
*/
struct symbol {
struct list_head list;
const char *identifier;
struct expr *expr;
+ int refcnt;
};
extern void symbol_bind(struct scope *scope, const char *identifier,
struct expr *expr);
-extern int symbol_unbind(struct scope *scope, const char *identifier);
+extern int symbol_unbind(const struct scope *scope, const char *identifier);
extern struct symbol *symbol_lookup(const struct scope *scope,
const char *identifier);
+struct symbol *symbol_get(const struct scope *scope, const char *identifier);
enum table_flags {
TABLE_F_DORMANT = (1 << 0),