/* ------- code automatically created by ../scripts/adms_build_object.pl -------------- */ #include #include inline void adms_math_free(p_math mymath) { if(!mymath) return; {p_slist l=mymath->_attribute;for(;l;l=l->next) adms_attribute_free(adms_attribute(l->data));} adms_slist_free(mymath->_attribute); adms_quark_free(mymath->_name); adms_enumeration_free(mymath->_static); adms_enumeration_free(mymath->_dynamic); adms_enumeration_free(mymath->_dependency); adms_global_increment_nbmathdestroy(); free(mymath); } int adms_math_cmp (p_math mymath,p_math refmath) { int status; status = ( !!strcmp(adms_math_valueof_name (mymath)->_value,adms_math_valueof_name (refmath)->_value) ); return status; } p_math adms_math_new(p_quark myname) { p_math mynewmath=(p_math) calloc(1,(size_t)sizeof(t_math)); adms_global_increment_nbmathnew(); mynewmath->_adms._datatypename=adms_adms_enumeration_datatypename_math; mynewmath->_adms._seen=adms_adms_enumeration_seen_no; mynewmath->_name_isdefault=-1; adms_math_valueto_name (mynewmath,myname); mynewmath->_name_isdefault=1; mynewmath->_value_isdefault=-1; adms_math_valueto_value(mynewmath,adms_real_new(adms_NAN)); mynewmath->_value_isdefault=1; mynewmath->_static_isdefault=-1; adms_math_valueto_static(mynewmath,adms_enumeration_new(adms_math_enumeration_static_no,adms_math_fromstring_static_impl,adms_math_tostring_static_impl)); mynewmath->_static_isdefault=1; mynewmath->_dynamic_isdefault=-1; adms_math_valueto_dynamic(mynewmath,adms_enumeration_new(adms_math_enumeration_dynamic_no,adms_math_fromstring_dynamic_impl,adms_math_tostring_dynamic_impl)); mynewmath->_dynamic_isdefault=1; mynewmath->_dependency_isdefault=-1; adms_math_valueto_dependency(mynewmath,adms_enumeration_new(adms_math_enumeration_dependency_constant,adms_math_fromstring_dependency_impl,adms_math_tostring_dependency_impl)); mynewmath->_dependency_isdefault=1; mynewmath->_attribute_isdefault=-1; return mynewmath; } p_adms adms_math_new_impl (p_adms arguments[]) { p_math mynewmath; p_quark myname=adms_quark_new((char*)arguments[0]); mynewmath=adms_math_new(myname); return adms_adms(mynewmath); } /*$1*/ char*adms_math_uid (p_math mynewmath) { char*myuid=NULL; char*myuid0=adms_quark_uid(mynewmath->_name); adms_strconcat(&myuid,myuid0); return myuid; } inline void adms_math_valueto_name (p_math mymath,p_quark _name) { if(mymath->_name_isdefault!=-1) adms_quark_free(mymath->_name); mymath->_name=_name; mymath->_name_isdefault=0; } inline void adms_math_valueto_value (p_math mymath,p_real _value) { mymath->_value=_value; mymath->_value_isdefault=0; } inline void adms_math_valueto_static (p_math mymath,p_enumeration _static) { mymath->_static=_static; mymath->_static_isdefault=0; } inline void adms_math_valueto_dynamic (p_math mymath,p_enumeration _dynamic) { mymath->_dynamic=_dynamic; mymath->_dynamic_isdefault=0; } inline void adms_math_valueto_dependency (p_math mymath,p_enumeration _dependency) { mymath->_dependency=_dependency; mymath->_dependency_isdefault=0; } inline void adms_math_valueto_attribute (p_math mymath,p_slist _attribute) { mymath->_attribute=_attribute; mymath->_attribute_isdefault=0; } p_attribute adms_math_list_attribute_lookup_by_id (p_math mymymath,p_quark myname) { p_slist list=adms_math_valueof_attribute(mymymath); 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_math_list_attribute_prepend_by_id (p_math mymymath,p_quark myname) { p_attribute refattribute=adms_attribute_new(myname); adms_slist_push(&adms_math_valueof_attribute(mymymath),adms_adms(refattribute)); return refattribute; } p_attribute adms_math_list_attribute_prepend_by_id_once_or_ignore (p_math mymymath,p_quark myname) { p_attribute refattribute=adms_attribute_new(myname); adms_slist_push(&adms_math_valueof_attribute(mymymath),adms_adms(refattribute)); return refattribute; } void adms_math_list_attribute_prepend (p_math mymymath,p_attribute myattribute) { adms_slist_push(&adms_math_valueof_attribute(mymymath),adms_adms(myattribute)); } e_math_static adms_math_fromstring_static_impl (p_admsttransform myadmsttransform,char*token) { if(!strcmp(token,"no")) return adms_math_enumeration_static_no; if(!strcmp(token,"yes")) return adms_math_enumeration_static_yes; adms_message_fatal_continue(("select='math/static': possible values:\n")) adms_message_fatal_continue(("no|yes\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return 0; } char* adms_math_tostring_static_impl (p_admsttransform myadmsttransform,p_enumeration myenumeration) { e_math_static e=myenumeration->_value; if(e==adms_math_enumeration_static_no) return "no"; if(e==adms_math_enumeration_static_yes) return "yes"; adms_message_fatal_continue(("select='math/static': possible values:\n")) adms_message_fatal_continue(("no|yes\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return NULL; } e_math_dynamic adms_math_fromstring_dynamic_impl (p_admsttransform myadmsttransform,char*token) { if(!strcmp(token,"no")) return adms_math_enumeration_dynamic_no; if(!strcmp(token,"yes")) return adms_math_enumeration_dynamic_yes; adms_message_fatal_continue(("select='math/dynamic': possible values:\n")) adms_message_fatal_continue(("no|yes\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return 0; } char* adms_math_tostring_dynamic_impl (p_admsttransform myadmsttransform,p_enumeration myenumeration) { e_math_dynamic e=myenumeration->_value; if(e==adms_math_enumeration_dynamic_no) return "no"; if(e==adms_math_enumeration_dynamic_yes) return "yes"; adms_message_fatal_continue(("select='math/dynamic': possible values:\n")) adms_message_fatal_continue(("no|yes\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return NULL; } e_math_dependency adms_math_fromstring_dependency_impl (p_admsttransform myadmsttransform,char*token) { if(!strcmp(token,"constant")) return adms_math_enumeration_dependency_constant; if(!strcmp(token,"linear")) return adms_math_enumeration_dependency_linear; if(!strcmp(token,"nonlinear")) return adms_math_enumeration_dependency_nonlinear; adms_message_fatal_continue(("select='math/dependency': possible values:\n")) adms_message_fatal_continue(("constant|linear|nonlinear\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return 0; } char* adms_math_tostring_dependency_impl (p_admsttransform myadmsttransform,p_enumeration myenumeration) { e_math_dependency e=myenumeration->_value; if(e==adms_math_enumeration_dependency_constant) return "constant"; if(e==adms_math_enumeration_dependency_linear) return "linear"; if(e==adms_math_enumeration_dependency_nonlinear) return "nonlinear"; adms_message_fatal_continue(("select='math/dependency': possible values:\n")) adms_message_fatal_continue(("constant|linear|nonlinear\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return NULL; }