52 lines
750 B
Nim
52 lines
750 B
Nim
discard """
|
|
msg: '''letters
|
|
aa
|
|
bb
|
|
numbers
|
|
11
|
|
22
|
|
AST a
|
|
[(11, 22), (33, 44)]
|
|
AST b
|
|
(e: [55, 66], f: [77, 88])
|
|
55
|
|
'''
|
|
"""
|
|
|
|
import macros
|
|
|
|
type
|
|
TConfig = tuple
|
|
letters: seq[string]
|
|
numbers:seq[int]
|
|
|
|
const data: Tconfig = (@["aa", "bb"], @[11, 22])
|
|
|
|
macro mymacro(data: static[TConfig]): stmt =
|
|
echo "letters"
|
|
for s in items(data.letters):
|
|
echo s
|
|
echo "numbers"
|
|
for n in items(data.numbers):
|
|
echo n
|
|
|
|
mymacro(data)
|
|
|
|
type
|
|
Ta = seq[tuple[c:int, d:int]]
|
|
Tb = tuple[e:seq[int], f:seq[int]]
|
|
|
|
const
|
|
a : Ta = @[(11, 22), (33, 44)]
|
|
b : Tb = (@[55,66], @[77, 88])
|
|
|
|
macro mA(data: static[Ta]): stmt =
|
|
echo "AST a \n", repr(data)
|
|
|
|
macro mB(data: static[Tb]): stmt =
|
|
echo "AST b \n", repr(data)
|
|
echo data.e[0]
|
|
|
|
mA(a)
|
|
mB(b)
|
|
|