Putting my ideas across to the mentors, they found flattening of the arrays to be too easy and therefore not an option. They requested me to try and build the code in a way that it doesn’t affect the already written code too much or write up fresh code so that I don’t break the build. I went through the options and found that it would be extremely difficult to do so in the given time frame. My only option was to modify the LLVM data structures and change all the functions related to these structures.
Currently, I have to just support an array of parameters with an initial assignment or assignment rule. I have gone through the already written code multiple times and have got a fair idea of what changes have to be made. I have started making the required changes to take in an array of parameters. I will have to add new AST(Abstract Syntax Tree) functions and structures to libRoadRunner to carry out the math present in an Assignment rule.