When passing the extra real optional command line arguments to the ml file. Do we have to pass them as command line arguments fully to the translated ml file when it is compiled and run.
Or can we simply write them into the the translated file as identifiers?
Additionally, do we have to verify the ml file has received the correct number of inputs, ie do we have to find all arg<some number> instances, determine their argument index and then make sure we have a number of inputs equal to the highest instance of that, returning an error prior to compiling.
Or can we assume that we will be given the correct number of inputs, in accordance with "EXCEPT that your program will not be tested with any invalid expressions, so you do not need to validate the syntax of expressions." Given command line arguments should only ever appear in expressions, this appears to be something we should not be required to check for, however I wanted to double check this is an acceptable assumption.