A C-to-C transformation to split a function in two.
This transformation takes the identifier of the function it is to split, the name of the new function to be generated, and the location of the split, represented as a natural number corresponding to the number of block items in the function body before the split.
This transformation is a work in progress, and may fail in certain cases. For instance, it may fail given variables which have been declared but not yet initialized at the split point, or variables which are passed by reference after the split point.