Hi everyone :) My evenings for the past couple weeks were spent (re)writing this: <https://github.com/auxym/svd2nim>
It seems to be working, I have a test that checks all register addresses against those in a reference C header (generated by ARM's tool, SVDConv). The API is detailed in the readme. Next step is to try it out in actual hardware.