// 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;
}
예제 #2
0
파일: symbol.cpp 프로젝트: zbigg/tinfra
 symbol_registry()
     : next_symbol_id_(0)
 {        
     get_id_for_name("null");
 }
예제 #3
0
파일: symbol.cpp 프로젝트: zbigg/tinfra
symbol	symbol::get(const tstring& name)
{
	return symbol(get_id_for_name(name));
}