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