Merge pull request #1565 from gradha/pr_supports_nnkPostfix_stringification

Adds stringification support for nnkPostfix nodes.
This commit is contained in:
Andreas Rumpf 2014-11-03 01:56:44 +01:00
commit e7edd9e64e

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