Hand-written ConditionalExpression parsing, analysis, and codegen

still need to adapt type, and test