public void Translate(string filename, TextReader input, TextWriter output)
{
Debug.Print("Translating module {0} in namespace {1}", moduleName, nmspace);
var lex = new Lexer(filename, input);
var par = new Parser(filename, lex);
var stm = par.Parse();
var unt = new CodeCompileUnit();
var gen = new CodeGenerator(unt, nmspace, Path.GetFileNameWithoutExtension(moduleName));
var xlt = new ModuleTranslator(gen);
xlt.Translate(stm);
var pvd = new CSharpCodeProvider();
pvd.GenerateCodeFromCompileUnit(unt, output, new CodeGeneratorOptions { });
}