diff options
author | Grzegorz Adam Hankiewicz <gradha@imap.cc> | 2014-10-11 00:53:26 +0200 |
---|---|---|
committer | Grzegorz Adam Hankiewicz <gradha@imap.cc> | 2014-10-11 00:53:26 +0200 |
commit | aa1fb9a07ea3d48f7350c3dd9a26f2c22e38ae67 (patch) | |
tree | 99aaa3e19306e11444aedb2c987a8dcca2d06f8d /lib/core/macros.nim | |
parent | c17c8e9afa6ba6a1000fe82b1c8a7af10e3fc698 (diff) | |
download | Nim-aa1fb9a07ea3d48f7350c3dd9a26f2c22e38ae67.tar.gz |
Adds stringification support for nnkPostfix nodes.
Diffstat (limited to 'lib/core/macros.nim')
-rw-r--r-- | lib/core/macros.nim | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim index e290cce32..455f99c9e 100644 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -620,6 +620,8 @@ proc `body=`*(someProc: PNimrodNode, val: PNimrodNode) {.compileTime.} = someProc[high(someProc)] = val else: badNodeKind someProc.kind, "body=" + +proc basename*(a: PNimrodNode): PNimrodNode {.compiletime.} proc `$`*(node: PNimrodNode): string {.compileTime.} = @@ -627,6 +629,8 @@ proc `$`*(node: PNimrodNode): string {.compileTime.} = case node.kind of nnkIdent: result = $node.ident + of nnkPostfix: + result = $node.basename.ident & "*" of nnkStrLit..nnkTripleStrLit: result = node.strVal else: @@ -669,7 +673,7 @@ proc insert*(a: PNimrodNode; pos: int; b: PNimrodNode) {.compileTime.} = a[i + 1] = a[i] a[pos] = b -proc basename*(a: PNimrodNode): PNimrodNode {.compiletime.} = +proc basename*(a: PNimrodNode): PNimrodNode = ## Pull an identifier from prefix/postfix expressions case a.kind of nnkIdent: return a |