5 2 a char b int 2 int 0 char 1 1 int(b*a) 2 a char b int 2 int 0 char 1 1 char(a*b) 2 a char b int 2 int 1 2 char 1 1 char(a*b) 2 a char b int 2 int 1 2 char 1 1 char*char(a*b)*(( 1 a char 1 char 0 char
int -1 char -1 -1 Hint: case 1: cast $a$ to $b$ first, getting a new variable of type $int$. then this new variable cast to type $int$ again. Finally we get a new variable of type $int$. case 2: $b$'s type $int$ can not cast to $a$'s type $char$. So print $-1$ case 3: cast $b$ to $a$ first, getting a new variable of type $char$. then this new variable cast to type $char$ again. Finally we get a new variable of type $char$. case 4: it does't follow the rule "Types and brackets will only appear here in pairs.". case 5: it does't follow the rule "Types and brackets will only appear here in pairs."