/* ------- code automatically created by ../scripts/adms_build_object.pl -------------- */ #include #include inline void adms_case_free(p_case mycase) { if(!mycase) return; adms_enumeration_free(mycase->_math._dependency); free(mycase->_math._value); adms_slist_free(mycase->_caseitem); adms_quark_free(mycase->_name); adms_global_increment_nbcasedestroy(); free(mycase); } int adms_case_cmp (p_case mycase,p_case refcase) { int status; status = ( (adms_case_valueof_module (mycase) != adms_case_valueof_module (refcase)) || (adms_case_valueof_case (mycase) != adms_case_valueof_case (refcase)) ); return status; } p_case adms_case_new(p_module mymodule,p_expression mycase) { p_case mynewcase=(p_case) calloc(1,(size_t)sizeof(t_case)); adms_global_increment_nbcasenew(); mynewcase->_math._adms._datatypename=adms_adms_enumeration_datatypename_case; mynewcase->_math._adms._seen=adms_adms_enumeration_seen_no; (mynewcase->_math)._value=adms_real_new(adms_NAN); (mynewcase->_math)._static=adms_enumeration_new(adms_math_enumeration_static_no,adms_math_fromstring_static_impl,adms_math_tostring_static_impl); (mynewcase->_math)._dynamic=adms_enumeration_new(adms_math_enumeration_dynamic_no,adms_math_fromstring_dynamic_impl,adms_math_tostring_dynamic_impl); (mynewcase->_math)._dependency=adms_enumeration_new(adms_math_enumeration_dependency_constant,adms_math_fromstring_dependency_impl,adms_math_tostring_dependency_impl); mynewcase->_module_isdefault=-1; adms_case_valueto_module (mynewcase,mymodule); mynewcase->_module_isdefault=1; mynewcase->_case_isdefault=-1; adms_case_valueto_case (mynewcase,mycase); mynewcase->_case_isdefault=1; mynewcase->_name_isdefault=-1; adms_case_valueto_name(mynewcase,adms_quark_new("")); mynewcase->_name_isdefault=1; mynewcase->_caseitem_isdefault=-1; return mynewcase; } p_adms adms_case_new_impl (p_adms arguments[]) { p_case mynewcase; p_module mymodule=(p_module)arguments[0]; p_expression mycase=(p_expression)arguments[1]; mynewcase=adms_case_new(mymodule,mycase); return adms_adms(mynewcase); } /*case*/ char*adms_case_uid (p_case mynewcase) { char*myuid=NULL; adms_strconcat2(&myuid,"case"); return myuid; } inline void adms_case_valueto_module (p_case mycase,p_module _module) { mycase->_module=_module; mycase->_module_isdefault=0; } inline void adms_case_valueto_case (p_case mycase,p_expression _case) { mycase->_case=_case; mycase->_case_isdefault=0; } inline void adms_case_valueto_name (p_case mycase,p_quark _name) { if(mycase->_name_isdefault!=-1) adms_quark_free(mycase->_name); mycase->_name=_name; mycase->_name_isdefault=0; } inline void adms_case_valueto_caseitem (p_case mycase,p_slist _caseitem) { mycase->_caseitem=_caseitem; mycase->_caseitem_isdefault=0; } p_caseitem adms_case_list_caseitem_lookup_by_id (p_case mymycase,p_adms mycode) { p_slist list=adms_case_valueof_caseitem(mymycase); while(list) { p_caseitem refcaseitem=adms_caseitem(list->data); if((adms_caseitem_valueof_code(refcaseitem)==mycode)) return refcaseitem; list=list->next; } return NULL; } p_caseitem adms_case_list_caseitem_prepend_by_id (p_case mymycase,p_adms mycode) { p_caseitem refcaseitem=adms_caseitem_new(mycode); adms_slist_push(&adms_case_valueof_caseitem(mymycase),adms_adms(refcaseitem)); return refcaseitem; } p_caseitem adms_case_list_caseitem_prepend_by_id_once_or_ignore (p_case mymycase,p_adms mycode) { p_slist list=adms_case_valueof_caseitem(mymycase); p_caseitem refcaseitem=adms_caseitem_new(mycode); while(list) { if(!adms_caseitem_cmp(adms_caseitem(list->data),refcaseitem)) { adms_caseitem_free (refcaseitem); return adms_caseitem(list->data); } list=list->next; } adms_slist_push(&adms_case_valueof_caseitem(mymycase),adms_adms(refcaseitem)); return refcaseitem; } void adms_case_list_caseitem_prepend_once_or_ignore (p_case mymycase,p_caseitem mycaseitem) { p_slist list=adms_case_valueof_caseitem(mymycase); while(list) { if(!adms_caseitem_cmp(adms_caseitem(list->data),mycaseitem)) return; list=list->next; } adms_slist_push(&adms_case_valueof_caseitem(mymycase),adms_adms(mycaseitem)); }