FYI, xParam (sourceforge) seems to fulfill similar requirements.

In article <[EMAIL PROTECTED]>, Rob
Stewart wrote:
> From: Vladimir Prus <[EMAIL PROTECTED]>
>> Rob Stewart wrote:
>> 
>> > The purpose of command line parsing is to decode the arguments
>> > list into pieces of information, abstracting the syntax of the
>> > command line away from the program.  Thus, the library should be
>> > able to understand any of various encoding schemes.
>> 
>> That's syntantic level. I believe it should be as independent from
>> meaning of options as possible: command line, preferrable, should
>> be immediately parsable by humans.
> 
> I think we're saying the same thing.  My point is that the
> library should abstract the parsing such that the program need
> only describe the supported options and query to learn which have
> been set and with what values.  The format those parameters take
> on the command line or in a configuration file should be hidden.
> 
>> > The question then becomes how the library should provide the
>> > values from the command line.  There are a number of fundamental
>> > types that could be exposed by the library: bool, long, double,
>> > and string.  The question is whether the library should support
>> > any others.  I selected those types because Boolean and string
>> > parameters are obviously important, and long and double would
>> > handle pretty much all numeric arguments one would put in a
>> > command line.
>> 
>> The level 2 of my library provides only syntantic representation
>> of the read options. See
>> 
>>      http://zigzag.cs.msu.su:7813/program_options/html/
>> 
>> for the list of layers.
> 
> I can't access that page, but I was simply suggesting that the
> library can expose a rather minimal set of types gleaned from the
> command line.  Client code can transform from those types to
> anything else desired.  Boolean and string parameters are
> obvious.  Nothing else is needed as strings can (obviously)
> represent all other arguments.
> 
>> > Sure, you could provide a means to read a file line by line and
>> > pass each line to a parser of some sort.  However, given all of
>> > the ways to parse the text one might find in such a file, I don't
>> > see how that could be done so it is sufficiently flexible and yet
>> > actually provides value.  IOW, the parsing would be little more
>> > than read a line, give it to the parser, read another line, give
>> > it to the parser, etc.  That certainly doesn't justify a special
>> > library.
>> 
>> What "special library"?
> 
> I see two libraries in what you've proposed: one that manages
> command line parsing and one that manages configuration file
> parsing.  If command line and configuration file parsing are
> completely abstracted from the parameter
> specification/management, then it's a question of what
> configuration formats are provided by default, possibly bloating
> client code unnecessarily.
> 
>> > Perhaps I've missed some valuable service that should be included
>> > in the proposed library, but I can't see that it should do more
>> > than what I've outlined herein.  If you do, please enlighten me!
>> 
>> It looks like you don't need some of the extra features that both Gennadiy
>> and myself are after. For example, custom value interpreration or automatic
>> help message?
> 
> An automatic help message is certainly useful; I simply didn't
> mention it specifically.  Custom value interpretation strikes me
> as overkill.  If your library provides a string corresponding to
> a particular parameter, I can use that string in myriad ways to
> produce information for my program.  Putting that logic into a
> command line parsing library seems over the top.
> 
>> Could you please tell which features in both designs are unnecessary and 
>> should be removed?
> 
> I don't know the full set of features either of you have provided
> at the moment, but I hope the above clarifies my thoughts on the
> scope of such a library.
> 
> I'll second the question raised regarding the more complex
> parsing: isn't that the job of a tool like Spirit?  Be careful to
> avoid doing too much in this library.  You can make it really
> powerful and capable, but that alone may keep too many at bay.
> 
> 

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to