Adds stringification support for nnkPostfix nodes.

This commit is contained in:
Grzegorz Adam Hankiewicz 2014-10-11 00:53:26 +02:00
commit aa1fb9a07e

View file

@ -620,6 +620,8 @@ proc `body=`*(someProc: PNimrodNode, val: PNimrodNode) {.compileTime.} =
someProc[high(someProc)] = val someProc[high(someProc)] = val
else: else:
badNodeKind someProc.kind, "body=" badNodeKind someProc.kind, "body="
proc basename*(a: PNimrodNode): PNimrodNode {.compiletime.}
proc `$`*(node: PNimrodNode): string {.compileTime.} = proc `$`*(node: PNimrodNode): string {.compileTime.} =
@ -627,6 +629,8 @@ proc `$`*(node: PNimrodNode): string {.compileTime.} =
case node.kind case node.kind
of nnkIdent: of nnkIdent:
result = $node.ident result = $node.ident
of nnkPostfix:
result = $node.basename.ident & "*"
of nnkStrLit..nnkTripleStrLit: of nnkStrLit..nnkTripleStrLit:
result = node.strVal result = node.strVal
else: else:
@ -669,7 +673,7 @@ proc insert*(a: PNimrodNode; pos: int; b: PNimrodNode) {.compileTime.} =
a[i + 1] = a[i] a[i + 1] = a[i]
a[pos] = b a[pos] = b
proc basename*(a: PNimrodNode): PNimrodNode {.compiletime.} = proc basename*(a: PNimrodNode): PNimrodNode =
## Pull an identifier from prefix/postfix expressions ## Pull an identifier from prefix/postfix expressions
case a.kind case a.kind
of nnkIdent: return a of nnkIdent: return a