Update the iterator in the generated clast AST to avoid duplication in for loop IVs.
When generating the caller, we bind them with the correct version based on the enclosing for-loops' IVs and their matching prefixes.
When cloning operations from the source to the destination, we figure out the mapping of values based on the caller's args.
This solution is not very elegant and there are many parts should be refactorised in the future. But it is better to have a working version than nothing.
This PR creates a preliminary solution to #58 .
It's ideas are:
This solution is not very elegant and there are many parts should be refactorised in the future. But it is better to have a working version than nothing.