#! /usr/bin/env perl

use warnings;
use 5.005;
use strict;

my %option;
while (<>)
{
    if (/^\s*(?:(-\w), )?(--[-\w]+)(\[?)(=[-\w]+)?\]?/)
    {
	my ($short, $long, $opt, $arg) = ($1, $2, $3, $4);
	$short = defined $short ? '@option{' . $short . '}' : '';
	if ($arg)
	{
	    $arg =~ s/^=//;
	    $arg = '@var{' . lc ($arg) . '}';
	    $arg = '[' . $arg . ']'
		if defined $opt;
	    $option{"$long=$arg"} = $short ? "$short $arg" : '';
	}
	else
	{
	    $option{"$long"} = "$short";
	}
    }
}

foreach my $long (sort keys %option)
{
    printf "\@item %-40s \@tab %s\n", '@option{' . $long . '}', $option{$long};
}
