If you want to split a big macros in multiple macros the easiest way to do that
is to use a `var MyTable: Table[string, NimNode] {.compileTime.}` that will
collect code fragment from one macro to another.
Simple example to transfer data between 2 macros when a `seq` suffices at:
* Parsing:
[https://github.com/mratsim/constantine/blob/2f839cb1/constantine/config/curves_parser.nim#L115-L117](https://github.com/mratsim/constantine/blob/2f839cb1/constantine/config/curves_parser.nim#L115-L117)
* Code generation:
[https://github.com/mratsim/constantine/blob/2f839cb1/constantine/config/curves_parser.nim#L227](https://github.com/mratsim/constantine/blob/2f839cb1/constantine/config/curves_parser.nim#L227)
More complex but still simple example:
[https://github.com/mratsim/Synthesis/blob/b8fdd103/synthesis/factory.nim#L77](https://github.com/mratsim/Synthesis/blob/b8fdd103/synthesis/factory.nim#L77)
All macros are updating the `Registry` object and the one that does the final
code generation just read from it this way there is no interleaving.
Maybe I should call that the `Registry` pattern.