using System; using System.Reflection; using System.Collections.Generic; namespace Cosmos.BuildEngine { /// /// A platform for which Cosmos may be built. /// public abstract class CosmosBuildPlatform { public abstract IEnumerable GetSupportedAssemblers(); public abstract String GetDisplayName(); public IEnumerable Options = null; public CosmosBuildPlatform() { } public void SetOptions(IEnumerable options) { Options = options; } /// /// Translates a block of CIL into platform Assembly Code. /// /// CILReader from which the CIL block can be read. /// Platform Assembly Code which represents the data nessecary to assemble the specified block of CIL code. /// Platform Assembly Code which represents the instructions nessecary to assemble the specified block of CIL code. /// Null if successfull, else a string specifing the error which occured. public abstract String TranslateCIL(CILReader CILCodeReader, out String[] DataMemberAssemblyCode, out String[] InstructionAssemblyCode); public abstract String[] GetPreDataCode(); public abstract String[] GetPostDataCode(); public abstract String[] GetPostCodeCode(); public abstract IEnumerable GetBuildOptions(); public abstract String GetPostfixForOptions(); } }