int32 FUNC_STREXPRESSION(qbs*_FUNC_STREXPRESSION_STRING_EXP,void*_FUNC_STREXPRESSION_UDT_STATE){
qbs *tqbs;
ptrszint tmp_long;
int32 tmp_fileno;
uint32 qbs_tmp_base=qbs_tmp_list_nexti;
uint8 *tmp_mem_static_pointer=mem_static_pointer;
uint32 tmp_cmem_sp=cmem_sp;
#include "data182.txt"
mem_lock *sf_mem_lock;
new_mem_lock();
sf_mem_lock=mem_lock_tmp;
sf_mem_lock->type=3;
if (is_error_pending()) goto exit_subfunc;
S_36484:;
if ((qbs_cleanup(qbs_tmp_base,-(FUNC_PARSESTRING(_FUNC_STREXPRESSION_STRING_EXP,(void*)( ((char*)(_FUNC_STREXPRESSION_UDT_STATE)) + ((0+0)) ))== 0 )))||is_error_pending()){
if(qbevent){evnt(25756,208,"const_eval.bas");if(r)goto S_36484;}
do{
goto exit_subfunc;
if(!qbevent)break;evnt(25756,208,"const_eval.bas");}while(r);
}
do{
if(!qbevent)break;evnt(25756,210,"const_eval.bas");}while(r);
do{
qbs_set(_FUNC_STREXPRESSION_STRING_S,*((qbs**)((char*)_FUNC_STREXPRESSION_UDT_STATE+((0+56)))));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(25756,211,"const_eval.bas");}while(r);
S_36489:;
do{
if(qbevent){evnt(25756,213,"const_eval.bas");if(r)goto S_36489;}
do{
qbs_set(_FUNC_STREXPRESSION_STRING_ELE,FUNC_PEEKNEXTELEMENT(_FUNC_STREXPRESSION_STRING_EXP,(int32*)(void*)( ((char*)(_FUNC_STREXPRESSION_UDT_STATE)) + ((0+0)) ),(int32*)(void*)( ((char*)(_FUNC_STREXPRESSION_UDT_STATE)) + ((0+4)) )));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(25756,214,"const_eval.bas");}while(r);
S_36491:;
if ((qbs_cleanup(qbs_tmp_base,qbs_equal(_FUNC_STREXPRESSION_STRING_ELE,qbs_new_txt_len("+",1))))||is_error_pending()){
if(qbevent){evnt(25756,215,"const_eval.bas");if(r)goto S_36491;}
do{
qbs_set(_FUNC_STREXPRESSION_STRING_ELE,FUNC_GETNEXTELEMENT(_FUNC_STREXPRESSION_STRING_EXP,(int32*)(void*)( ((char*)(_FUNC_STREXPRESSION_UDT_STATE)) + ((0+0)) ),(int32*)(void*)( ((char*)(_FUNC_STREXPRESSION_UDT_STATE)) + ((0+4)) )));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(25756,216,"const_eval.bas");}while(r);
S_36493:;
if ((qbs_cleanup(qbs_tmp_base,-(FUNC_PARSESTRING(_FUNC_STREXPRESSION_STRING_EXP,(void*)( ((char*)(_FUNC_STREXPRESSION_UDT_STATE)) + ((0+0)) ))== 0 )))||is_error_pending()){
if(qbevent){evnt(25756,217,"const_eval.bas");if(r)goto S_36493;}
do{
SUB_FIXUPERRORMESSAGE((void*)( ((char*)(_FUNC_STREXPRESSION_UDT_STATE)) + ((0+0)) ),qbs_new_txt_len("+",1));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(25756,217,"const_eval.bas");}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(25756,217,"const_eval.bas");}while(r);
}
do{
qbs_set(_FUNC_STREXPRESSION_STRING_S,FUNC_ELEMENTSTRINGCONCAT(_FUNC_STREXPRESSION_STRING_S,*((qbs**)((char*)_FUNC_STREXPRESSION_UDT_STATE+((0+56))))));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(25756,219,"const_eval.bas");}while(r);
}else{
do{
qbs_set(*((qbs**)((char*)(_FUNC_STREXPRESSION_UDT_STATE)+((0+56)))),_FUNC_STREXPRESSION_STRING_S);
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(25756,221,"const_eval.bas");}while(r);
do{
*_FUNC_STREXPRESSION_LONG_STREXPRESSION= -1 ;
if(!qbevent)break;evnt(25756,222,"const_eval.bas");}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(25756,223,"const_eval.bas");}while(r);
}
dl_continue_4287:;
}while(1);
dl_exit_4287:;
exit_subfunc:;
free_mem_lock(sf_mem_lock);
#include "free182.txt"
if ((tmp_mem_static_pointer>=mem_static)&&(tmp_mem_static_pointer<=mem_static_limit)) mem_static_pointer=tmp_mem_static_pointer; else mem_static_pointer=mem_static;
cmem_sp=tmp_cmem_sp;
return *_FUNC_STREXPRESSION_LONG_STREXPRESSION;
}
