// void delAllK(eBaris *L){ // if(countElementK(*L) != 0){ // int i; // for(i=countElementK(*L);i>=1;i--){ // /*proses menghapus elemen list*/ // delLastK(L); // } // } // } //prosedur tambah elemen sesuai jumlah vokal void addByVoc(char x[], list *L){ int angka=countVokal(x); if ((*L).first==NULL){//jika masih kosng addFirstB(angka, L); getTheVoc(x);//ubah dulu addFirstK(x, (*L).first); }else{//jika tidak int tanda; eBaris *prev,*elmt=(*L).first; tanda=0; //cari dulu sudah ada atau belum while(elmt!=NULL && tanda==0){ if (elmt->elmt.jumlah==angka){ getTheVoc(x);//ubah dulu addLastK(x, elmt);//tambah diakhir list itu tanda = 1; } prev=elmt; elmt=elmt->next; } if (tanda==0){//jika belum ada tambah diakhir addLastB(angka, L); elmt=prev->next; getTheVoc(x);//ubah dulu addFirstK(x, elmt); tanda=1; } } }
/*=====Add After Baris=====*/ void addLastB(int jumlah, list *L){ if((*L).first == NULL){ /*jika list adalah list kosong*/ addFirstB(jumlah, L); }else{ /*jika list tidak kosong*/ eBaris *elmt; elmt = (eBaris *) malloc (sizeof (eBaris));//alokasikan memori elmt->elmt.jumlah= jumlah; elmt->next = NULL; elmt->col = NULL; /*mencari elemen terakhir list*/ eBaris *last = (*L).first; while(last->next != NULL){ /*iterasi*/ last = last->next; } last->next = elmt; elmt = NULL; } }
void bind(char *var, Value *value, Environment *env) { env->bindingHead = addFirstB(var, value, env->bindingHead); }