# File lib/asciidoctor/reader.rb, line 268
  def preprocess_next_line
    # this return could be happening from a recursive call
    return nil if @eof || (next_line = @lines.first).nil?
    if next_line.include?('::') && (next_line.include?('if') || next_line.include?('endif')) && (match = next_line.match(REGEXP[:ifdef_macro]))
      if next_line.start_with? '\\'
        @next_line_preprocessed = true
        @unescape_next_line = true
        false
      else
        preprocess_conditional_inclusion(*match.captures)
      end
    elsif @skipping
      advance
      # skip over comment blocks, we don't want to process directives in them
      skip_comment_lines :include_blank_lines => true, :preprocess => false
      preprocess_next_line.nil? ? nil : true
    elsif next_line.include?('include::') && match = next_line.match(REGEXP[:include_macro])
      if next_line.start_with? '\\'
        @next_line_preprocessed = true
        @unescape_next_line = true
        false
      else
        preprocess_include(match[1], match[2].strip)
      end
    else
      @next_line_preprocessed = true
      false
    end
  end