/* ------- code automatically created by ../scripts/adms_build_object.pl -------------- */ #include #include inline void adms_admsttext_free(p_admsttext myadmsttext) { if(!myadmsttext) return; { p_slist myl=myadmsttext->_token;for(;myl;myl=myl->next) { p_adms myadms=myl->data; if(myadms->_datatypename==adms_adms_enumeration_datatypename_quark) adms_quark_free(adms_quark(myadms)); else if(myadms->_datatypename==adms_adms_enumeration_datatypename_admsttext) adms_admsttext_free(adms_admsttext(myadms)); /*fixme else if(myadms->_datatypename==adms_adms_enumeration_datatypename_admstpath) */ } } adms_slist_free(myadmsttext->_token); free(myadmsttext->_value); adms_global_increment_nbadmsttextdestroy(); free(myadmsttext); } int adms_admsttext_cmp (p_admsttext myadmsttext,p_admsttext refadmsttext) { int status; status = ( (adms_admsttext_valueof_admsttransform (myadmsttext) != adms_admsttext_valueof_admsttransform (refadmsttext)) || !!strcmp(adms_admsttext_valueof_value (myadmsttext),adms_admsttext_valueof_value (refadmsttext)) ); return status; } p_admsttext adms_admsttext_new(p_admsttransform myadmsttransform,const char* myvalue) { p_admsttext mynewadmsttext=(p_admsttext) calloc(1,(size_t)sizeof(t_admsttext)); adms_global_increment_nbadmsttextnew(); mynewadmsttext->_adms._datatypename=adms_adms_enumeration_datatypename_admsttext; mynewadmsttext->_adms._seen=adms_adms_enumeration_seen_no; mynewadmsttext->_admsttransform_isdefault=-1; adms_admsttext_valueto_admsttransform (mynewadmsttext,myadmsttransform); mynewadmsttext->_admsttransform_isdefault=1; mynewadmsttext->_value_isdefault=-1; adms_admsttext_valueto_value (mynewadmsttext,myvalue); mynewadmsttext->_value_isdefault=1; mynewadmsttext->_type_isdefault=-1; mynewadmsttext->_type=adms_admsttext_enumeration_type_quark; mynewadmsttext->_type_isdefault=1; mynewadmsttext->_token_isdefault=-1; return mynewadmsttext; } p_adms adms_admsttext_new_impl (p_adms arguments[]) { p_admsttext mynewadmsttext; p_admsttransform myadmsttransform=(p_admsttransform)arguments[0]; const char* myvalue=(char*)arguments[1]; mynewadmsttext=adms_admsttext_new(myadmsttransform,myvalue); return adms_adms(mynewadmsttext); } /*$1*/ char*adms_admsttext_uid (p_admsttext mynewadmsttext) { char*myuid=NULL; char*myuid0=adms_admsttransform_uid(mynewadmsttext->_admsttransform); adms_strconcat(&myuid,myuid0); return myuid; } inline void adms_admsttext_valueto_admsttransform (p_admsttext myadmsttext,p_admsttransform _admsttransform) { myadmsttext->_admsttransform=_admsttransform; myadmsttext->_admsttransform_isdefault=0; } inline void adms_admsttext_valueto_value (p_admsttext myadmsttext,const char* _value) { if(myadmsttext->_value_isdefault!=-1) free(myadmsttext->_value); myadmsttext->_value=adms_constclone(_value); myadmsttext->_value_isdefault=0; } inline void adms_admsttext_valueto_type (p_admsttext myadmsttext,e_admsttext_type _type) { myadmsttext->_type=_type; myadmsttext->_type_isdefault=0; } inline void adms_admsttext_valueto_token (p_admsttext myadmsttext,p_slist _token) { myadmsttext->_token=_token; myadmsttext->_token_isdefault=0; } void adms_admsttext_list_token_prepend (p_admsttext mymyadmsttext,p_adms mytoken) { adms_slist_push(&adms_admsttext_valueof_token(mymyadmsttext),adms_adms(mytoken)); } e_admsttext_type adms_admsttext_fromstring_type_impl (p_admsttransform myadmsttransform,char*token) { if(!strcmp(token,"admsstack")) return adms_admsttext_enumeration_type_admsstack; if(!strcmp(token,"list")) return adms_admsttext_enumeration_type_list; if(!strcmp(token,"quark")) return adms_admsttext_enumeration_type_quark; adms_message_fatal_continue(("select='admsttext/type': possible values:\n")) adms_message_fatal_continue(("admsstack|list|quark\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return 0; } char* adms_admsttext_tostring_type_impl (p_admsttransform myadmsttransform,e_admsttext_type e) { if(e==adms_admsttext_enumeration_type_admsstack) return "admsstack"; if(e==adms_admsttext_enumeration_type_list) return "list"; if(e==adms_admsttext_enumeration_type_quark) return "quark"; adms_message_fatal_continue(("select='admsttext/type': possible values:\n")) adms_message_fatal_continue(("admsstack|list|quark\n")) adms_message_fatal(("see %s\n",adms_admsttransform_uid(myadmsttransform))) return NULL; }