Skip to content

Commit d3d804d

Browse files
committed
fix capture error
1 parent 3503c80 commit d3d804d

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

pm.js

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,13 +517,33 @@ function PatternsParse(tokens) {
517517
CheckQuantifier(par, obj)
518518
}
519519
break
520+
case TOK.LPAR:
521+
{
522+
print("(")
523+
if (par.IsNextRPar()) {
524+
par.captures.push(new PatternObject(PAT.POSITION, par, par.captures.length + 1))
525+
par.Next()
526+
par.Next()
527+
} else {
528+
par.StartCapture()
529+
}
530+
par.Next()
531+
}
532+
break
533+
case TOK.RPAR:
534+
{
535+
print(")")
536+
par.EndCapture()
537+
par.Next()
538+
}
539+
break
520540
case TOK.CAPTUREREF:
521541
{
522542
print("Captureref")
523543
let obj = new PatternObject(PAT.CAPTUREREF, par, par.current.string)
524544
if (par.current.string === "0") {
525545
new PatternObject(PAT.NOTE, obj, "Reference for capture #0 is available only in string.gsub.")
526-
} else if (par.captures.length < par.current.string - 1) {
546+
} else if (par.captures.length < par.current.string) {
527547
new PatternObject(PAT.WARNING, obj, "Reference for capture #" + par.current.string + " is not found.")
528548
} else if (par.captures[par.current.string - 1].type === PAT.POSITION) {
529549
new PatternObject(PAT.NOTE, obj, "References for position captures are available only in string.gsub.")

0 commit comments

Comments
 (0)