/// <summary> /// Convert the parse tree to executable code then save it to the /// filename specified in the options. /// </summary> public void Save() { try { CodeGenerator codegen = new CodeGenerator(_opts); MarkExecutable(); codegen.GenerateCode(_programDef); codegen.Save(); } catch (CodeGeneratorException e) { _messages.Error(e.Filename, MessageCode.CODEGEN, e.Linenumber, e.Message); } }