Unable to parse command line arguments in unified way.

Justin C Calvarese technocrat7 at gmail.com
Fri Jan 12 18:29:03 PST 2007


JP wrote:
> jcc7 wrote:
>> JP Wrote:
>>
>>> Hello
>>>
>>> In my experience as a c/c++ programmer I've seen a lot of quick and 
>>> dirty, primitive command line parsing implementations. Time and time 
>>> again because they needed something that compiles on both linux(gcc) 
>>> and windows(msvc) and avoid using external libraries.
>>>
>>> Even very simple console application often needs some command line 
>>> parsing.
>>>
>>> Could one, simple, implementation be part of phobos, providing 
>>> portability?
>>>
>>> Some references I found:
>>>
>>> - Derick Eddington 30 May 2005 "optparse.d -- good enough to be 
>>> std.optparse?"
>>> http://www.digitalmars.com/d/archives/digitalmars/D/announce/553.html
>>>
>>> - Daniel Keep 15 April 2006 "optparse module"
>>> http://www.digitalmars.com/d/archives/digitalmars/D/36768.html
>>>
>>> - doost dsource project
>>> http://www.dsource.org/projects/doost/browser/trunk/doost/program_options 
>>>
>>>
>>> - DDL dsource project
>>> http://www.dsource.org/projects/ddl/browser/trunk/utils/ArgParser.d
>>>
>>> - Juanjo Álvarez Martínez
>>> http://www.prowiki.org/wiki4d/wiki.cgi?Phobos/PosixGetOpt
>>>
>>> - Kirklin McDonald 1/10/2007
>>> Optparse
>>>
>>> Greets
>>>
>>> Joris
>>
>>
>> I think you might have missed a couple modules (or maybe you left them 
>> off your list intentionally because there's something wrong with them 
>> such as being too out-of-date to use).
>>
>> See http://www.prowiki.org/wiki4d/wiki.cgi?Phobos/PosixGetOpt for the 
>> fullest list that I know of.
>>
>> I agree that one of these should be added to Phobos. I don't know 
>> which one (since I haven't studied the code of any of them or even 
>> tried to use any of them yet), but it's obviously a common problem. 
>> And Phobos should be there to solve our common problems. People can 
>> still use their own version if that's what they like, but Phobos 
>> should have at least one implementation.
>>
>> jcc7
> Thanks, you're right, I might have missed some.
> 
> For Linux a POSIX compliant command line argument parser is the best 
> choice, for Windows, the options are simpler.
> 
> So do we take the lesser of both or go with the standard?
> 
> Joris

I looked at this list again and noticed that 3 of them are at least 
loosely based on Python's OptParse.

Kirk McDonald (09 Jan 2007)
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=46527

Daniel Keep (15 Apr 2006)
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=36768

derick_eddington (30 May 2005)
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=553

I don't think Python's OptParse would be used as basic of 3 separate 
ports except that it must be useful. Since Kirk has done the most recent 
port, it'd probably be easiest to use his version as a port. It's going 
to work on recent version of DMD, and he probably used the coolest new 
features of D to implement it. But we can still look at the other 
versions if someone wants to recommend them (or perhaps there's a 
problem with Kirk's version). But I bet Kirk's version would be the 
easiest to use since it's been written so recently.

-- 
jcc7



More information about the Digitalmars-d mailing list