pike.git/
src/
interpret.h
Branch:
Tag:
Non-build tags
All tags
No tags
1996-06-21
1996-06-21 19:35:03 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>
fa382f720043d95ce25f5ed286e0f46aaf938731 (
14
lines) (+
11
/-
3
)
[
Show
|
Annotate
]
Branch:
branches/E-12
stack checks and operator overloading
Rev: src/interpret.c:1.10
Rev: src/interpret.h:1.3
26:
}; #ifdef DEBUG
-
#define check_stack() do{if(sp<evaluator_stack)fatal("Stack error.\n");}while(0)
+
#define
debug_
check_stack() do{if(sp<evaluator_stack)fatal("Stack error.\n");}while(0)
#else
-
#define check_stack()
+
#define
debug_
check_stack()
#endif
-
#define pop_stack() do{ free_svalue(--sp); check_stack(); }while(0)
+
+
#define pop_stack() do{ free_svalue(--sp);
debug_
check_stack(); }while(0)
#define push_program(P) sp->u.program=(P),sp++->type=T_PROGRAM #define push_int(I) sp->u.integer=(I),sp->type=T_INT,sp++->subtype=NUMBER_NUMBER #define push_mapping(M) sp->u.mapping=(M),sp++->type=T_MAPPING
66:
}while(0) /* Prototypes begin here */
+
void init_interpreter();
+
void exit_interpreter();
+
void check_stack(INT32 size);
+
void check_mark_stack(INT32 size);
void lvalue_to_svalue_no_free(struct svalue *to,struct svalue *lval); void assign_lvalue(struct svalue *lval,struct svalue *from); union anything *get_pointer_if_this_type(struct svalue *lval, TYPE_T t);
-
+
void print_return_value();
void pop_n_elems(INT32 x); void reset_evaluator(); void f_catch(unsigned char *pc);
91:
extern struct svalue *sp; extern struct svalue **mark_sp; extern struct svalue evaluator_stack[EVALUATOR_STACK_SIZE];
+
extern struct svalue *mark_stack[EVALUATOR_STACK_SIZE];
extern struct frame *fp; /* frame pointer */ #endif