move the interpreter to a module

We're going to try Parse::RecDescent and maybe Marpa::R2 as well...