summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorflywind <43030857+xflywind@users.noreply.github.com>2020-06-30 21:21:37 +0800
committerGitHub <noreply@github.com>2020-06-30 15:21:37 +0200
commit8be54b8fa7f24fe2886de95c4a2bd356dbae5aa9 (patch)
tree8048f71e82a075a0354bbf2b043954d8c6ad21b4 /lib
parent89a15e417df52454aa5c40ba058c9b19425dd184 (diff)
downloadNim-8be54b8fa7f24fe2886de95c4a2bd356dbae5aa9.tar.gz
add debug fmt string like python's (#14808)
* add debug format string

* remove try except

* add changelog
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/strformat.nim14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/pure/strformat.nim b/lib/pure/strformat.nim
index 5f7ef380d..0ea784a43 100644
--- a/lib/pure/strformat.nim
+++ b/lib/pure/strformat.nim
@@ -552,8 +552,18 @@ proc strformatImpl(pattern: NimNode; openChar, closeChar: char): NimNode =
 
         var subexpr = ""
         while i < f.len and f[i] != closeChar and f[i] != ':':
-          subexpr.add f[i]
-          inc i
+          if f[i] == '=':
+            let start = i
+            inc i
+            i += f.skipWhitespace(i)
+            if f[i] == closeChar or f[i] == ':':
+              result.add newCall(bindSym"add", res, newLit(subexpr & f[start ..< i]))
+            else:
+              subexpr.add f[start ..< i]
+          else:
+            subexpr.add f[i]
+            inc i
+
         var x: NimNode
         try:
           x = parseExpr(subexpr)