- my @args = map { tr/'"//d; $_ }
- map { /\((.*?)\)/ ? $1 : $_ }
- split /\,\s+/, $args;
- my $opt = { map { $_ => shift @args } @$names };
- ($opt->{line}) = $line =~ /.*? (\{.*)/;
- $opts[-1]->{is_deprecated} = 1 if $line =~ /deprecated/i;
- push @opts, $opt;
+
+ my @args = map {
+ tr/'"//d; $_
+ } map {
+ /\((.*?)\)/ ? $1 : $_
+ } split /\,\s+/, $args;
+
+ my $entry = { map { $_ => shift @args } @$names };
+
+ ($entry->{line}) = $chunk =~ /^ \s+? (\{.*)/mx;
+ if ($chunk =~ /deprecated/i) {
+ $entries[-1]->{deprecated} = true;
+ }
+
+ my $index_name = exists $entry->{data}
+ ? $entry->{data}
+ : $entry->{name};
+
+ $index{$index_name} = $i++;
+
+ push @entries, $entry;