public static void Translate( TextWriter logw, CodeTextStorage storage, bool readSymbols, bool enableBundler, TargetPlatforms targetPlatform, DebugInformationOptions debugInformationOptions, string assemblyPath) { logw.Write("IL2C: Preparing assembly: \"{0}\" ...", Path.GetFullPath(assemblyPath)); var translateContext = new TranslateContext(assemblyPath, readSymbols, targetPlatform); var preparedFunctions = AssemblyPreparer.Prepare(translateContext); logw.WriteLine(" done."); using (var _ = storage.EnterScope("include")) { AssemblyWriter.WriteHeader( storage, translateContext, preparedFunctions); } using (var _ = storage.EnterScope("src")) { AssemblyWriter.WriteSourceCode( storage, translateContext, preparedFunctions, enableBundler, debugInformationOptions); } }
public static string[] WriteSourceCode( CodeTextStorage storage, TranslateContext translateContext, PreparedInformations prepared, bool enableBundler, DebugInformationOptions debugInformationOption) { var sourceFilePaths = new List <string>(); var assemblyName = translateContext.Assembly.Name; // Write assembly level common internal header. HeaderWriter.WriteCommonInternalHeader( storage, translateContext, prepared, assemblyName); // Write assembly level common internal source code. sourceFilePaths.Add( SourceCodeWriter.WriteCommonInternalSourceCode( storage, translateContext, prepared, assemblyName)); // Write source code bundler. if (enableBundler) { SourceCodeWriter.WriteBundlerSourceCode( storage, prepared, assemblyName); } using (var _ = storage.EnterScope(assemblyName, false)) { // Write source codes. sourceFilePaths.AddRange( SourceCodeWriter.WriteSourceCodes( storage, translateContext, prepared, debugInformationOption)); } return(sourceFilePaths.ToArray()); }
public static void WriteHeader( CodeTextStorage storage, TranslateContext translateContext, PreparedInformations prepared) { var assemblyName = translateContext.Assembly.Name; // Write assembly level common header. HeaderWriter.WriteCommonHeader( storage, translateContext, prepared, assemblyName); using (var _ = storage.EnterScope(assemblyName, false)) { // Write public headers. HeaderWriter.WriteHeaders( storage, translateContext, prepared); } }