public static object ConvertFromBELObjectIfNeeded(IBELObject obj) { if (obj is BELDateTime) return (obj as BELDateTime).DateTime; if (obj is BELTimeSpan) return (obj as BELTimeSpan).TimeSpan; if (obj is BELBoolean) return (obj as BELBoolean).Value; if (obj is BELInteger) return (obj as BELInteger).Value; if (obj is BELString) return (obj as BELString).Value; if (obj is BELArray) return (obj as BELArray).Array; if (obj is UndefinedObject) return null; if (obj is BELType) return (obj as BELType).CLRType; return obj; }
// public bool Contains(string symbol) // { // return _Table.Contains(symbol); // } public void Set(string symbol, IBELObject val) { _Table[symbol] = val; }
public void AddParameter(string symbol, IBELObject val) { _Table[symbol] = val; }
public IBELObject EvaluateWithReceiver(ExecutionContext ctx, IBELObject receiver) { ArrayList args = new ArrayList(); foreach (object x in AllArgs) args.Add(x); IBELObject answer = receiver.ValueOf(FullMethodName, args, ctx); if (answer == null) throw NoSuchMemberException.ForMemberAndType(Location, FullMethodName, BELType.ExternalTypeNameForType(receiver.GetType())); return answer; }