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();
}
}