From 5e15dec1757e6013cbeb5d6baf9d9579cf025361 Mon Sep 17 00:00:00 2001 From: Araq Date: Mon, 20 Aug 2012 01:13:13 +0200 Subject: first steps to make templates hygienic --- lib/impure/re.nim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lib/impure') diff --git a/lib/impure/re.nim b/lib/impure/re.nim index 7ef3d247a..57dc3a313 100755 --- a/lib/impure/re.nim +++ b/lib/impure/re.nim @@ -218,6 +218,9 @@ proc findAll*(s: string, pattern: TRegEx, start = 0): seq[string] = ## If it does not match, @[] is returned. accumulateResult(findAll(s, pattern, start)) +when not defined(nimhygiene): + {.pragma: inject.} + template `=~` *(s: string, pattern: TRegEx): expr = ## This calls ``match`` with an implicit declared ``matches`` array that ## can be used in the scope of the ``=~`` call: @@ -237,7 +240,7 @@ template `=~` *(s: string, pattern: TRegEx): expr = ## echo("syntax error") ## when not definedInScope(matches): - var matches: array[0..re.maxSubPatterns-1, string] + var matches {.inject.}: array[0..re.maxSubPatterns-1, string] match(s, pattern, matches) # ------------------------- more string handling ------------------------------ -- cgit 1.4.1-2-gfad0