code: private ParseTree parseConditional(Expression expressionIn) {
      SourcePosition start = getTreeStartLocation();
      ParseTree condition = parseLogicalOR(expressionIn);
      if (peek(TokenType.QUESTION)) {
        eat(TokenType.QUESTION);
        ParseTree left = parseAssignment(expressionIn);
        eat(TokenType.COLON);
        ParseTree right = parseAssignment(expressionIn);
        return new ConditionalExpressionTree(
            getTreeLocation(start), condition, left, right);
      }
      return condition;
    }
docs: 11.12 Conditional Expression