class YARD::Parser::C::CParser

def consume_until(end_char, bracket_level = 0, brace_level = 0, add_comment = true)

def consume_until(end_char, bracket_level = 0, brace_level = 0, add_comment = true)
  end_char = /#{end_char}/ if end_char.is_a?(String)
  start = @index
  advance_loop do
    chr = char
    case chr
    when /\s/; consume_whitespace
    when /['"]/; consume_quote(char)
    when '#'; consume_directive
    when '/'; consume_comment(add_comment)
    when '{'; advance; brace_level += 1
    when '}'; advance; brace_level -= 1
    when '('; advance; bracket_level += 1
    when ')'; advance; bracket_level -= 1
    else advance
    end
    @newline = false if chr !~ /\s/
    if chr =~ end_char
      break if chr == '{' || chr == '('
      break if bracket_level <= 0 && brace_level <= 0
    end
  end
  @content[start...@index]
end