Difference between revisions of "Command line option parsers"
Jump to navigation
Jump to search
(details on getflag, console-program, cmdlib) |
(details on parseargs) |
||
Line 13: | Line 13: | ||
| {{HackagePackage|id=console-program}} || X || TemplateHaskell || configure options via files |
| {{HackagePackage|id=console-program}} || X || TemplateHaskell || configure options via files |
||
|- |
|- |
||
− | | {{HackagePackage|id=getflag}} || |
+ | | {{HackagePackage|id=getflag}} || - || Haskell98 || like [[GetOpt]] but with Unix/Plan 9 option syntax |
|- |
|- |
||
+ | | {{HackagePackage|id=hflags}} || - || TemplateHaskell || inspired by Google's gflags, provides parsed options in top-level variables, allow to set options via environment variables |
||
− | | {{HackagePackage|id=hflags}} |
||
|- |
|- |
||
− | | {{HackagePackage|id=multiarg}} |
+ | | {{HackagePackage|id=multiarg}} || - || CPP || long options with multiple arguments |
|- |
|- |
||
− | | {{HackagePackage|id=options}} |
+ | | {{HackagePackage|id=options}} || X || TemplateHaskell || |
|- |
|- |
||
− | | {{HackagePackage|id=optparse-applicative}} || X || |
+ | | {{HackagePackage|id=optparse-applicative}} || X || GADT || Applicative Functor |
|- |
|- |
||
− | | {{HackagePackage|id=parseargs}} |
+ | | {{HackagePackage|id=parseargs}} || - || FlexibleInstances || supports a fixed set of argument types: <hask>Int, Integer, Float, Double, String, FileOpener</hask> |
|- |
|- |
||
| {{HackagePackage|id=ReadArgs}} |
| {{HackagePackage|id=ReadArgs}} |
||
Line 31: | Line 31: | ||
| {{HackagePackage|id=yaop}} |
| {{HackagePackage|id=yaop}} |
||
|} |
|} |
||
+ | |||
+ | The column for required Haskell extensions gives an idea of how easy it is to port the package to compilers other than [[GHC]]. |
||
+ | |||
[[Category:Packages]] |
[[Category:Packages]] |
Revision as of 17:48, 7 November 2012
There are several packages that want to simplify the task of writing command line parsers. Unfortunately, they are distributed across several Hackage categories. Here is an attempt to list them:
Package | Multi-mode | Extensions | Remark |
---|---|---|---|
cmdargs | X | TemplateHaskell, SYB generics, ViewPatterns, ... | unsafePerformIO
|
cmdlib | X | SYB generics | based on GetOpt |
cmdtheline | X | FlexibleInstances (although unnecessary) | shows help as man-page |
console-program | X | TemplateHaskell | configure options via files |
getflag | - | Haskell98 | like GetOpt but with Unix/Plan 9 option syntax |
hflags | - | TemplateHaskell | inspired by Google's gflags, provides parsed options in top-level variables, allow to set options via environment variables |
multiarg | - | CPP | long options with multiple arguments |
options | X | TemplateHaskell | |
optparse-applicative | X | GADT | Applicative Functor |
parseargs | - | FlexibleInstances | supports a fixed set of argument types: Int, Integer, Float, Double, String, FileOpener
|
ReadArgs | |||
simpleargs | |||
yaop |
The column for required Haskell extensions gives an idea of how easy it is to port the package to compilers other than GHC.