diff -r a7e0086fc464 -r 65780c394ae8 tools/extract --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/extract Wed Nov 19 21:41:17 2014 +0100 @@ -0,0 +1,23 @@ +#! /usr/bin/perl +use 5.014; +use strict; +use warnings; +use List::MoreUtils qw(uniq); + +my $what = shift // die "$0: Usage {main} [spec.xfpt]\n"; + +@ARGV = "$ENV{HOME}/src/exim/doc/doc-docbook/spec.xfpt" + if not @ARGV; + +my $pattern = do { + given ($what) { + when ('main') { qr/^\.option\s(")?(?\S+)(?(1)\1)\smain/ } + when ('vars') { qr/^\.vitem\s&(?\$\w+)/ } + when ('ops') { qr/^\.vitem\s&\*(?\$\{\w+:)/ } + when ('conds') { qr/^\.vitem\s&\*(?\w+)\&~\{/ } + when ('funcs') { qr/^\.vitem\s(")?&\*(?\$\{\w+)\{/ } + default { die "$0: unknown search pattern\n" } + } +}; + +say join "\n", sort uniq map { /$pattern/ ? $+{item} : () } <>;