[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Command line parsing with genparse
From: |
Michael Geng |
Subject: |
Re: Command line parsing with genparse |
Date: |
Wed, 19 Dec 2007 18:51:52 +0100 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
On Wed, Dec 19, 2007 at 06:11:25PM +0100, Alfred M. Szmidt wrote:
> 1. It does a significant part of the work at compile time. So the
> generated code can be quite simple and fast.
>
> I cannot comment which is simpler, since I do not know genparse. But
> parsing arguments isn't a speed critical task. argp is a wrapper
> around getopt and getopt_long, and uses those functions to parse
> arguments.
The genparse also is a wrapper around getopt_long. For argp the user
provides a customized struct and a library function does the parsing
at run time while genparse generates a customized wrapper from a
setup file at compile time.
> argp part of the GNU C Library which is used by all GNU system
> variants, like GNU/Linux, so it is a standard tool.
>
> 2. It is able to auto generate a highly configurable usage
> function. Many of the replies on my previous posts to the
> coreutils mailing list were about the usage function. argp also
> can print a usage function but how far can you customize it?
>
> You can customize as much as you would like. Please see argp chapter
> in the GNU C Library manual for details.
>
> Has anybody tried to convert one of the coreutils tools to use
> argp? I would be very interested to see a comparison to the
> genparse solution.
>
> Debarshi Ray <address@hidden> converted a bunch of tools in inetutils
> (http://www.gnu.org/s/inetutils/, http://sv.gnu.org/p/inetutils/) to
> use argp instead of getopt/getopt_long. Some which have quite hairy
> parsing semantics, for example ping which uses children parsers, but
> that patch is not in CVS yet.
>
> The Hurd also uses argp for some very weird parsing, you can look at
> examples at http://sv.gnu.org/p/hurd/.
I just downloaded the inetutils, version 1.5 but I can't find any argp
code. I looked at ping and ftp. Do I need the latest version from git?
Michael
Re: Command line parsing with genparse, Jim Meyering, 2007/12/25