using System; using System.Collections.Generic; using System.Text; namespace ScriptNET.Runtime { /// /// Handle operator execution. Objects implementing this /// interface may provide custom implementation for standard /// operators. /// /// Operator handlers may be registered through RuntimeHost /// public interface IOperatorHandler { /// /// Process HandleOperatorArgs and yields the result of executing operator /// /// an instance of HandleOperatorArgs /// result of handling operator object Process(HandleOperatorArgs args); } /// /// Is a class containing information for operator handlers /// public class HandleOperatorArgs : EventArgs { /// /// Operator symbol /// public string Symbol { get; private set; } /// /// Opertor Arguments /// public object[] Arguments { get; private set; } /// /// Result of operator execution /// public object Result { get; set; } /// /// Current execution context /// public IScriptContext Context { get; private set; } /// /// Flag which is used to cancel default behavior /// public bool Cancel { get; set; } public HandleOperatorArgs(IScriptContext context, string symbol, object[] arguments) { Symbol = symbol; Arguments = arguments; Context = context; Cancel = false; } } }