def process_line line
return line unless @process_lines
if line.empty?
@look_ahead += 1
return line
end
if line.end_with?(']') && !line.start_with?('[') && line.include?('::')
if (line.include? 'if') && ConditionalDirectiveRx =~ line
if $1 == '\\'
@unescape_next_line = true
@look_ahead += 1
line[1..-1]
elsif preprocess_conditional_directive $2, $3, $4, $5
shift
nil
else
@look_ahead += 1
line
end
elsif @skipping
shift
nil
elsif (line.start_with? 'inc', '\\inc') && IncludeDirectiveRx =~ line
if $1 == '\\'
@unescape_next_line = true
@look_ahead += 1
line[1..-1]
elsif preprocess_include_directive $2, $3.strip
nil
else
@look_ahead += 1
line
end
else
@look_ahead += 1
line
end
elsif @skipping
shift
nil
else
@look_ahead += 1
line
end
end