5
public boolean parseBoolExpr(String s) {10
public boolean solve(String s, char prev_sign) {12
boolean res = s.charAt(pos) == 'f' ? false : true;14
int flag_res_init = 0;15
while (pos < s.length()) {17
char cur_char = s.charAt(pos++);19
if (isExpr(cur_char)) {20
res = eval(cur_char == 't' ? true : false, res, prev_sign);21
} else if (isSign(cur_char)) {23
} else if (cur_char == '(') {24
if (flag_res_init == 1 || prev_sign == '!') res = eval(solve(s, cur_sign), res, prev_sign);26
res = solve(s, cur_sign);29
} else if (cur_char == ')') {36
public boolean isExpr(char c) {37
return (c == 'f' || c == 't');40
public boolean isSign(char c) {41
return (c == '!' || c == '&' || c == '|');44
public boolean eval(boolean e1, boolean e2, char sign) {47
if (sign == '!') res = !e1;48
else if (sign == '|') res = e1 | e2;49
else if (sign == '&') res = e1 & e2;