add nested expression support for and/if

move and/or to conditionals_spec