code: def _ite(lexer):
      
      s = _impl(lexer)
  
      tok = next(lexer)
      # IMPL '?' ITE ':' ITE
      if isinstance(tok, OP_question):
          d1 = _ite(lexer)
          _expect_token(lexer, {OP_colon})
          d0 = _ite(lexer)
          return ('ite', s, d1, d0)
      # IMPL
      else:
          lexer.unpop_token(tok)
          return s
docs: Return an ITE expression.