qbs* FUNC_UDTARRAYINDEXEXPR(qbs*_FUNC_UDTARRAYINDEXEXPR_STRING_INDEXES,int32*_FUNC_UDTARRAYINDEXEXPR_LONG_DIMENSION_COUNT,qbs*_FUNC_UDTARRAYINDEXEXPR_STRING_DESCRIPTOR){
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 "data14.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;
do{
if(!qbevent)break;evnt(15035);}while(r);
do{
*_FUNC_UDTARRAYINDEXEXPR_LONG_N=FUNC_NUMELEMENTS(_FUNC_UDTARRAYINDEXEXPR_STRING_INDEXES);
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15037);}while(r);
S_17492:;
if ((-(*_FUNC_UDTARRAYINDEXEXPR_LONG_N== 0 ))||is_error_pending()){
if(qbevent){evnt(15038);if(r)goto S_17492;}
do{
SUB_GIVE_ERROR(qbs_new_txt_len("Array index missing",19));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15038);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(15038);}while(r);
}
S_17496:;
if ((-(*_FUNC_UDTARRAYINDEXEXPR_LONG_DIMENSION_COUNT<= 0 ))||is_error_pending()){
if(qbevent){evnt(15039);if(r)goto S_17496;}
do{
SUB_GIVE_ERROR(qbs_new_txt_len("TYPE member is not an array",27));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15039);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(15039);}while(r);
}
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR,qbs_new_txt_len("",0));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15041);}while(r);
do{
*_FUNC_UDTARRAYINDEXEXPR_LONG_STRIDE= 1 ;
if(!qbevent)break;evnt(15042);}while(r);
do{
*_FUNC_UDTARRAYINDEXEXPR_LONG_DESC_POS= 1 ;
if(!qbevent)break;evnt(15043);}while(r);
do{
*_FUNC_UDTARRAYINDEXEXPR_LONG_FOUND_DIMENSIONS= 0 ;
if(!qbevent)break;evnt(15044);}while(r);
do{
*_FUNC_UDTARRAYINDEXEXPR_LONG_B= 0 ;
if(!qbevent)break;evnt(15045);}while(r);
do{
*_FUNC_UDTARRAYINDEXEXPR_LONG_FIRSTI= 1 ;
if(!qbevent)break;evnt(15046);}while(r);
S_17506:;
fornext_value2561= 1 ;
fornext_finalvalue2561=*_FUNC_UDTARRAYINDEXEXPR_LONG_N;
fornext_step2561= 1 ;
if (fornext_step2561<0) fornext_step_negative2561=1; else fornext_step_negative2561=0;
if (is_error_pending()) goto fornext_error2561;
goto fornext_entrylabel2561;
while(1){
fornext_value2561=fornext_step2561+(*_FUNC_UDTARRAYINDEXEXPR_LONG_I);
fornext_entrylabel2561:
*_FUNC_UDTARRAYINDEXEXPR_LONG_I=fornext_value2561;
if (fornext_step_negative2561){
if (fornext_value2561<fornext_finalvalue2561) break;
}else{
if (fornext_value2561>fornext_finalvalue2561) break;
}
fornext_error2561:;
if(qbevent){evnt(15048);if(r)goto S_17506;}
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_E,FUNC_GETELEMENT(_FUNC_UDTARRAYINDEXEXPR_STRING_INDEXES,_FUNC_UDTARRAYINDEXEXPR_LONG_I));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15049);}while(r);
S_17508:;
if ((qbs_cleanup(qbs_tmp_base,qbs_equal(_FUNC_UDTARRAYINDEXEXPR_STRING_E,qbs_new_txt_len("(",1))))||is_error_pending()){
if(qbevent){evnt(15050);if(r)goto S_17508;}
do{
*_FUNC_UDTARRAYINDEXEXPR_LONG_B=*_FUNC_UDTARRAYINDEXEXPR_LONG_B+ 1 ;
if(!qbevent)break;evnt(15050);}while(r);
}
S_17511:;
if ((qbs_cleanup(qbs_tmp_base,qbs_equal(_FUNC_UDTARRAYINDEXEXPR_STRING_E,qbs_new_txt_len(")",1))))||is_error_pending()){
if(qbevent){evnt(15051);if(r)goto S_17511;}
do{
*_FUNC_UDTARRAYINDEXEXPR_LONG_B=*_FUNC_UDTARRAYINDEXEXPR_LONG_B- 1 ;
if(!qbevent)break;evnt(15051);}while(r);
}
S_17514:;
if ((qbs_cleanup(qbs_tmp_base,(((-(*_FUNC_UDTARRAYINDEXEXPR_LONG_B== 0 ))&(qbs_equal(_FUNC_UDTARRAYINDEXEXPR_STRING_E,qbs_new_txt_len(",",1)))))|(-(*_FUNC_UDTARRAYINDEXEXPR_LONG_I==*_FUNC_UDTARRAYINDEXEXPR_LONG_N))))||is_error_pending()){
if(qbevent){evnt(15052);if(r)goto S_17514;}
S_17515:;
if ((-(*_FUNC_UDTARRAYINDEXEXPR_LONG_I==*_FUNC_UDTARRAYINDEXEXPR_LONG_N))||is_error_pending()){
if(qbevent){evnt(15053);if(r)goto S_17515;}
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_IDX_SRC,FUNC_GETELEMENTS(_FUNC_UDTARRAYINDEXEXPR_STRING_INDEXES,_FUNC_UDTARRAYINDEXEXPR_LONG_FIRSTI,_FUNC_UDTARRAYINDEXEXPR_LONG_I));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15054);}while(r);
}else{
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_IDX_SRC,FUNC_GETELEMENTS(_FUNC_UDTARRAYINDEXEXPR_STRING_INDEXES,_FUNC_UDTARRAYINDEXEXPR_LONG_FIRSTI,&(pass2562=*_FUNC_UDTARRAYINDEXEXPR_LONG_I- 1 )));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15056);}while(r);
}
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_IDX_SRC,FUNC_EVALUATETOTYP(_FUNC_UDTARRAYINDEXEXPR_STRING_IDX_SRC,&(pass2563= 64 )));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15058);}while(r);
S_17521:;
if ((*__LONG_ERROR_HAPPENED)||is_error_pending()){
if(qbevent){evnt(15059);if(r)goto S_17521;}
do{
goto exit_subfunc;
if(!qbevent)break;evnt(15059);}while(r);
}
S_17524:;
if ((qbs_cleanup(qbs_tmp_base,qbs_equal(_FUNC_UDTARRAYINDEXEXPR_STRING_IDX_SRC,qbs_new_txt_len("",0))))||is_error_pending()){
if(qbevent){evnt(15060);if(r)goto S_17524;}
do{
SUB_GIVE_ERROR(qbs_new_txt_len("Array index missing",19));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15060);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(15060);}while(r);
}
do{
*_FUNC_UDTARRAYINDEXEXPR_LONG_FOUND_DIMENSIONS=*_FUNC_UDTARRAYINDEXEXPR_LONG_FOUND_DIMENSIONS+ 1 ;
if(!qbevent)break;evnt(15062);}while(r);
S_17529:;
if ((-(*_FUNC_UDTARRAYINDEXEXPR_LONG_FOUND_DIMENSIONS>*_FUNC_UDTARRAYINDEXEXPR_LONG_DIMENSION_COUNT))||is_error_pending()){
if(qbevent){evnt(15063);if(r)goto S_17529;}
do{
SUB_GIVE_ERROR(qbs_new_txt_len("Cannot change the number of elements an array has!",50));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15063);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(15063);}while(r);
}
S_17533:;
if ((qbs_cleanup(qbs_tmp_base,-(FUNC_PARSENEXTUDTARRAYDESCRIPTORDIM(_FUNC_UDTARRAYINDEXEXPR_STRING_DESCRIPTOR,_FUNC_UDTARRAYINDEXEXPR_LONG_DESC_POS,_FUNC_UDTARRAYINDEXEXPR_LONG_DIM_LOWER,_FUNC_UDTARRAYINDEXEXPR_LONG_DIM_ELEMENTS)== 0 )))||is_error_pending()){
if(qbevent){evnt(15064);if(r)goto S_17533;}
do{
SUB_GIVE_ERROR(qbs_new_txt_len("Invalid TYPE member array metadata",34));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15064);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(15064);}while(r);
}
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_DIM_LOWER_TXT,qbs_ltrim(qbs_str((int32)(*_FUNC_UDTARRAYINDEXEXPR_LONG_DIM_LOWER))));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15066);}while(r);
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_DIM_ELEMENTS_TXT,qbs_ltrim(qbs_str((int32)(*_FUNC_UDTARRAYINDEXEXPR_LONG_DIM_ELEMENTS))));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15067);}while(r);
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_STRIDE_TXT,qbs_ltrim(qbs_str((int32)(*_FUNC_UDTARRAYINDEXEXPR_LONG_STRIDE))));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15068);}while(r);
S_17540:;
if ((-(*_FUNC_UDTARRAYINDEXEXPR_LONG_FOUND_DIMENSIONS== 1 ))||is_error_pending()){
if(qbevent){evnt(15070);if(r)goto S_17540;}
S_17541:;
if ((*__LONG_CHECKINGON)||is_error_pending()){
if(qbevent){evnt(15071);if(r)goto S_17541;}
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR,qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR,qbs_new_txt_len("array_check((",13)),_FUNC_UDTARRAYINDEXEXPR_STRING_IDX_SRC),qbs_new_txt_len(")-(",3)),_FUNC_UDTARRAYINDEXEXPR_STRING_DIM_LOWER_TXT),qbs_new_txt_len("),",2)),_FUNC_UDTARRAYINDEXEXPR_STRING_DIM_ELEMENTS_TXT),qbs_new_txt_len(")+",2)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15072);}while(r);
}else{
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR,qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR,qbs_new_txt_len("((",2)),_FUNC_UDTARRAYINDEXEXPR_STRING_IDX_SRC),qbs_new_txt_len(")-(",3)),_FUNC_UDTARRAYINDEXEXPR_STRING_DIM_LOWER_TXT),qbs_new_txt_len("))+",3)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15074);}while(r);
}
}else{
S_17547:;
if ((*__LONG_CHECKINGON)||is_error_pending()){
if(qbevent){evnt(15077);if(r)goto S_17547;}
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR,qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR,qbs_new_txt_len("array_check((",13)),_FUNC_UDTARRAYINDEXEXPR_STRING_IDX_SRC),qbs_new_txt_len(")-(",3)),_FUNC_UDTARRAYINDEXEXPR_STRING_DIM_LOWER_TXT),qbs_new_txt_len("),",2)),_FUNC_UDTARRAYINDEXEXPR_STRING_DIM_ELEMENTS_TXT),qbs_new_txt_len(")*",2)),_FUNC_UDTARRAYINDEXEXPR_STRING_STRIDE_TXT),qbs_new_txt_len("+",1)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15078);}while(r);
}else{
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR,qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR,qbs_new_txt_len("((",2)),_FUNC_UDTARRAYINDEXEXPR_STRING_IDX_SRC),qbs_new_txt_len(")-(",3)),_FUNC_UDTARRAYINDEXEXPR_STRING_DIM_LOWER_TXT),qbs_new_txt_len("))*",3)),_FUNC_UDTARRAYINDEXEXPR_STRING_STRIDE_TXT),qbs_new_txt_len("+",1)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15080);}while(r);
}
}
do{
*_FUNC_UDTARRAYINDEXEXPR_LONG_STRIDE=*_FUNC_UDTARRAYINDEXEXPR_LONG_STRIDE**_FUNC_UDTARRAYINDEXEXPR_LONG_DIM_ELEMENTS;
if(!qbevent)break;evnt(15084);}while(r);
do{
*_FUNC_UDTARRAYINDEXEXPR_LONG_FIRSTI=*_FUNC_UDTARRAYINDEXEXPR_LONG_I+ 1 ;
if(!qbevent)break;evnt(15085);}while(r);
}
fornext_continue_2560:;
}
fornext_exit_2560:;
S_17557:;
if ((-(*_FUNC_UDTARRAYINDEXEXPR_LONG_FOUND_DIMENSIONS!=*_FUNC_UDTARRAYINDEXEXPR_LONG_DIMENSION_COUNT))||is_error_pending()){
if(qbevent){evnt(15089);if(r)goto S_17557;}
do{
SUB_GIVE_ERROR(qbs_new_txt_len("Cannot change the number of elements an array has!",50));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15089);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(15089);}while(r);
}
S_17561:;
if ((qbs_cleanup(qbs_tmp_base,FUNC_PARSENEXTUDTARRAYDESCRIPTORDIM(_FUNC_UDTARRAYINDEXEXPR_STRING_DESCRIPTOR,_FUNC_UDTARRAYINDEXEXPR_LONG_DESC_POS,_FUNC_UDTARRAYINDEXEXPR_LONG_DIM_LOWER,_FUNC_UDTARRAYINDEXEXPR_LONG_DIM_ELEMENTS)))||is_error_pending()){
if(qbevent){evnt(15090);if(r)goto S_17561;}
do{
SUB_GIVE_ERROR(qbs_new_txt_len("Cannot change the number of elements an array has!",50));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15090);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(15090);}while(r);
}
S_17565:;
if ((qbs_cleanup(qbs_tmp_base,qbs_equal(_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR,qbs_new_txt_len("",0))))||is_error_pending()){
if(qbevent){evnt(15091);if(r)goto S_17565;}
do{
SUB_GIVE_ERROR(qbs_new_txt_len("Array index missing",19));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15091);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(15091);}while(r);
}
do{
qbs_set(_FUNC_UDTARRAYINDEXEXPR_STRING_UDTARRAYINDEXEXPR,qbs_left(_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR,_FUNC_UDTARRAYINDEXEXPR_STRING_RESULT_EXPR->len- 1 ));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(15093);}while(r);
exit_subfunc:;
free_mem_lock(sf_mem_lock);
#include "free14.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;
qbs_maketmp(_FUNC_UDTARRAYINDEXEXPR_STRING_UDTARRAYINDEXEXPR);return _FUNC_UDTARRAYINDEXEXPR_STRING_UDTARRAYINDEXEXPR;
}
