in scripts/extract_headers.rb [101:124]
def handle_struct(line)
if line[/^\s+(struct |const )?([A-z0-9]+)\s+(\*){0,2}([A-z_]+);\s*(\/\*.+)?/]
name = $4
c_type = $2 + $3.to_s
comment = $5
@current_struct_def[:fields] << { name: name, c_type: c_type, comment: comment }
@open_comment = line.include?('/*') && !line.include?('*/')
elsif line[/^\}\s+([A-z]+);/]
@struct_defs[@target_group][$1] = @current_struct_def
@current_struct_def = nil
elsif line.strip.start_with?('/*')
@current_struct_def[:fields] << { comment: line }
@open_comment = !line.include?('*/')
elsif @open_comment
@current_struct_def[:fields].last[:comment] += "\n" unless @current_struct_def[:fields].last[:comment].end_with?("\n")
@current_struct_def[:fields].last[:comment] += line
@open_comment = !line.include?('*/')
elsif !@current_struct_def[:fields].empty?
@current_struct_def[:fields] << { comment: '' }
end
end