After a hundred+ types maintained by hand, in a version that returns a value with a provided context parameter, and a version that is just a void-based visitor. I decided that it would behoove me to automate the process of my visitor models.
I have a system that handles reflection, code translation, and so on, and the next step for this project is transformation, or taking code and manipulating it based on what the code is.
I plan on having two steps to the transformation:
- 'Refactor Impact' analysis
The next step would be the actual manipulation of the model, taking what we know from step 1 and applying the transformations.
Granted, this will be much easier in theory than in practice; however, I plan on using the system I used to automate the visitor models to automate the analysis/transformation. Mostly because it's just too much work for one single developer to do in their spare time (that and I'm lazy.)