Command Line Interface
The entrypoint to our program is a good place to start, so that we can get a sense for how all the pieces will fit together. The interface we're looking for is something like this:
l-system -f <l-system-file> -n <iterations>
We need a few main pieces in order to render an l-system. First is a file containing the description of our l-system. This will have the rules for symbol replacements, defines the axiom and it will also contain some starting configuration for our renderer. Lastly we have the number of iterations, which is the number of times that we should apply the token substitution rules.
The main
function should parse these arguments, parse the l-system described
in the file, then get the final productions and pass them to the renderer as
individual instructions. Once that is complete, it should call finalize on the
renderer.