@@ -189,6 +189,7 @@ type MatchResult = tuple[matched: bool; left, collected: seq[Pattern]]
189
189
type SingleMatchResult = tuple [pos: int , match: Pattern]
190
190
191
191
192
+ {.warning[LockLevel]: off .}
192
193
193
194
method str(self: Pattern): string =
194
195
assert false ; " Not implemented"
@@ -226,8 +227,8 @@ method either(self: Pattern): Either =
226
227
# # Transform pattern into an equivalent, with only top-level Either.
227
228
# Currently the pattern will not be equivalent, but more "narrow",
228
229
# although good enough to reason about list arguments.
229
- var result : seq [seq [Pattern]] = @ []
230
- var groups: seq [ seq [Pattern]] = @ [@ [self]]
230
+ var ret : seq [seq [Pattern]] = @ []
231
+ var groups = @ [@ [self]]
231
232
while groups.len > 0 :
232
233
var children = groups[0 ]
233
234
groups.delete()
@@ -250,8 +251,8 @@ method either(self: Pattern): Either =
250
251
else :
251
252
groups.add(child.children & children)
252
253
else :
253
- result .add(children)
254
- either(result .map_it(Pattern, required(it)))
254
+ ret .add(children)
255
+ either(ret .map_it(Pattern, required(it)))
255
256
256
257
method fix_repeating_arguments(self: Pattern) =
257
258
# # Fix elements that should accumulate/increment values.
@@ -549,11 +550,11 @@ proc parse_pattern(source: string, options: var seq[Option]): Required =
549
550
source.replacef(re"([\[\]\(\)\|]|\.\.\.)", r" $1 "),
550
551
new_exception(DocoptLanguageError, "")
551
552
)
552
- var result = parse_expr(tokens, options)
553
+ var ret = parse_expr(tokens, options)
553
554
if tokens.current != nil:
554
555
tokens.error.msg = "unexpected ending: '$#'".format(@tokens.join(" "))
555
556
raise tokens.error
556
- required(result )
557
+ required(ret )
557
558
558
559
559
560
proc parse_seq(tokens: TokenStream, options: var seq[Option]): seq[Pattern]
@@ -593,20 +594,20 @@ proc parse_atom(tokens: TokenStream, options: var seq[Option]): seq[Pattern] =
593
594
if token in ["(", "["]:
594
595
discard tokens.move()
595
596
var matching: string
596
- var result : Pattern
597
+ var ret : Pattern
597
598
case token
598
599
of "(":
599
600
matching = ")"
600
- result = required(parse_expr(tokens, options))
601
+ ret = required(parse_expr(tokens, options))
601
602
of "[":
602
603
matching = "]"
603
- result = optional(parse_expr(tokens, options))
604
+ ret = optional(parse_expr(tokens, options))
604
605
else:
605
606
assert false
606
607
if tokens.move() != matching:
607
608
tokens.error.msg = "unmatched '$#'".format(token)
608
609
raise tokens.error
609
- return @[result ]
610
+ return @[ret ]
610
611
elif token == "options":
611
612
discard tokens.move()
612
613
return @[Pattern(any_options([]))]
0 commit comments