diff options
author | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2016-07-07 06:52:10 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2016-07-07 06:54:00 -0300 |
commit | 9afe51129ba2b275c6464d485dd6e2c9d3deb72e (patch) | |
tree | 1b45e106940b36413217b09ead6fdeb055067ac0 /Documentation/sphinx/parse-headers.pl | |
parent | 7d95fa8d667ab515ed25b6e2270723e748c55889 (diff) |
doc-rst: fix parsing comments and '{' on a separate line
The dmx.h header has two things that causes the parser to
break while handling enums:
per-header enums and the '{' starts on a new line
Both makes the parser to get lexical marks to be detected
as if they were symbols.
Fix it.
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'Documentation/sphinx/parse-headers.pl')
-rwxr-xr-x | Documentation/sphinx/parse-headers.pl | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/Documentation/sphinx/parse-headers.pl b/Documentation/sphinx/parse-headers.pl index 59f2c90f6942..bf6f0df895f4 100755 --- a/Documentation/sphinx/parse-headers.pl +++ b/Documentation/sphinx/parse-headers.pl @@ -29,9 +29,12 @@ my %structs; my $is_enum = 0; open IN, $file_in or die "Can't open $file_in"; while (<IN>) { + my $ln = $_; + $ln =~ s,/\*.*\*/,,; + $data .= $_; - if ($is_enum && m/^\s*([^\s\}\,\=]+)\s*[\,=]?/) { + if ($is_enum && $ln =~ m/^\s*([_A-Z][^\s\}\,\=]+)\s*[\,=]?/) { my $s = $1; my $n = $1; $n =~ tr/A-Z/a-z/; @@ -44,7 +47,7 @@ while (<IN>) { } $is_enum = 0 if ($is_enum && m/\}/); - if (m/^\s*#\s*define\s+([_A-Z]\S+)\s+_IO/) { + if ($ln =~ m/^\s*#\s*define\s+([_A-Z]\S+)\s+_IO/) { my $s = $1; my $n = $1; $n =~ tr/A-Z/a-z/; @@ -53,7 +56,7 @@ while (<IN>) { next; } - if (m/^\s*#\s*define\s+([_A-Z]\S+)\s+/) { + if ($ln =~ m/^\s*#\s*define\s+([_A-Z]\S+)\s+/) { my $s = $1; my $n = $1; $n =~ tr/A-Z/a-z/; @@ -63,7 +66,7 @@ while (<IN>) { next; } - if (m/^\s*typedef\s+.*\s+([_\w]\S+);/) { + if ($ln =~ m/^\s*typedef\s+.*\s+([_\w]\S+);/) { my $s = $1; my $n = $1; $n =~ tr/A-Z/a-z/; @@ -72,7 +75,8 @@ while (<IN>) { $typedefs{$s} = $n; next; } - if (m/^\s*enum\s+(\S+)\s+\{/ || m/^\s*enum\s+(\S+)$/) { + if ($ln =~ m/^\s*enum\s+(\S+)\s+\{/ + || $ln =~ m/^\s*enum\s+(\S+)$/) { my $s = $1; my $n = $1; $n =~ tr/A-Z/a-z/; @@ -83,7 +87,8 @@ while (<IN>) { $is_enum = $1; next; } - if (m/^\s*struct\s+([_A-Za-z_]\S+)\s+\{/ || m/^\s*struct\s+([A-Za-z_]\S+)$/) { + if ($ln =~ m/^\s*struct\s+([_A-Za-z_]\S+)\s+\{/ + || $ln =~ m/^\s*struct\s+([A-Za-z_]\S+)$/) { my $s = $1; my $n = $1; $n =~ tr/A-Z/a-z/; |