boolean expression parser