tools/extract
changeset 2 65780c394ae8
equal deleted inserted replaced
1:a7e0086fc464 2:65780c394ae8
       
     1 #! /usr/bin/perl
       
     2 use 5.014;
       
     3 use strict;
       
     4 use warnings;
       
     5 use List::MoreUtils qw(uniq);
       
     6 
       
     7 my $what = shift // die "$0: Usage {main} [spec.xfpt]\n";
       
     8 
       
     9 @ARGV = "$ENV{HOME}/src/exim/doc/doc-docbook/spec.xfpt"
       
    10   if not @ARGV;
       
    11 
       
    12 my $pattern = do {
       
    13     given ($what) {
       
    14         when ('main')  { qr/^\.option\s(")?(?<item>\S+)(?(1)\1)\smain/ }
       
    15         when ('vars')  { qr/^\.vitem\s&(?<item>\$\w+)/ }
       
    16         when ('ops')   { qr/^\.vitem\s&\*(?<item>\$\{\w+:)/ }
       
    17         when ('conds') { qr/^\.vitem\s&\*(?<item>\w+)\&~\{/ }
       
    18         when ('funcs') { qr/^\.vitem\s(")?&\*(?<item>\$\{\w+)\{/ }
       
    19         default        { die "$0: unknown search pattern\n" }
       
    20     }
       
    21 };
       
    22 
       
    23 say join "\n", sort uniq map { /$pattern/ ? $+{item} : () } <>;