Thank you, Araq. I generated as many sequences as possible, like these:
7 seq vars like: var system_map_{g,e,x,m,pos,neg,nau} =
newSeq[tuple[id:int, sysID:int]]().
7 seq const vars like: const asset_map_{g,e,x,m,pos,neg,nau} =
newSeq[int]().
1 seq var like: var system_def = newSeq[tuple[name:string, sysID:int,
sysBody:string]]().
7 seq vars like: asset_def_{g|e|x|m|pos|neg|nau} = newSeq[(name:string,
procID:int, procBody:string)].
indefinite number of asset procs {g|e|x|m|pos|neg|nau}proc(#): i.e.
g1proc(), e8proc(), x4proc(), etc.
If I made everything a constant will that mean everything is done in the VM
phase and subsequent macros may reference const vars created by earlier macros?
I tried accessing my const
asset_[map](http://forum.nim-lang.org/postActivity.xml#map).. variables from a
later macro and couldn't. I could probably get by with everything being a
constant, except the
asset_[def](http://forum.nim-lang.org/postActivity.xml#def).. ones. If I
understand correctly, a plus of having var sequences is being able to store a
lot on the heap, which I need for the
asset_[def](http://forum.nim-lang.org/postActivity.xml#def).. sequences.
Being able to define these before my program even runs means I can
declaratively build-up all the programming building blocks from config files,
and my main program can programmatically mix-and-match code blocks, which is
incredibly helpful meta-programming capability.