/* ------- code automatically created by ../scripts/adms_build_object.pl -------------- */ #include #include inline void adms_caseitem_free(p_caseitem mycaseitem) { if(!mycaseitem) return; adms_enumeration_free(mycaseitem->_math._dependency); free(mycaseitem->_math._value); adms_slist_free(mycaseitem->_condition); if(mycaseitem->_code) if(adms_adms(mycaseitem->_code)->_datatypename==adms_adms_enumeration_datatypename_quark) adms_quark_free(adms_quark(mycaseitem->_code)); adms_enumeration_free(mycaseitem->_defaultcase); adms_global_increment_nbcaseitemdestroy(); free(mycaseitem); } int adms_caseitem_cmp (p_caseitem mycaseitem,p_caseitem refcaseitem) { int status; status = ( (adms_caseitem_valueof_code (mycaseitem) != adms_caseitem_valueof_code (refcaseitem)) ); return status; } p_caseitem adms_caseitem_new(p_adms mycode) { p_caseitem mynewcaseitem=(p_caseitem) calloc(1,(size_t)sizeof(t_caseitem)); adms_global_increment_nbcaseitemnew(); mynewcaseitem->_math._adms._datatypename=adms_adms_enumeration_datatypename_caseitem; mynewcaseitem->_math._adms._seen=adms_adms_enumeration_seen_no; (mynewcaseitem->_math)._value=adms_real_new(adms_NAN); (mynewcaseitem->_math)._static=adms_enumeration_new(adms_math_enumeration_static_no,adms_math_fromstring_static_impl,adms_math_tostring_static_impl); (mynewcaseitem->_math)._dynamic=adms_enumeration_new(adms_math_enumeration_dynamic_no,adms_math_fromstring_dynamic_impl,adms_math_tostring_dynamic_impl); (mynewcaseitem->_math)._dependency=adms_enumeration_new(adms_math_enumeration_dependency_constant,adms_math_fromstring_dependency_impl,adms_math_tostring_dependency_impl); mynewcaseitem->_code_isdefault=-1; adms_caseitem_valueto_code (mynewcaseitem,mycode); mynewcaseitem->_code_isdefault=1; mynewcaseitem->_defaultcase_isdefault=-1; adms_caseitem_valueto_defaultcase(mynewcaseitem,adms_enumeration_new(adms_caseitem_enumeration_defaultcase_no,adms_caseitem_fromstring_defaultcase_impl,adms_caseitem_tostring_defaultcase_impl)); mynewcaseitem->_defaultcase_isdefault=1; mynewcaseitem->_condition_isdefault=-1; return mynewcaseitem; } p_adms adms_caseitem_new_impl (p_adms arguments[]) { p_caseitem mynewcaseitem; p_adms mycode=(p_adms)arguments[0]; mynewcaseitem=adms_caseitem_new(mycode); return adms_adms(mynewcaseitem); } /*caseitem*/ char*adms_caseitem_uid (p_caseitem mynewcaseitem) { char*myuid=NULL; adms_strconcat2(&myuid,"caseitem"); return myuid; } inline void adms_caseitem_valueto_code (p_caseitem mycaseitem,p_adms _code) { mycaseitem->_code=_code; mycaseitem->_code_isdefault=0; } inline void adms_caseitem_valueto_defaultcase (p_caseitem mycaseitem,p_enumeration _defaultcase) { mycaseitem->_defaultcase=_defaultcase; mycaseitem->_defaultcase_isdefault=0; } inline void adms_caseitem_valueto_condition (p_caseitem mycaseitem,p_slist _condition) { mycaseitem->_condition=_condition; mycaseitem->_condition_isdefault=0; } p_expression adms_caseitem_list_condition_lookup_by_id (p_caseitem mymycaseitem,p_module mymodule,p_adms mytree) { p_slist list=adms_caseitem_valueof_condition(mymycaseitem); while(list) { p_expression refexpression=adms_expression(list->data); if((adms_expression_valueof_module(refexpression)==mymodule)&& (adms_expression_valueof_tree(refexpression)==mytree)) return refexpression; list=list->next; } return NULL; } p_expression adms_caseitem_list_condition_prepend_by_id (p_caseitem mymycaseitem,p_module mymodule,p_adms mytree) { p_expression refcondition=adms_expression_new(mymodule,mytree); adms_slist_push(&adms_caseitem_valueof_condition(mymycaseitem),adms_adms(refcondition)); return refcondition; } p_expression adms_caseitem_list_condition_prepend_by_id_once_or_ignore (p_caseitem mymycaseitem,p_module mymodule,p_adms mytree) { p_slist list=adms_caseitem_valueof_condition(mymycaseitem); p_expression refcondition=adms_expression_new(mymodule,mytree); while(list) { if(!adms_expression_cmp(adms_expression(list->data),refcondition)) { adms_expression_free (refcondition); return adms_expression(list->data); } list=list->next; } adms_slist_push(&adms_caseitem_valueof_condition(mymycaseitem),adms_adms(refcondition)); return refcondition; } void adms_caseitem_list_condition_prepend_once_or_ignore (p_caseitem mymycaseitem,p_expression mycondition) { p_slist list=adms_caseitem_valueof_condition(mymycaseitem); while(list) { if(!adms_expression_cmp(adms_expression(list->data),mycondition)) return; list=list->next; } adms_slist_push(&adms_caseitem_valueof_condition(mymycaseitem),adms_adms(mycondition)); } e_caseitem_defaultcase adms_caseitem_fromstring_defaultcase_impl (p_admsttransform myadmsttransform,char*token) { if(!strcmp(token,"no")) return adms_caseitem_enumeration_defaultcase_no; if(!strcmp(token,"yes")) return adms_caseitem_enumeration_defaultcase_yes; adms_message_fatal_continue(("select='caseitem/defaultcase': possible values:\n")) adms_message_fatal_continue(("no|yes\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return 0; } char* adms_caseitem_tostring_defaultcase_impl (p_admsttransform myadmsttransform,p_enumeration myenumeration) { e_caseitem_defaultcase e=myenumeration->_value; if(e==adms_caseitem_enumeration_defaultcase_no) return "no"; if(e==adms_caseitem_enumeration_defaultcase_yes) return "yes"; adms_message_fatal_continue(("select='caseitem/defaultcase': possible values:\n")) adms_message_fatal_continue(("no|yes\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return NULL; }