// Private Methods private static string GetCode(IEmitable method) { var emiter = new PhpSourceCodeEmiter(); var writer = new PhpSourceCodeWriter(); writer.Clear(); method.Emit(emiter, writer, new PhpEmitStyle()); return writer.GetCode(true).Trim(); }
private void TranslateAndCreatePhpFiles(TranslationInfo translationInfo, string outDir) { if (_verboseToConsole) { Console.WriteLine("Translate C# -> Php"); } translationInfo.CurrentAssembly = CompiledAssembly; var assemblyTi = translationInfo.GetOrMakeTranslationInfo(CompiledAssembly); var ecBaseDir = Path.Combine(outDir, assemblyTi.RootPath.Replace("/", "\\")); Console.WriteLine("Output root {0}", ecBaseDir); if (!string.IsNullOrEmpty(assemblyTi.PhpPackageSourceUri)) { DownloadAndUnzip(assemblyTi.PhpPackageSourceUri, ecBaseDir, assemblyTi.PhpPackagePathStrip); return; //??? czy return? } var translationState = new TranslationState(translationInfo); var translator = new Translator.Translator(translationState); translator.Translate(Sandbox); var libName = assemblyTi.LibraryName; if (_verboseToConsole) { Console.WriteLine("Create Php output files"); } #region Tworzenie plików php { // var emitContext = new EmitContext(); var emitStyle = new PhpEmitStyle(); translationInfo.CurrentAssembly = CompiledAssembly; // dla pewności foreach (var module in translator.Modules.Where(i => i.Name.Library == libName && !i.IsEmpty)) { var fileName = module.Name.MakeEmitPath(ecBaseDir, 1); foreach (var modProcessor in translationInfo.ModuleProcessors) { modProcessor.BeforeEmit(module, translationInfo); } var emiter = new PhpSourceCodeEmiter(); module.Emit(emiter, emitStyle, fileName); } } #endregion }
public void Emit(PhpSourceCodeEmiter emiter, PhpSourceCodeWriter writer, PhpEmitStyle style) { throw new NotImplementedException(); }
private void TranslateAndCreatePhpFiles(TranslationInfo translationInfo, string outDir) { if (_verboseToConsole) Console.WriteLine("Translate C# -> Php"); translationInfo.CurrentAssembly = _compiledAssembly; var assemblyTi = translationInfo.GetOrMakeTranslationInfo(_compiledAssembly); var ecBaseDir = Path.Combine(outDir, assemblyTi.RootPath.Replace("/", "\\")); Console.WriteLine("Output root {0}", ecBaseDir); if (!string.IsNullOrEmpty(assemblyTi.PhpPackageSourceUri)) { DownloadAndUnzip(assemblyTi.PhpPackageSourceUri, ecBaseDir, assemblyTi.PhpPackagePathStrip); return; //??? czy return? } var translationState = new TranslationState(translationInfo); var translator = new Translator.Translator(translationState); translator.Translate(_sandbox); var libName = assemblyTi.LibraryName; if (_verboseToConsole) Console.WriteLine("Create Php output files"); #region Tworzenie plików php { // var emitContext = new EmitContext(); var emitStyle = new PhpEmitStyle(); translationInfo.CurrentAssembly = _compiledAssembly;// dla pewności foreach (var module in translator.Modules.Where(i => i.Name.Library == libName && !i.IsEmpty)) { var fileName = module.Name.MakeEmitPath(ecBaseDir, 1); foreach (var modProcessor in translationInfo.ModuleProcessors) { modProcessor.BeforeEmit(module, translationInfo); } var emiter = new PhpSourceCodeEmiter(); module.Emit(emiter, emitStyle, fileName); } } #endregion }