/* ------- code automatically created by ../scripts/adms_build_object.pl -------------- */ #include #include inline void adms_lexval_free(p_lexval mylexval) { if(!mylexval) return; free(mylexval->_string); free(mylexval->_filename); adms_global_increment_nblexvaldestroy(); free(mylexval); } int adms_lexval_cmp (p_lexval mylexval,p_lexval reflexval) { int status; status = ( !!strcmp(adms_lexval_valueof_string (mylexval),adms_lexval_valueof_string (reflexval)) || !!strcmp(adms_lexval_valueof_filename (mylexval),adms_lexval_valueof_filename (reflexval)) || (adms_lexval_valueof_l (mylexval) != adms_lexval_valueof_l (reflexval)) || (adms_lexval_valueof_fpos (mylexval) != adms_lexval_valueof_fpos (reflexval)) ); return status; } p_lexval adms_lexval_new(const char* mystring,const char* myfilename,int myl,int myfpos) { p_lexval mynewlexval=(p_lexval) calloc(1,(size_t)sizeof(t_lexval)); adms_global_increment_nblexvalnew(); mynewlexval->_adms._datatypename=adms_adms_enumeration_datatypename_lexval; mynewlexval->_adms._seen=adms_adms_enumeration_seen_no; mynewlexval->_string_isdefault=-1; adms_lexval_valueto_string (mynewlexval,mystring); mynewlexval->_string_isdefault=1; mynewlexval->_filename_isdefault=-1; adms_lexval_valueto_filename (mynewlexval,myfilename); mynewlexval->_filename_isdefault=1; mynewlexval->_l_isdefault=-1; adms_lexval_valueto_l (mynewlexval,myl); mynewlexval->_l_isdefault=1; mynewlexval->_fpos_isdefault=-1; adms_lexval_valueto_fpos (mynewlexval,myfpos); mynewlexval->_fpos_isdefault=1; return mynewlexval; } p_adms adms_lexval_new_impl (p_adms arguments[]) { p_lexval mynewlexval; const char* mystring=(char*)arguments[0]; const char* myfilename=(char*)arguments[1]; const int myl=ADMS2INT(arguments[2]); const int myfpos=ADMS2INT(arguments[3]); mynewlexval=adms_lexval_new(mystring,myfilename,myl,myfpos); return adms_adms(mynewlexval); } /*[$2:$3]$1*/ char*adms_lexval_uid (p_lexval mynewlexval) { char*myuid=NULL; char*myuid0=adms_integertostring(mynewlexval->_l); adms_strconcat2(&myuid,"["); adms_strconcat2(&myuid,strdup(mynewlexval->_filename)); adms_strconcat2(&myuid,":"); adms_strconcat(&myuid,myuid0); adms_strconcat2(&myuid,"]"); adms_strconcat2(&myuid,strdup(mynewlexval->_string)); return myuid; } inline void adms_lexval_valueto_string (p_lexval mylexval,const char* _string) { if(mylexval->_string_isdefault!=-1) free(mylexval->_string); mylexval->_string=adms_constclone(_string); mylexval->_string_isdefault=0; } inline void adms_lexval_valueto_filename (p_lexval mylexval,const char* _filename) { if(mylexval->_filename_isdefault!=-1) free(mylexval->_filename); mylexval->_filename=adms_constclone(_filename); mylexval->_filename_isdefault=0; } inline void adms_lexval_valueto_l (p_lexval mylexval,int _l) { mylexval->_l=_l; mylexval->_l_isdefault=0; } inline void adms_lexval_valueto_fpos (p_lexval mylexval,int _fpos) { mylexval->_fpos=_fpos; mylexval->_fpos_isdefault=0; }