support conditional if-then-else expression