Remove Option from exec(Regex, string, int)

This commit is contained in:
Flaviu Tamas 2015-01-10 16:49:39 -05:00
commit f692042bb8

View file

@ -215,7 +215,10 @@ proc initRegex*(pattern: string, options = "Sx"): Regex =
result.captureNameToId = result.getNameToNumberTable() result.captureNameToId = result.getNameToNumberTable()
# }}} # }}}
proc exec*(self: Regex, str: string, start = 0): Option[RegexMatch] = proc exec*(self: Regex, str: string, start = 0): RegexMatch =
## Tries to match the regex on the string `str` starting at `start`.
## On fail, returns `nil`
## On success, returns RegexMatch
var result: RegexMatch var result: RegexMatch
new(result) new(result)
result.pattern = self result.pattern = self
@ -236,8 +239,8 @@ proc exec*(self: Regex, str: string, start = 0): Option[RegexMatch] =
cint(0), cint(0),
cast[ptr cint](addr result.pcreMatchBounds[0]), cint(vecsize)) cast[ptr cint](addr result.pcreMatchBounds[0]), cint(vecsize))
if execRet >= 0: if execRet >= 0:
return Some(result) return result
elif execRet == pcre.ERROR_NOMATCH: elif execRet == pcre.ERROR_NOMATCH:
return None[RegexMatch]() return nil
else: else:
raise newException(AssertionError, "Internal error: errno " & $execRet) raise newException(AssertionError, "Internal error: errno " & $execRet)