Exp 8
Exp 8
char arr[18][3] = {
{'E', '+', 'F'}, {'E', '*', 'F'}, {'E', '(', 'F'}, {'E', ')', 'F'}, {'E', '1', 'F'}, {'E', '$', 'F'},
{'T', '+', 'F'}, {'T', '*', 'F'}, {'T', '(', 'F'}, {'T', ')', 'F'}, {'T', '1', 'F'}, {'T', '$', 'F'},
{'F', '+', 'F'}, {'F', '*', 'F'}, {'F', '(', 'F'}, {'F', ')', 'F'}, {'F', '1', 'F'}, {'F', '$', 'F'}
};
char res[6][3] = {
{'E', '+', 'F'}, {'T', '*', '0'}, {'T', '(', '0'},
{'(', 'E', ')'}, {'T', '1', '0'}, {'F', '1', '0'}
};
char stack[5][2];
int top = -1;
int main() {
int i, j;
char pro, re, pri = ' ';
printf("Processed Table:\n");
for (i = 0; i < 18; ++i) {
for (j = 0; j < 3; ++j)
printf("%c\t", arr[i][j]);
printf("\n");
}
printf("\nLEADING sets:\n");
for (i = 0; i < 18; ++i) {
if (pri != arr[i][0]) {
pri = arr[i][0];
printf("\n%c -> ", pri);
}
if (arr[i][2] == 'T')
printf("%c ", arr[i][1]);
}
return 0;
}
Output: