//规则子函数字符串 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); }