static LuaObject EvalVariable(Variable Expression, LuaContext Context) { if (Expression.Prefix == null) { return(Context.Get(Expression.Name)); } else { LuaObject prefix = EvalExpression(Expression.Prefix, Context)[0]; return(prefix[Expression.Name]); } }
/// <summary> /// Returns the nearest declared variable value or nil /// </summary> public LuaObject Get(string Name) { var obj = LuaObject.Nil; if (variables.TryGetValue(Name, out obj) || parent == null) { return(obj); } else { return(parent.Get(Name)); } }
public override bool TryGetMember(GetMemberBinder binder, out object result) { result = null; LuaObject obj = ctx.Get(binder.Name); if (obj.IsNil) { return(false); } else { result = LuaObject.getObject(obj); return(true); } }