CmdArgs可以在子模式之外有标志吗?

时间:2012-10-14 10:06:16

标签: parsing haskell command-line

我知道如果所有子模式中都有一个公共标志,它将被列在“公共标志”下,但该标志仍然需要在模式构造函数之后。 有时候,有一些与程序有关的标志而不是单独的模式,因此它们应该能够在模式之前(甚至之后)指定。例如,我的程序可以并行处理任务,无论它运行的是哪种模式。并行进程的数量由“-n”标志给出,因此命令行应该是这样的:

myprogram -n 4 MODE1 [flags/args-for-MODE1]

这可以在CmdArgs中完成吗? 感谢

1 个答案:

答案 0 :(得分:2)

这目前无法实现,但有一张将其添加到CmdArgs的凭单:http://code.google.com/p/ndmitchell/issues/detail?id=457

可能稍微复杂一点,因为如果MODE1使-n带有必需参数,而MODE2-n没有参数,那么做以下意思:

 myprogram -n MODE2 MODE1

可以是模式MODE1-n,其值为MODE2,也可以是模式MODE2,其中包含标记-n和参数{{ 1}}。我确定在实施机票时我会弄清楚。