// mettre un element dans la table renvoie son id si succès -1 sinon int insert(char * nom,type_state state,char * nom_fonction){ if (nom ==NULL){ return -1; } if (state ==TMP){ nb_tmp++; nom = malloc(sizeof(char)*50); sprintf(nom,"tmp_%d",nb_tmp); } if (get_id_for_name(nom)==-1){ id_courant++; symbole *new_symb=malloc(sizeof(symbole)); new_symb->nom=nom; strcpy(new_symb->fonction,nom_fonction); new_symb->id =id_courant; new_symb->state=state; list_insert_beginning(table_des_symboles,new_symb); } else { return -1; } return id_courant; }
symbol_registry() : next_symbol_id_(0) { get_id_for_name("null"); }
symbol symbol::get(const tstring& name) { return symbol(get_id_for_name(name)); }