public StackFrame(EvaluationContext context, string methodName, StackFrame caller, StackFrame parent) { MethodName = methodName; Caller = caller; Parent = parent; Values = new ValuesTable(8); }
internal ValuesTable Values; //global values for top frame; parameters and local variables for method frame public StackFrame(EvaluationContext context, ValuesTable globals) { Context = context; Values = globals; if (Values == null) { Values = new ValuesTable(100); } }
public EvaluationContext(LanguageRuntime runtime) { Runtime = runtime; LanguageCaseSensitive = Runtime.Language.Grammar.CaseSensitive; //Globals = new GlobalValuesTable(100, Symbols, LanguageCaseSensitive); Globals = new ValuesTable(100); CallDispatcher = new DynamicCallDispatcher(this); ThreadId = Thread.CurrentThread.ManagedThreadId; TopFrame = new StackFrame(this, Globals); CurrentFrame = TopFrame; Data = new DataStack(); Data.Init(runtime.Unassigned); //set LastPushedItem to unassigned }