Here is the code i have written so far, please finish it #include #include int i=-1; int nextstate=0; cstack top; init_cstack(&top); while(1) switch{ case 0: i++; if (is_open(my_input[i])) nextstate= 1; else if (is_close(my_input[i])) nextstate= 2; else if (my_input[i] == '\0') nextstate= 3; else nextstate= 4; break; case 1: if(!is_cfull()){ cpush(&top, my_input[i]); nextstate= 0; } else{ printf("Error! Stack is full\n"); exit(0); } break; case 2: if (!is_cempty(top)){ if(is_brother(cpop(&top), my_input[i])){ nextstate= 0; } else{ printf("Error! Delimiter do not match\n"); return FALSE; } } else{ printf("No open delimiter to compare to\n"); return FALSE; } break; case 3: if (is_cempty(top)){ return TRUE; } else{ printf("Error! Extra open delimiter\n"); return FALSE; } break; case 4: nextstate =0; break; } }
Here is the code i have written so far, please finish it
#include <stdio.h>
#include <cstack.c>
int i=-1;
int nextstate=0;
cstack top;
init_cstack(&top);
while(1)
switch{
case 0: i++;
if (is_open(my_input[i]))
nextstate= 1;
else if (is_close(my_input[i]))
nextstate= 2;
else if (my_input[i] == '\0')
nextstate= 3;
else
nextstate= 4;
break;
case 1: if(!is_cfull()){
cpush(&top, my_input[i]);
nextstate= 0;
}
else{
printf("Error! Stack is full\n");
exit(0);
}
break;
case 2: if (!is_cempty(top)){
if(is_brother(cpop(&top), my_input[i])){
nextstate= 0;
}
else{
printf("Error! Delimiter do not match\n");
return FALSE;
}
}
else{
printf("No open delimiter to compare to\n");
return FALSE;
}
break;
case 3: if (is_cempty(top)){
return TRUE;
}
else{
printf("Error! Extra open delimiter\n");
return FALSE;
}
break;
case 4: nextstate =0;
break;
}
}
Step by step
Solved in 2 steps