Added addPragma routine

This commit is contained in:
Yuriy Glukhov
2016-06-22 22:08:07 +03:00
parent d68dec11ce
commit e06b32249f

View File

@@ -692,6 +692,14 @@ proc `pragma=`*(someProc: NimNode; val: NimNode){.compileTime.}=
assert val.kind in {nnkEmpty, nnkPragma}
someProc[4] = val
proc addPragma*(someProc, pragma: NimNode) {.compileTime.} =
## Adds pragma to routine definition
someProc.expectRoutine
var pragmaNode = someProc.pragma
if pragmaNode.isNil or pragmaNode.kind == nnkEmpty:
pragmaNode = newNimNode(nnkPragma)
someProc.pragma = pragmaNode
pragmaNode.add(pragma)
template badNodeKind(k; f): stmt{.immediate.} =
assert false, "Invalid node kind " & $k & " for macros.`" & $f & "`"