lib: support ConditionalExpression