/* ------- code automatically created by ../scripts/adms_build_object.pl -------------- */ #include #include inline void adms_contribution_free(p_contribution mycontribution) { if(!mycontribution) return; adms_enumeration_free(mycontribution->_math._dependency); free(mycontribution->_math._value); {p_slist l=mycontribution->_attribute;for(;l;l=l->next) adms_attribute_free(adms_attribute(l->data));} adms_slist_free(mycontribution->_attribute); adms_quark_free(mycontribution->_name); adms_enumeration_free(mycontribution->_whitenoise); adms_enumeration_free(mycontribution->_flickernoise); adms_global_increment_nbcontributiondestroy(); free(mycontribution); } int adms_contribution_cmp (p_contribution mycontribution,p_contribution refcontribution) { int status; status = ( (adms_contribution_valueof_module (mycontribution) != adms_contribution_valueof_module (refcontribution)) || (adms_contribution_valueof_lhs (mycontribution) != adms_contribution_valueof_lhs (refcontribution)) || (adms_contribution_valueof_rhs (mycontribution) != adms_contribution_valueof_rhs (refcontribution)) ); return status; } p_contribution adms_contribution_new(p_module mymodule,p_source mylhs,p_expression myrhs) { p_contribution mynewcontribution=(p_contribution) calloc(1,(size_t)sizeof(t_contribution)); adms_global_increment_nbcontributionnew(); mynewcontribution->_math._adms._datatypename=adms_adms_enumeration_datatypename_contribution; mynewcontribution->_math._adms._seen=adms_adms_enumeration_seen_no; (mynewcontribution->_math)._value=adms_real_new(adms_NAN); (mynewcontribution->_math)._static=adms_enumeration_new(adms_math_enumeration_static_no,adms_math_fromstring_static_impl,adms_math_tostring_static_impl); (mynewcontribution->_math)._dynamic=adms_enumeration_new(adms_math_enumeration_dynamic_no,adms_math_fromstring_dynamic_impl,adms_math_tostring_dynamic_impl); (mynewcontribution->_math)._dependency=adms_enumeration_new(adms_math_enumeration_dependency_constant,adms_math_fromstring_dependency_impl,adms_math_tostring_dependency_impl); mynewcontribution->_module_isdefault=-1; adms_contribution_valueto_module (mynewcontribution,mymodule); mynewcontribution->_module_isdefault=1; mynewcontribution->_lhs_isdefault=-1; adms_contribution_valueto_lhs (mynewcontribution,mylhs); mynewcontribution->_lhs_isdefault=1; mynewcontribution->_rhs_isdefault=-1; adms_contribution_valueto_rhs (mynewcontribution,myrhs); mynewcontribution->_rhs_isdefault=1; mynewcontribution->_branchalias_isdefault=-1; mynewcontribution->_name_isdefault=-1; adms_contribution_valueto_name(mynewcontribution,adms_quark_new("")); mynewcontribution->_name_isdefault=1; mynewcontribution->_whitenoise_isdefault=-1; adms_contribution_valueto_whitenoise(mynewcontribution,adms_enumeration_new(adms_contribution_enumeration_whitenoise_no,adms_contribution_fromstring_whitenoise_impl,adms_contribution_tostring_whitenoise_impl)); mynewcontribution->_whitenoise_isdefault=1; mynewcontribution->_flickernoise_isdefault=-1; adms_contribution_valueto_flickernoise(mynewcontribution,adms_enumeration_new(adms_contribution_enumeration_flickernoise_no,adms_contribution_fromstring_flickernoise_impl,adms_contribution_tostring_flickernoise_impl)); mynewcontribution->_flickernoise_isdefault=1; mynewcontribution->_attribute_isdefault=-1; return mynewcontribution; } p_adms adms_contribution_new_impl (p_adms arguments[]) { p_contribution mynewcontribution; p_module mymodule=(p_module)arguments[0]; p_source mylhs=(p_source)arguments[1]; p_expression myrhs=(p_expression)arguments[2]; mynewcontribution=adms_contribution_new(mymodule,mylhs,myrhs); return adms_adms(mynewcontribution); } /*contribution $2<+$3;*/ char*adms_contribution_uid (p_contribution mynewcontribution) { char*myuid=NULL; char*myuid0=adms_source_uid(mynewcontribution->_lhs); char*myuid1=adms_expression_uid(mynewcontribution->_rhs); adms_strconcat2(&myuid,"contribution "); adms_strconcat(&myuid,myuid0); adms_strconcat2(&myuid,"<+"); adms_strconcat(&myuid,myuid1); adms_strconcat2(&myuid,";"); return myuid; } inline void adms_contribution_valueto_module (p_contribution mycontribution,p_module _module) { mycontribution->_module=_module; mycontribution->_module_isdefault=0; } inline void adms_contribution_valueto_lhs (p_contribution mycontribution,p_source _lhs) { mycontribution->_lhs=_lhs; mycontribution->_lhs_isdefault=0; } inline void adms_contribution_valueto_rhs (p_contribution mycontribution,p_expression _rhs) { mycontribution->_rhs=_rhs; mycontribution->_rhs_isdefault=0; } inline void adms_contribution_valueto_branchalias (p_contribution mycontribution,p_branchalias _branchalias) { mycontribution->_branchalias=_branchalias; mycontribution->_branchalias_isdefault=0; } inline void adms_contribution_valueto_name (p_contribution mycontribution,p_quark _name) { if(mycontribution->_name_isdefault!=-1) adms_quark_free(mycontribution->_name); mycontribution->_name=_name; mycontribution->_name_isdefault=0; } inline void adms_contribution_valueto_whitenoise (p_contribution mycontribution,p_enumeration _whitenoise) { mycontribution->_whitenoise=_whitenoise; mycontribution->_whitenoise_isdefault=0; } inline void adms_contribution_valueto_flickernoise (p_contribution mycontribution,p_enumeration _flickernoise) { mycontribution->_flickernoise=_flickernoise; mycontribution->_flickernoise_isdefault=0; } inline void adms_contribution_valueto_attribute (p_contribution mycontribution,p_slist _attribute) { mycontribution->_attribute=_attribute; mycontribution->_attribute_isdefault=0; } p_attribute adms_contribution_list_attribute_lookup_by_id (p_contribution mymycontribution,p_quark myname) { p_slist list=adms_contribution_valueof_attribute(mymycontribution); while(list) { p_attribute refattribute=adms_attribute(list->data); if(!strcmp(adms_attribute_valueof_name(refattribute)->_value,myname->_value)) return refattribute; list=list->next; } return NULL; } p_attribute adms_contribution_list_attribute_prepend_by_id (p_contribution mymycontribution,p_quark myname) { p_attribute refattribute=adms_attribute_new(myname); adms_slist_push(&adms_contribution_valueof_attribute(mymycontribution),adms_adms(refattribute)); return refattribute; } p_attribute adms_contribution_list_attribute_prepend_by_id_once_or_ignore (p_contribution mymycontribution,p_quark myname) { p_attribute refattribute=adms_attribute_new(myname); adms_slist_push(&adms_contribution_valueof_attribute(mymycontribution),adms_adms(refattribute)); return refattribute; } void adms_contribution_list_attribute_prepend (p_contribution mymycontribution,p_attribute myattribute) { adms_slist_push(&adms_contribution_valueof_attribute(mymycontribution),adms_adms(myattribute)); } e_contribution_whitenoise adms_contribution_fromstring_whitenoise_impl (p_admsttransform myadmsttransform,char*token) { if(!strcmp(token,"no")) return adms_contribution_enumeration_whitenoise_no; if(!strcmp(token,"yes")) return adms_contribution_enumeration_whitenoise_yes; adms_message_fatal_continue(("select='contribution/whitenoise': possible values:\n")) adms_message_fatal_continue(("no|yes\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return 0; } char* adms_contribution_tostring_whitenoise_impl (p_admsttransform myadmsttransform,p_enumeration myenumeration) { e_contribution_whitenoise e=myenumeration->_value; if(e==adms_contribution_enumeration_whitenoise_no) return "no"; if(e==adms_contribution_enumeration_whitenoise_yes) return "yes"; adms_message_fatal_continue(("select='contribution/whitenoise': possible values:\n")) adms_message_fatal_continue(("no|yes\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return NULL; } e_contribution_flickernoise adms_contribution_fromstring_flickernoise_impl (p_admsttransform myadmsttransform,char*token) { if(!strcmp(token,"no")) return adms_contribution_enumeration_flickernoise_no; if(!strcmp(token,"yes")) return adms_contribution_enumeration_flickernoise_yes; adms_message_fatal_continue(("select='contribution/flickernoise': possible values:\n")) adms_message_fatal_continue(("no|yes\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return 0; } char* adms_contribution_tostring_flickernoise_impl (p_admsttransform myadmsttransform,p_enumeration myenumeration) { e_contribution_flickernoise e=myenumeration->_value; if(e==adms_contribution_enumeration_flickernoise_no) return "no"; if(e==adms_contribution_enumeration_flickernoise_yes) return "yes"; adms_message_fatal_continue(("select='contribution/flickernoise': possible values:\n")) adms_message_fatal_continue(("no|yes\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return NULL; }