Esempio n. 1
0
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;
}
Esempio n. 2
0
void RtCoreReset( PVal *pv )
{
	HspVarCoreReset( pv );
}