/* ------- code automatically created by ../scripts/adms_build_object.pl -------------- */ #include #include inline void adms_number_free(p_number mynumber) { if(!mynumber) return; adms_enumeration_free(mynumber->_subexpression._math._dependency); free(mynumber->_subexpression._math._value); adms_quark_free(mynumber->_value); adms_enumeration_free(mynumber->_scalingunit); adms_global_increment_nbnumberdestroy(); free(mynumber); } int adms_number_cmp (p_number mynumber,p_number refnumber) { int status; status = ( !!strcmp(adms_number_valueof_value (mynumber)->_value,adms_number_valueof_value (refnumber)->_value) ); return status; } p_number adms_number_new(p_quark myvalue) { p_number mynewnumber=(p_number) calloc(1,(size_t)sizeof(t_number)); adms_global_increment_nbnumbernew(); mynewnumber->_subexpression._math._adms._datatypename=adms_adms_enumeration_datatypename_number; mynewnumber->_subexpression._math._adms._seen=adms_adms_enumeration_seen_no; (mynewnumber->_subexpression._math)._value=adms_real_new(adms_NAN); (mynewnumber->_subexpression._math)._static=adms_enumeration_new(adms_math_enumeration_static_no,adms_math_fromstring_static_impl,adms_math_tostring_static_impl); (mynewnumber->_subexpression._math)._dynamic=adms_enumeration_new(adms_math_enumeration_dynamic_no,adms_math_fromstring_dynamic_impl,adms_math_tostring_dynamic_impl); (mynewnumber->_subexpression._math)._dependency=adms_enumeration_new(adms_math_enumeration_dependency_constant,adms_math_fromstring_dependency_impl,adms_math_tostring_dependency_impl); mynewnumber->_value_isdefault=-1; adms_number_valueto_value (mynewnumber,myvalue); mynewnumber->_value_isdefault=1; mynewnumber->_scalingunit_isdefault=-1; adms_number_valueto_scalingunit(mynewnumber,adms_enumeration_new(adms_number_enumeration_scalingunit_1,adms_number_fromstring_scalingunit_impl,adms_number_tostring_scalingunit_impl)); mynewnumber->_scalingunit_isdefault=1; return mynewnumber; } p_adms adms_number_new_impl (p_adms arguments[]) { p_number mynewnumber; p_quark myvalue=adms_quark_new((char*)arguments[0]); mynewnumber=adms_number_new(myvalue); return adms_adms(mynewnumber); } /*$1*/ char*adms_number_uid (p_number mynewnumber) { char*myuid=NULL; char*myuid0=adms_quark_uid(mynewnumber->_value); adms_strconcat(&myuid,myuid0); return myuid; } inline void adms_number_valueto_value (p_number mynumber,p_quark _value) { if(mynumber->_value_isdefault!=-1) adms_quark_free(mynumber->_value); mynumber->_value=_value; mynumber->_value_isdefault=0; } inline void adms_number_valueto_scalingunit (p_number mynumber,p_enumeration _scalingunit) { mynumber->_scalingunit=_scalingunit; mynumber->_scalingunit_isdefault=0; } e_number_scalingunit adms_number_fromstring_scalingunit_impl (p_admsttransform myadmsttransform,char*token) { if(!strcmp(token,"1")) return adms_number_enumeration_scalingunit_1; if(!strcmp(token,"A")) return adms_number_enumeration_scalingunit_A; if(!strcmp(token,"D")) return adms_number_enumeration_scalingunit_D; if(!strcmp(token,"E")) return adms_number_enumeration_scalingunit_E; if(!strcmp(token,"G")) return adms_number_enumeration_scalingunit_G; if(!strcmp(token,"M")) return adms_number_enumeration_scalingunit_M; if(!strcmp(token,"P")) return adms_number_enumeration_scalingunit_P; if(!strcmp(token,"T")) return adms_number_enumeration_scalingunit_T; if(!strcmp(token,"a")) return adms_number_enumeration_scalingunit_a; if(!strcmp(token,"c")) return adms_number_enumeration_scalingunit_c; if(!strcmp(token,"d")) return adms_number_enumeration_scalingunit_d; if(!strcmp(token,"f")) return adms_number_enumeration_scalingunit_f; if(!strcmp(token,"h")) return adms_number_enumeration_scalingunit_h; if(!strcmp(token,"k")) return adms_number_enumeration_scalingunit_k; if(!strcmp(token,"m")) return adms_number_enumeration_scalingunit_m; if(!strcmp(token,"n")) return adms_number_enumeration_scalingunit_n; if(!strcmp(token,"p")) return adms_number_enumeration_scalingunit_p; if(!strcmp(token,"u")) return adms_number_enumeration_scalingunit_u; adms_message_fatal_continue(("select='number/scalingunit': possible values:\n")) adms_message_fatal_continue(("1|A|D|E|G|M|P|T|a|c|d|f|h|k|m|n|p|u\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return 0; } char* adms_number_tostring_scalingunit_impl (p_admsttransform myadmsttransform,p_enumeration myenumeration) { e_number_scalingunit e=myenumeration->_value; if(e==adms_number_enumeration_scalingunit_1) return "1"; if(e==adms_number_enumeration_scalingunit_A) return "A"; if(e==adms_number_enumeration_scalingunit_D) return "D"; if(e==adms_number_enumeration_scalingunit_E) return "E"; if(e==adms_number_enumeration_scalingunit_G) return "G"; if(e==adms_number_enumeration_scalingunit_M) return "M"; if(e==adms_number_enumeration_scalingunit_P) return "P"; if(e==adms_number_enumeration_scalingunit_T) return "T"; if(e==adms_number_enumeration_scalingunit_a) return "a"; if(e==adms_number_enumeration_scalingunit_c) return "c"; if(e==adms_number_enumeration_scalingunit_d) return "d"; if(e==adms_number_enumeration_scalingunit_f) return "f"; if(e==adms_number_enumeration_scalingunit_h) return "h"; if(e==adms_number_enumeration_scalingunit_k) return "k"; if(e==adms_number_enumeration_scalingunit_m) return "m"; if(e==adms_number_enumeration_scalingunit_n) return "n"; if(e==adms_number_enumeration_scalingunit_p) return "p"; if(e==adms_number_enumeration_scalingunit_u) return "u"; adms_message_fatal_continue(("select='number/scalingunit': possible values:\n")) adms_message_fatal_continue(("1|A|D|E|G|M|P|T|a|c|d|f|h|k|m|n|p|u\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return NULL; }