/* ------- code automatically created by ../scripts/adms_build_object.pl -------------- */ #include #include inline void adms_conditional_free(p_conditional myconditional) { if(!myconditional) return; adms_enumeration_free(myconditional->_math._dependency); free(myconditional->_math._value); if(myconditional->_then) if(adms_adms(myconditional->_then)->_datatypename==adms_adms_enumeration_datatypename_quark) adms_quark_free(adms_quark(myconditional->_then)); if(myconditional->_else) if(adms_adms(myconditional->_else)->_datatypename==adms_adms_enumeration_datatypename_quark) adms_quark_free(adms_quark(myconditional->_else)); adms_quark_free(myconditional->_name); adms_global_increment_nbconditionaldestroy(); free(myconditional); } int adms_conditional_cmp (p_conditional myconditional,p_conditional refconditional) { int status; status = ( (adms_conditional_valueof_module (myconditional) != adms_conditional_valueof_module (refconditional)) || (adms_conditional_valueof_if (myconditional) != adms_conditional_valueof_if (refconditional)) || (adms_conditional_valueof_then (myconditional) != adms_conditional_valueof_then (refconditional)) || (adms_conditional_valueof_else (myconditional) != adms_conditional_valueof_else (refconditional)) ); return status; } p_conditional adms_conditional_new(p_module mymodule,p_expression myif,p_adms mythen,p_adms myelse) { p_conditional mynewconditional=(p_conditional) calloc(1,(size_t)sizeof(t_conditional)); adms_global_increment_nbconditionalnew(); mynewconditional->_math._adms._datatypename=adms_adms_enumeration_datatypename_conditional; mynewconditional->_math._adms._seen=adms_adms_enumeration_seen_no; (mynewconditional->_math)._value=adms_real_new(adms_NAN); (mynewconditional->_math)._static=adms_enumeration_new(adms_math_enumeration_static_no,adms_math_fromstring_static_impl,adms_math_tostring_static_impl); (mynewconditional->_math)._dynamic=adms_enumeration_new(adms_math_enumeration_dynamic_no,adms_math_fromstring_dynamic_impl,adms_math_tostring_dynamic_impl); (mynewconditional->_math)._dependency=adms_enumeration_new(adms_math_enumeration_dependency_constant,adms_math_fromstring_dependency_impl,adms_math_tostring_dependency_impl); mynewconditional->_module_isdefault=-1; adms_conditional_valueto_module (mynewconditional,mymodule); mynewconditional->_module_isdefault=1; mynewconditional->_if_isdefault=-1; adms_conditional_valueto_if (mynewconditional,myif); mynewconditional->_if_isdefault=1; mynewconditional->_then_isdefault=-1; adms_conditional_valueto_then (mynewconditional,mythen); mynewconditional->_then_isdefault=1; mynewconditional->_else_isdefault=-1; adms_conditional_valueto_else (mynewconditional,myelse); mynewconditional->_else_isdefault=1; mynewconditional->_name_isdefault=-1; adms_conditional_valueto_name(mynewconditional,adms_quark_new("")); mynewconditional->_name_isdefault=1; return mynewconditional; } p_adms adms_conditional_new_impl (p_adms arguments[]) { p_conditional mynewconditional; p_module mymodule=(p_module)arguments[0]; p_expression myif=(p_expression)arguments[1]; p_adms mythen=(p_adms)arguments[2]; p_adms myelse=(p_adms)arguments[3]; mynewconditional=adms_conditional_new(mymodule,myif,mythen,myelse); return adms_adms(mynewconditional); } /*conditional if($2)$3*/ char*adms_conditional_uid (p_conditional mynewconditional) { char*myuid=NULL; char*myuid0=adms_expression_uid(mynewconditional->_if); char*myuid1=adms_admsxml_uid(mynewconditional->_then); adms_strconcat2(&myuid,"conditional if("); adms_strconcat(&myuid,myuid0); adms_strconcat2(&myuid,")"); adms_strconcat(&myuid,myuid1); return myuid; } inline void adms_conditional_valueto_module (p_conditional myconditional,p_module _module) { myconditional->_module=_module; myconditional->_module_isdefault=0; } inline void adms_conditional_valueto_if (p_conditional myconditional,p_expression _if) { myconditional->_if=_if; myconditional->_if_isdefault=0; } inline void adms_conditional_valueto_then (p_conditional myconditional,p_adms _then) { myconditional->_then=_then; myconditional->_then_isdefault=0; } inline void adms_conditional_valueto_else (p_conditional myconditional,p_adms _else) { myconditional->_else=_else; myconditional->_else_isdefault=0; } inline void adms_conditional_valueto_name (p_conditional myconditional,p_quark _name) { if(myconditional->_name_isdefault!=-1) adms_quark_free(myconditional->_name); myconditional->_name=_name; myconditional->_name_isdefault=0; }