This file is indexed.

/usr/share/syslog-ng/tools/merge-grammar.pl is in syslog-ng-dev 3.5.3-1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env perl
#
# This script imports the rules from the main grammar file. It was
# originally written in perl in order not to require Python for plugin
# development, but since Python is already used for the test suite, I guess
# it is not so important anymore.
#
# TODOs:
#  * rewrite it in Python
#  * be more clever about which rules to include as bison generates a lot of
#    warnings about unused rules
#

use File::Basename;

sub include_block
{
    my ($start_re, $end_re) = @_;

    open(GR, "<" .$ENV{'top_srcdir'}. "/lib/cfg-grammar.y") ||
            open(GR, "<" . dirname($0) . "/cfg-grammar.y") || die "Error opening cfg-grammar.y";

    my $decl_started = 0;
    while (<GR>) {
        if (/$start_re/) {
            $decl_started = 1;
        }
        elsif (/$end_re/) {
            $decl_started = 0;
            break;
        }
        elsif ($decl_started) {
            print;
        }
    }
    close(GR);
}

while (<>) {
    if (/INCLUDE_DECLS/) {
        include_block("START_DECLS", "END_DECLS");
    }
    elsif (/INCLUDE_RULES/) {
        include_block("START_RULES", "END_RULES");
    }
    else {
        print;
    }
}