static int code_get_element( PVal *pval ) { // 変数の配列要素の取得 // PVal pvalTemp; int chk, idx; HspVarCoreReset(pval); while (1) { HspVarCoreCopyArrayInfo( &pvalTemp, pval ); // 状態を保存 chk = code_get(); HspVarCoreCopyArrayInfo( pval, &pvalTemp ); // 状態を復帰 if ( chk == PARAM_ENDSPLIT ) { if ( pval->arraycnt == 0 ) throw HSPERR_BAD_ARRAY_EXPRESSION; // a() 表記はエラー break; } if ( chk != PARAM_OK && chk != PARAM_SPLIT ) throw HSPERR_ARRAY_OVERFLOW; if ( mpval->flag != HSPVAR_FLAG_INT ) break; idx = *(int *)(mpval->pt); HspVarCoreArray( pval, idx ); } return chk; }
void RtCoreReset( PVal *pv ) { HspVarCoreReset( pv ); }