under my mapping functionat the else pt[i].vp == vp) it is giving me this error I have looked up and down in my code and I just cannot seem to find the missing semicolon. If anybody could spot it or if there is something bigger that I am missing if you could let me know that would be appreciated.Code:#include <stdio.h>#include <stdlib.h> struct node { int vp; int pf; int accessed; } *pt = NULL; typedef struct node pt_type; int pm_size; int page_size; int replace; int num_rows; int last_row = -1; void buildtable() { int i; printf("Total page frame area size(words): "); scanf("%d",&pm_size); printf("%d\n", pm_size ); printf("Page size(words/page): "); scanf("%d", &page_size); printf("%d\n", page_size); printf("Replacement policy(0=LRU, 1=FIF0): "); scanf("%d", &replace); printf("%d\n", replace); num_rows = pm_size / page_size; pt = (pt_type *)(malloc(num_rows * sizeof(pt_type))); for (i = 0; i < num_rows; i++) { pt[i].vp = -1; pt[i].accessed = -1; } return; } void mapping() { int vm_addr; int i; int j; int temp_pf; int k; int vp; int offset; printf("Virtual address: "); scanf("%d", &vm_addr); printf("%d\n", vm_addr); vp = vm_addr / page_size; offset = vm_addr % page_size; while ((i < num_rows) && (pt[i].vp != -1) && (pt[i].vp != vp)) { pt[i].accessed++; i++; } if (i == num_rows) { temp_pf = pt[0].pf; for (j = 0; j <= num_rows - 2; j++) { pt[j] = pt[j + 1]; } pt[num_rows - 1].vp = vp; pt[num_rows - 1].pf = temp_pf; pt[num_rows - 1].accessed = 0; printf("Page fault!\n"); } else if (pt[i].vp == -1) { pt[i].vp = vp; pt[i].pf = i; pt[i].accessed = 0; last_row++; printf("Page fault!\n"); } ---> else (pt[i].vp == vp) { if (replace == 0) { temp_pf = pt[i].pf; for (k = i; k <= last_row - 1; k++) { pt[k] = pt[k + 1]; PT[k].accessed++; } pt[last_row].vp = vp ; pt[last_row].pf = temp_pf ; pt[last_row].accessed = 0; } pm_addr = temp_pf * page_size + offset; printf("Virtual adrress matches physical address"); } } void printmap() { int i; for (i = 0; i <= last_row; i++) { printf("VP|\n"); printf("PF|\n"); printf("Accessed|\n"); } } void delete_table() { if (pt != NULL) free(pt); return; } int main() { int selection; while (selection != 4) { printf("Virtual memory to Main memory mapping:\n"); printf("------------------------------\n"); printf("1) Set parameters\n"); printf("2) Map virtual address\n"); printf("3) Print page table\n"); printf("4) Quit\n"); printf("\n"); printf("Enter selection: "); scanf("%d", &selection); printf("%d\n", selection); switch (selection) { case 1: { buildtable(); break; } case 2: { mapping(); break; } case 3: { printmap(); break; } case 4: { delete_table(); break; } } } printf("Program Quit\n"); return 1; }