This is meant to be a tool to convert from VB6 to C#. This is very much a work in progress. A lot of things are missing.
(although what it does right now might be enough for AI to finish the migration; mileage may vary)
I've got a large 300K LOC VB6 project that I need to migrate, and I'm too cheap to pay for the commercial offerings out there.
In general, the way this works is:
- Parse VB6 using ANTLR and create a syntax tree.
- Walk the tree and produce a C# syntax tree using Roslyn.
- Try to build the output.
- Run a set of rewriters to fix up the resulting code by using the semantic model.
- Try to infer types and resolve ambiguities, like arrays vs. function calls.
- Attempt to generate stub classes for missing types and dependencies.
- As fixes accrue, the semantic model gets more refined, so the rewriters can do more work.
- Go back to 3 until the code stabilizes.