use bare grammar in calculations rather than calculation context
Change Grammar's constructor to accept 'rules' (such as output from the parser) rather than 'productions'. Now we store both the rules and the expanded productions.