Code: Select all
#ifndef __STACK_H
#define __STACK_H
static-var stack_error;
#define STACK(stackvar) static-var push_stackvar, pval_stackvar, pop_stackvar, stackvar, stackvar_isempty;\
func_stackvar(value, rec) {\
while (!pop_stackvar) {\
if(push_stackvar) {\
push_stackvar=0;\
call-script func_stackvar(pval_stackvar + 0, rec + 1);\
}\
sleep 30;\
}\
stackvar = value;\
if (rec == 0) stackvar_isempty = 1;\
pop_stackvar = 0;\
}\
\
stackvar_push(value) {\
if (stackvar_isempty) {\
stackvar_isempty = 0;\
start-script func_stackvar(value+0);\
}\
else {\
push_stackvar = 1;\
pval_stackvar = value;\
}\
}\
\
stackvar_pop() {\
if (!stackvar_isempty) {\
pop_stackvar = 1;\
stack_error=0;\
}\
else {\
stack_error=1;\
}\
}
#endif