Пример #1
0
int parseAndComputeMsParamArrayToEnv( msParamArray_t *var, Env *env, ruleExecInfo_t *rei, int reiSaveFlag, rError_t *errmsg, Region *r ) {
    int i;
    for ( i = 0; i < var->len; i++ ) {
        Res *res = newRes( r );
        int ret = convertMsParamToRes( var->msParam[i], res, r );
        if ( ret != 0 ) {
            return ret;
        }
        char *varName = var->msParam[i]->label;
        if ( TYPE( res ) == T_UNSPECED ) {
            if ( varName != NULL ) {
                updateInEnv( env, varName, res );
            }
            continue;
        }
        if ( TYPE( res ) != T_STRING ) {
            return -1;
        }

        char *expr = res->text;
        res = parseAndComputeExpression( expr, env, rei, reiSaveFlag, errmsg, r );
        if ( getNodeType( res )  ==  N_ERROR ) {
            return RES_ERR_CODE( res );
        }
        if ( varName != NULL ) {
            updateInEnv( env, varName, res );
        }
    }
    return 0;

}
Пример #2
0
int updateMsParamArrayToEnv(msParamArray_t *var, Env *env, rError_t *errmsg, Region *r) {
	int i;
	for(i=0;i<var->len;i++) {
		Res *res = newRes(r);
		int ret = convertMsParamToRes(var->msParam[i], res, errmsg, r);
        if(ret != 0) {
            return ret;
        }
		char *varName = var->msParam[i]->label;
        if(varName!=NULL) {
            updateInEnv(env, varName, res);
        }
	}
	return 0;
}