From f692042bb835642d7d0f3296b3c6b2ea60737ecf Mon Sep 17 00:00:00 2001 From: Flaviu Tamas Date: Sat, 10 Jan 2015 16:49:39 -0500 Subject: [PATCH] Remove Option from exec(Regex, string, int) --- src/nre.nim | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/nre.nim b/src/nre.nim index 5a5cbaa45d..631be2176a 100644 --- a/src/nre.nim +++ b/src/nre.nim @@ -215,7 +215,10 @@ proc initRegex*(pattern: string, options = "Sx"): Regex = 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 new(result) result.pattern = self @@ -236,8 +239,8 @@ proc exec*(self: Regex, str: string, start = 0): Option[RegexMatch] = cint(0), cast[ptr cint](addr result.pcreMatchBounds[0]), cint(vecsize)) if execRet >= 0: - return Some(result) + return result elif execRet == pcre.ERROR_NOMATCH: - return None[RegexMatch]() + return nil else: raise newException(AssertionError, "Internal error: errno " & $execRet)