using System; using System.Collections.Generic; namespace ScriptNET.Runtime { /// /// Represents Scope. Scopes are used to store variables, types and functions /// public interface IScriptScope { /// /// Parent scope /// IScriptScope Parent { get; } /// /// Returns Item: variable, type or function /// /// id of item /// throws exception if item not found /// value of given ID object GetItem(string id, bool throwException); /// /// Sets Item: variable, type or function /// /// item's id /// value void SetItem(string id, object value); /// /// Returns true if excatly this scope has variable with given id /// /// /// bool HasVariable(string id); /// /// Cleans Scope (Removes items) /// /// Type of cleanup void Clean(); /// /// Gets Invokable object (Function) by a given name /// /// Name /// IInvokable GetFunctionDefinition(string name); } }