diff options
Diffstat (limited to 'tests/macros/tquotewords.nim')
-rw-r--r-- | tests/macros/tquotewords.nim | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/macros/tquotewords.nim b/tests/macros/tquotewords.nim new file mode 100644 index 000000000..76b8d8af7 --- /dev/null +++ b/tests/macros/tquotewords.nim @@ -0,0 +1,26 @@ +discard """ + file: "tquotewords.nim" + output: "thisanexample" +""" +# Test an idea I recently had: + +import macros + +macro quoteWords(n: expr): expr {.immediate.} = + let n = callsite() + result = newNimNode(nnkBracket, n) + for i in 1..n.len-1: + expectKind(n[i], nnkIdent) + result.add(toStrLit(n[i])) + +const + myWordList = quoteWords(this, an, example) + +var s = "" +for w in items(myWordList): + s.add(w) + +echo s #OUT thisanexample + + + |