@@ -25,29 +25,29 @@ gen_class:
25
25
m_name: string
26
26
value: Value
27
27
children: seq [Pattern]
28
-
28
+
29
29
ChildPattern = ref object of Pattern
30
-
30
+
31
31
ParentPattern = ref object of Pattern
32
-
32
+
33
33
Argument = ref object of ChildPattern
34
-
34
+
35
35
Command = ref object of Argument
36
-
36
+
37
37
Option = ref object of ChildPattern
38
38
short: string
39
39
long: string
40
40
argcount: int
41
-
41
+
42
42
Required = ref object of ParentPattern
43
-
43
+
44
44
Optional = ref object of ParentPattern
45
-
45
+
46
46
AnyOptions = ref object of Optional
47
47
# # Marker/placeholder for [options] shortcut.
48
-
48
+
49
49
OneOrMore = ref object of ParentPattern
50
-
50
+
51
51
Either = ref object of ParentPattern
52
52
53
53
@@ -580,18 +580,18 @@ proc docopt_exc(doc: string, argv: seq[string], help: bool, version: string,
580
580
581
581
var docopt_exit = new_exception(DocoptExit, " " )
582
582
docopt_exit.usage = printable_usage(doc)
583
-
583
+
584
584
var options = parse_defaults(doc)
585
585
var pattern = parse_pattern(formal_usage(docopt_exit.usage), options)
586
-
587
- var argvt = parse_argv(token_stream(argv, docopt_exit), options,
586
+
587
+ var argvt = parse_argv(token_stream(argv, docopt_exit), options,
588
588
options_first)
589
589
var pattern_options = pattern.flat(" Option" ).deduplicate()
590
590
for any_options in pattern.flat(" AnyOptions" ):
591
591
var doc_options = parse_defaults(doc).deduplicate()
592
592
any_options.children = doc_options.filter_it(
593
593
it notin pattern_options).map_it(Pattern, Pattern(it))
594
-
594
+
595
595
extras(help, version, argvt, doc)
596
596
pattern.fix()
597
597
var (matched, left, collected) = pattern.match(argvt)
0 commit comments