/* construct.h */

/* some constructor functions */

void free_gst(struct var_tab *gst);
int is_legal(char *name);
void free_code(struct code *the_code);
char *copy_string(char *s);
void push(struct var *data, struct var_stack **rts);
void pushnocopy(struct var *data, struct var_stack **rts);
int pop(struct var *data, struct var_stack **rts, struct object *obj);
void free_stack(struct var_stack **rts);
int popint(struct var *data, struct var_stack **rts, struct object *obj);
void clear_var(struct var *data);
void clear_global_var(struct object *obj, unsigned int ref);
void copy_var(struct var *dest, struct var *src);
int resolve_var(struct var *data, struct object *obj);
struct var_stack *gen_stack(struct var_stack **rts, struct object *obj);
struct var_stack *gen_stack_noresolve(struct var_stack **rts,
                                      struct object *obj);