using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
namespace MudEngine.Scripting
{
///
/// Used to implement a wrapper for an existing compiler.
///
public interface ICompiler
{
#if WINDOWS_PC
CompilerResults Results { get; set; }
///
/// The file extension used for the script files.
///
String ScriptExtension { get; set; }
///
/// Provides a collection of Assemblies that the compiler will add to its reference list.
///
List AssemblyReferences { get; set; }
///
/// Provides compiling options to various compilers, if they support this feature.
///
Dictionary CompilerOptions { get; set; }
///
/// Compiles the source files found within the scriptRepository directory matching the ICompiler.ScriptExtension
/// The Compiler defaults to the C# 4.0 compiler if none other is supplied via the ICompiler.CompilerOptions argument.
///
/// Compiler Parameters that can be supplied to customize the compilation of the source.
/// Returns true if the compilation was completed without error.
Boolean Compile(CompilerParameters param, String scriptRepository);
Boolean Compile(CompilerParameters param, System.IO.FileInfo scriptFile);
Boolean Compile(CompilerParameters param, String[] scriptSource);
#endif
}
}