[Docpie]

Fork me on GitHub

已知问题


重复元素贪婪模式

docpie支持cp风格的命令行:

Usage: cp <source_file>... <target_directory>

要求如下:

  1. 可重复元素能且只能为Argument,可以分组:

    • ✔:(<arg1>)... <arg2> <arg3>
    • ✔:[<arg1>]... <arg2> <arg3>
    • ✔:(<arg1> <arg2>)... <arg3>
    • ✔:(<arg1> [<arg2> <arg3>])... <arg4> (可以嵌套)
    • ✕:-a... -a(只支持Argument
    • ✕:cmd... cmd(只支持Argument
    • ✕:(<arg> cmd)... <arg2>(只支持Argument
  2. 后面的元素可以是ArgumentCommand,可以多个:

    • ✔:<arg>... cmd
    • ✔:<arg1>... (<arg2> <arg3>)
  3. 前面的元素在“分享”匹配值的时候,自己至少保留一个值,也就是说:

    对于[<arg1>]... <arg2> <arg3>

    • ✕:无法匹配a1 a2,因为<arg1>必须保证至少有一个值
    • ✔:可以匹配a1 a2 a3
  4. 后面的可选元素绝不会被匹配。

    例如:<arg1>... [<arg2>] <arg3>匹配a1 a2 a3的结果为:

    {'<arg1>': ['a1', 'a2'], '<arg2>': None, '<arg3>': 'a3'}


如果你喜欢这个项目,可以买我一杯啤酒,让我做的更好! | Flattr this

侧栏导航