From f75af8c1464e948b5e166cf5ab09ebf0d82fc253 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 27 Jul 2020 22:27:54 -0700 Subject: libgo: update to go1.15rc1 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245157 --- libgo/go/regexp/regexp.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'libgo/go/regexp/regexp.go') diff --git a/libgo/go/regexp/regexp.go b/libgo/go/regexp/regexp.go index 19ca6f2..b547a2a 100644 --- a/libgo/go/regexp/regexp.go +++ b/libgo/go/regexp/regexp.go @@ -345,6 +345,24 @@ func (re *Regexp) SubexpNames() []string { return re.subexpNames } +// SubexpIndex returns the index of the first subexpression with the given name, +// or -1 if there is no subexpression with that name. +// +// Note that multiple subexpressions can be written using the same name, as in +// (?Pa+)(?Pb+), which declares two subexpressions named "bob". +// In this case, SubexpIndex returns the index of the leftmost such subexpression +// in the regular expression. +func (re *Regexp) SubexpIndex(name string) int { + if name != "" { + for i, s := range re.subexpNames { + if name == s { + return i + } + } + } + return -1 +} + const endOfText rune = -1 // input abstracts different representations of the input text. It provides -- cgit v1.1