#line 579 "utilities/const_eval.bas"
int32 FUNC_FACTOR(qbs*_FUNC_FACTOR_STRING_EXP,void*_FUNC_FACTOR_UDT_STATE){
#line 579 "utilities/const_eval.bas"
qbs *tqbs;
#line 579 "utilities/const_eval.bas"
ptrszint tmp_long;
#line 579 "utilities/const_eval.bas"
int32 tmp_fileno;
#line 579 "utilities/const_eval.bas"
uint32 qbs_tmp_base=qbs_tmp_list_nexti;
#line 579 "utilities/const_eval.bas"
uint8 *tmp_mem_static_pointer=mem_static_pointer;
#line 579 "utilities/const_eval.bas"
uint32 tmp_cmem_sp=cmem_sp;
#line 579 "utilities/const_eval.bas"
#include "data256.txt"
#line 579 "utilities/const_eval.bas"
mem_lock *sf_mem_lock;
#line 579 "utilities/const_eval.bas"
new_mem_lock();
#line 579 "utilities/const_eval.bas"
sf_mem_lock=mem_lock_tmp;
#line 579 "utilities/const_eval.bas"
sf_mem_lock->type=3;
#line 579 "utilities/const_eval.bas"
libqb_check_stack();
#line 579 "utilities/const_eval.bas"
if (is_error_pending()) goto exit_subfunc;
#line 580 "utilities/const_eval.bas"
S_41088:;
#line 580 "utilities/const_eval.bas"
if (( 0ll )||is_error_pending()){
#line 580 "utilities/const_eval.bas"
if(qbevent){evnt(28806,580,"const_eval.bas");if(r)goto S_41088;}
#line 580 "utilities/const_eval.bas"
do{
#line 580 "utilities/const_eval.bas"
sub__echo(qbs_new_txt_len("Factor",6));
#line 580 "utilities/const_eval.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 580 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,580,"const_eval.bas");}while(r);
#line 580 "utilities/const_eval.bas"
}
#line 581 "utilities/const_eval.bas"
S_41091:;
#line 581 "utilities/const_eval.bas"
if ((qbs_cleanup(qbs_tmp_base,-(FUNC_UNARY(_FUNC_FACTOR_STRING_EXP,(void*)( ((char*)(_FUNC_FACTOR_UDT_STATE)) + ((0+0)) ))== 0 )))||is_error_pending()){
#line 581 "utilities/const_eval.bas"
if(qbevent){evnt(28806,581,"const_eval.bas");if(r)goto S_41091;}
#line 581 "utilities/const_eval.bas"
do{
#line 581 "utilities/const_eval.bas"
goto exit_subfunc;
#line 581 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,581,"const_eval.bas");}while(r);
#line 581 "utilities/const_eval.bas"
}
#line 583 "utilities/const_eval.bas"
do{
#line 583 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,583,"const_eval.bas");}while(r);
#line 584 "utilities/const_eval.bas"
do{
#line 584 "utilities/const_eval.bas"
memcpy((((char*)_FUNC_FACTOR_UDT_NUM)+((0+0))+((0+0))),(((char*)_FUNC_FACTOR_UDT_STATE)+((0+8))+((0+0))),32);
#line 584 "utilities/const_eval.bas"
memcpy((((char*)_FUNC_FACTOR_UDT_NUM)+((0+0))+((0+32))),(((char*)_FUNC_FACTOR_UDT_STATE)+((0+8))+((0+32))),8);
#line 584 "utilities/const_eval.bas"
memcpy((((char*)_FUNC_FACTOR_UDT_NUM)+((0+0))+((0+40))),(((char*)_FUNC_FACTOR_UDT_STATE)+((0+8))+((0+40))),8);
#line 584 "utilities/const_eval.bas"
qbs_set(*(qbs**)(((char*)_FUNC_FACTOR_UDT_NUM)+((0+0))+((0+48))),*(qbs**)(((char*)_FUNC_FACTOR_UDT_STATE)+((0+8))+((0+48))));
#line 584 "utilities/const_eval.bas"
memcpy((((char*)_FUNC_FACTOR_UDT_NUM)+((0+0))+((0+56))),(((char*)_FUNC_FACTOR_UDT_STATE)+((0+8))+((0+56))),4);
#line 584 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,584,"const_eval.bas");}while(r);
#line 586 "utilities/const_eval.bas"
S_41096:;
#line 586 "utilities/const_eval.bas"
do{
#line 586 "utilities/const_eval.bas"
if(qbevent){evnt(28806,586,"const_eval.bas");if(r)goto S_41096;}
#line 587 "utilities/const_eval.bas"
do{
#line 587 "utilities/const_eval.bas"
qbs_set(_FUNC_FACTOR_STRING_ELE,FUNC_PEEKNEXTELEMENT(_FUNC_FACTOR_STRING_EXP,(int32*)(void*)( ((char*)(_FUNC_FACTOR_UDT_STATE)) + ((0+0)) ),(int32*)(void*)( ((char*)(_FUNC_FACTOR_UDT_STATE)) + ((0+4)) )));
#line 587 "utilities/const_eval.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 587 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,587,"const_eval.bas");}while(r);
#line 588 "utilities/const_eval.bas"
S_41098:;
#line 588 "utilities/const_eval.bas"
if ((qbs_cleanup(qbs_tmp_base,qbs_equal(_FUNC_FACTOR_STRING_ELE,qbs_new_txt_len("*",1))))||is_error_pending()){
#line 588 "utilities/const_eval.bas"
if(qbevent){evnt(28806,588,"const_eval.bas");if(r)goto S_41098;}
#line 589 "utilities/const_eval.bas"
do{
#line 589 "utilities/const_eval.bas"
qbs_set(_FUNC_FACTOR_STRING_ELE,FUNC_GETNEXTELEMENT(_FUNC_FACTOR_STRING_EXP,(int32*)(void*)( ((char*)(_FUNC_FACTOR_UDT_STATE)) + ((0+0)) ),(int32*)(void*)( ((char*)(_FUNC_FACTOR_UDT_STATE)) + ((0+4)) )));
#line 589 "utilities/const_eval.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 589 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,589,"const_eval.bas");}while(r);
#line 590 "utilities/const_eval.bas"
S_41100:;
#line 590 "utilities/const_eval.bas"
if ((qbs_cleanup(qbs_tmp_base,-(FUNC_UNARY(_FUNC_FACTOR_STRING_EXP,(void*)( ((char*)(_FUNC_FACTOR_UDT_STATE)) + ((0+0)) ))== 0 )))||is_error_pending()){
#line 590 "utilities/const_eval.bas"
if(qbevent){evnt(28806,590,"const_eval.bas");if(r)goto S_41100;}
#line 590 "utilities/const_eval.bas"
do{
#line 590 "utilities/const_eval.bas"
SUB_FIXUPERRORMESSAGE((void*)( ((char*)(_FUNC_FACTOR_UDT_STATE)) + ((0+0)) ),qbs_new_txt_len("*",1));
#line 590 "utilities/const_eval.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 590 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,590,"const_eval.bas");}while(r);
#line 590 "utilities/const_eval.bas"
do{
#line 590 "utilities/const_eval.bas"
goto exit_subfunc;
#line 590 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,590,"const_eval.bas");}while(r);
#line 590 "utilities/const_eval.bas"
}
#line 592 "utilities/const_eval.bas"
S_41104:;
#line 592 "utilities/const_eval.bas"
if (((*(int32*)(((char*)_FUNC_FACTOR_UDT_NUM)+((0+56)))&*__LONG_ISFLOAT)|(*(int32*)(((char*)_FUNC_FACTOR_UDT_STATE)+((0+64)))&*__LONG_ISFLOAT))||is_error_pending()){
#line 592 "utilities/const_eval.bas"
if(qbevent){evnt(28806,592,"const_eval.bas");if(r)goto S_41104;}
#line 593 "utilities/const_eval.bas"
do{
#line 593 "utilities/const_eval.bas"
SUB_PARSENUMSETF((void*)( ((char*)(_FUNC_FACTOR_UDT_NUM)) + ((0+0)) ),&(pass4141=*__LONG_FLOATTYPE-*__LONG_ISPOINTER),&(pass4142=*(long double*)(((char*)_FUNC_FACTOR_UDT_NUM)+((0+0)))**(long double*)(((char*)_FUNC_FACTOR_UDT_STATE)+((0+8)))));
#line 593 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,593,"const_eval.bas");}while(r);
#line 594 "utilities/const_eval.bas"
S_41106:;
#line 594 "utilities/const_eval.bas"
}else{
#line 594 "utilities/const_eval.bas"
if ((*(int32*)(((char*)_FUNC_FACTOR_UDT_NUM)+((0+56)))&*__LONG_ISUNSIGNED)|(*(int32*)(((char*)_FUNC_FACTOR_UDT_STATE)+((0+64)))&*__LONG_ISUNSIGNED)){
#line 594 "utilities/const_eval.bas"
if(qbevent){evnt(28806,594,"const_eval.bas");if(r)goto S_41106;}
#line 595 "utilities/const_eval.bas"
do{
#line 595 "utilities/const_eval.bas"
SUB_PARSENUMSETUI((void*)( ((char*)(_FUNC_FACTOR_UDT_NUM)) + ((0+0)) ),&(pass4143=*__LONG_UINTEGER64TYPE-*__LONG_ISPOINTER),&(pass4144=*(uint64*)(((char*)_FUNC_FACTOR_UDT_NUM)+((0+40)))**(uint64*)(((char*)_FUNC_FACTOR_UDT_STATE)+((0+48)))));
#line 595 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,595,"const_eval.bas");}while(r);
#line 596 "utilities/const_eval.bas"
}else{
#line 597 "utilities/const_eval.bas"
do{
#line 597 "utilities/const_eval.bas"
SUB_PARSENUMSETI((void*)( ((char*)(_FUNC_FACTOR_UDT_NUM)) + ((0+0)) ),&(pass4145=*__LONG_INTEGER64TYPE-*__LONG_ISPOINTER),&(pass4146=*(int64*)(((char*)_FUNC_FACTOR_UDT_NUM)+((0+32)))**(int64*)(((char*)_FUNC_FACTOR_UDT_STATE)+((0+40)))));
#line 597 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,597,"const_eval.bas");}while(r);
#line 598 "utilities/const_eval.bas"
}
#line 598 "utilities/const_eval.bas"
}
#line 599 "utilities/const_eval.bas"
S_41111:;
#line 599 "utilities/const_eval.bas"
}else{
#line 599 "utilities/const_eval.bas"
if (qbs_cleanup(qbs_tmp_base,qbs_equal(_FUNC_FACTOR_STRING_ELE,qbs_new_txt_len("/",1)))){
#line 599 "utilities/const_eval.bas"
if(qbevent){evnt(28806,599,"const_eval.bas");if(r)goto S_41111;}
#line 600 "utilities/const_eval.bas"
do{
#line 600 "utilities/const_eval.bas"
qbs_set(_FUNC_FACTOR_STRING_ELE,FUNC_GETNEXTELEMENT(_FUNC_FACTOR_STRING_EXP,(int32*)(void*)( ((char*)(_FUNC_FACTOR_UDT_STATE)) + ((0+0)) ),(int32*)(void*)( ((char*)(_FUNC_FACTOR_UDT_STATE)) + ((0+4)) )));
#line 600 "utilities/const_eval.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 600 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,600,"const_eval.bas");}while(r);
#line 601 "utilities/const_eval.bas"
S_41113:;
#line 601 "utilities/const_eval.bas"
if ((qbs_cleanup(qbs_tmp_base,-(FUNC_UNARY(_FUNC_FACTOR_STRING_EXP,(void*)( ((char*)(_FUNC_FACTOR_UDT_STATE)) + ((0+0)) ))== 0 )))||is_error_pending()){
#line 601 "utilities/const_eval.bas"
if(qbevent){evnt(28806,601,"const_eval.bas");if(r)goto S_41113;}
#line 601 "utilities/const_eval.bas"
do{
#line 601 "utilities/const_eval.bas"
SUB_FIXUPERRORMESSAGE((void*)( ((char*)(_FUNC_FACTOR_UDT_STATE)) + ((0+0)) ),qbs_new_txt_len("/",1));
#line 601 "utilities/const_eval.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 601 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,601,"const_eval.bas");}while(r);
#line 601 "utilities/const_eval.bas"
do{
#line 601 "utilities/const_eval.bas"
goto exit_subfunc;
#line 601 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,601,"const_eval.bas");}while(r);
#line 601 "utilities/const_eval.bas"
}
#line 604 "utilities/const_eval.bas"
do{
#line 604 "utilities/const_eval.bas"
SUB_PARSENUMSETF((void*)( ((char*)(_FUNC_FACTOR_UDT_NUM)) + ((0+0)) ),&(pass4147=*__LONG_FLOATTYPE-*__LONG_ISPOINTER),&(pass4148=*(long double*)(((char*)_FUNC_FACTOR_UDT_NUM)+((0+0)))/ *(long double*)(((char*)_FUNC_FACTOR_UDT_STATE)+((0+8)))));
#line 604 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,604,"const_eval.bas");}while(r);
#line 605 "utilities/const_eval.bas"
}else{
#line 606 "utilities/const_eval.bas"
S_41119:;
#line 606 "utilities/const_eval.bas"
if (( 0ll )||is_error_pending()){
#line 606 "utilities/const_eval.bas"
if(qbevent){evnt(28806,606,"const_eval.bas");if(r)goto S_41119;}
#line 606 "utilities/const_eval.bas"
do{
#line 606 "utilities/const_eval.bas"
sub__echo(qbs_new_txt_len("Factor done!",12));
#line 606 "utilities/const_eval.bas"
qbs_cleanup(qbs_tmp_base,0);
#line 606 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,606,"const_eval.bas");}while(r);
#line 606 "utilities/const_eval.bas"
}
#line 607 "utilities/const_eval.bas"
do{
#line 607 "utilities/const_eval.bas"
memcpy((((char*)_FUNC_FACTOR_UDT_STATE)+((0+8))+((0+0))),(((char*)_FUNC_FACTOR_UDT_NUM)+((0+0))+((0+0))),32);
#line 607 "utilities/const_eval.bas"
memcpy((((char*)_FUNC_FACTOR_UDT_STATE)+((0+8))+((0+32))),(((char*)_FUNC_FACTOR_UDT_NUM)+((0+0))+((0+32))),8);
#line 607 "utilities/const_eval.bas"
memcpy((((char*)_FUNC_FACTOR_UDT_STATE)+((0+8))+((0+40))),(((char*)_FUNC_FACTOR_UDT_NUM)+((0+0))+((0+40))),8);
#line 607 "utilities/const_eval.bas"
qbs_set(*(qbs**)(((char*)_FUNC_FACTOR_UDT_STATE)+((0+8))+((0+48))),*(qbs**)(((char*)_FUNC_FACTOR_UDT_NUM)+((0+0))+((0+48))));
#line 607 "utilities/const_eval.bas"
memcpy((((char*)_FUNC_FACTOR_UDT_STATE)+((0+8))+((0+56))),(((char*)_FUNC_FACTOR_UDT_NUM)+((0+0))+((0+56))),4);
#line 607 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,607,"const_eval.bas");}while(r);
#line 608 "utilities/const_eval.bas"
do{
#line 608 "utilities/const_eval.bas"
*_FUNC_FACTOR_LONG_FACTOR= -1 ;
#line 608 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,608,"const_eval.bas");}while(r);
#line 609 "utilities/const_eval.bas"
do{
#line 609 "utilities/const_eval.bas"
goto exit_subfunc;
#line 609 "utilities/const_eval.bas"
if(!qbevent)break;evnt(28806,609,"const_eval.bas");}while(r);
#line 610 "utilities/const_eval.bas"
}
#line 610 "utilities/const_eval.bas"
}
#line 611 "utilities/const_eval.bas"
dl_continue_4140:;
#line 611 "utilities/const_eval.bas"
}while(1);
#line 611 "utilities/const_eval.bas"
dl_exit_4140:;
#line 612 "utilities/const_eval.bas"
exit_subfunc:;
#line 612 "utilities/const_eval.bas"
free_mem_lock(sf_mem_lock);
#line 612 "utilities/const_eval.bas"
#include "free256.txt"
#line 612 "utilities/const_eval.bas"
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;
#line 612 "utilities/const_eval.bas"
cmem_sp=tmp_cmem_sp;
#line 612 "utilities/const_eval.bas"
return *_FUNC_FACTOR_LONG_FACTOR;
#line 612 "utilities/const_eval.bas"
}
