Exemple #1
0
//规则子函数字符串
int opfunc(struct function *fc,struct rule *r,char *fl){ //根据函数动作如:alert("test");转化成函数结构
	//处理表达式字符串
	char *v1=NULL;
	char *v2=NULL;
	char *p=NULL;
	if((p=strstr(fl,"++"))){
		p[0]='\0'; //切割出表达式参数
		v1=fl;
		set_addself(r,fc,v1);
		return 1;
	}
	if((p=strstr(fl,"--"))){
		p[0]='\0';
		v1=fl;
		set_delself(r,fc,v1);
		return 2;
	}
	if((p=strstr(fl,">"))){
		p[0]='\0';
		v1=fl;
		v2=p+1;
		set_greater(r,fc,v1,v2);
		return 3;
	}
	if((p=strstr(fl,"<"))){
		p[0]='\0';
		v1=fl;
		v2=p+1;
		set_less(r,fc,v1,v2);
		return 4;
	}
	if((p=strstr(fl,"=="))){
		p[0]='\0';
		v1=fl;
		v2=p+2;
		set_equal(r,fc,v1,v2);
		return 5;
	}
	if((p=strstr(fl,"!="))){
		p[0]='\0';
		v1=fl;
		v2=p+2;
		set_unequal(r,fc,v1,v2);
		return 6;
	}
	set_function(r,fc,fl);
	return 0;
}
void _type_less_set(const void* cpv_first, const void* cpv_second, void* pv_output)
{
    assert(cpv_first != NULL && cpv_second != NULL && pv_output != NULL);
    *(bool_t*)pv_output = set_less((set_t*)cpv_first, (set_t*)cpv_second);
}