for (const struct keyword *k = keyword_list; k->name; k++)
{
- struct symbol *sym = cf_new_symbol(global_root_scope, global_root_scope_pool, kwlp, k->name);
- sym->class = SYM_KEYWORD;
- sym->keyword = k;
+ struct symbol *s = cf_root_symbol(k->name, &global_root_scope);
+ s->class = SYM_KEYWORD;
+ s->keyword = k;
}
- global_root_scope->readonly = 1;
+
++ global_root_scope.readonly = 1;
++ global_filter_scope.readonly = 1;
}
ifs_head = ifs = push_ifs(NULL);
HASH(struct symbol) hash; /* Local symbol hash */
uint slots; /* Variable slots */
- byte active; /* Currently entered */
- byte block; /* No independent stack frame */
byte soft_scopes; /* Number of soft scopes above */
+ byte active:1; /* Currently entered */
+ byte block:1; /* No independent stack frame */
+ byte readonly:1; /* Do not add new symbols */
};
-extern struct sym_scope *global_root_scope;
+void cf_enter_filters(void);
+void cf_exit_filters(void);
struct bytestring {
size_t length;