public void GenerateCode() { _writer = null; _cg = null; SelectCodeGenerator(); SM.Calculate(); _cg.Emit(SM); }
private void SelectCodeGenerator() { if (null == _cg) { EstablishCodeWriter(); switch (Parameters.Language) { case "C#": _cg = new CSharpCodeGenerator(_writer); break; case "jscript": _cg = new JScriptCodeGenerator(_writer); break; case "pseudo": _cg = new PseudoCodeGenerator(_writer); break; default: throw new Exception("target language " + Parameters.Language + " is not supported."); } _cg.Parameters = Parameters; } }