in scripts/extract_headers.rb [125:150]
def handle_enum(line)
if line[/^\s+([A-z0-9_]+),?\s*([A-z0-9_]+)?(\/\*.+)?/]
name = $1
other_name = $2
comment = $3
@current_enum_def[:values] << { name: name, comment: comment }
@current_enum_def[:values] << { name: other_name } if other_name
@open_comment = line.include?('/*') && !line.include?('*/')
elsif line[/^\}\s+([A-z]+);/]
@all_known_enums << $1
@enum_defs[@target_group][$1] = @current_enum_def
@current_enum_def = nil
elsif line.strip.start_with?('/*')
@current_enum_def[:values] << { comment: line }
@open_comment = !line.include?('*/')
elsif @open_comment
@current_enum_def[:values].last[:comment] += "\n" unless @current_enum_def[:values].last[:comment].end_with?("\n")
@current_enum_def[:values].last[:comment] += line
@open_comment = !line.include?('*/')
elsif !@current_enum_def.empty?
@current_enum_def[:values] << { comment: '' }
end
end