public LuryObject Dereference(LuryContext context) { var reference = (Reference)Value; if (reference.Subject == null) { if (reference.Key == null) { return(context[reference.Object]); } else { var obj = context[reference.Object]; return(LuryList.GetIndex(obj, reference.Key)); } } else { if (reference.Key == null) { return(reference.Subject.GetMember(reference.Object, context)); } else { return(LuryList.GetIndex(reference.Subject, reference.Key)); } } }
public LuryObject Assign(LuryContext context, LuryObject @object) { var reference = (Reference)Value; if (reference.Subject == null) { if (reference.Key == null) { context[reference.Object] = @object; } else { var obj = context[reference.Object]; LuryList.SetIndex(obj, reference.Key, @object); } } else { if (reference.Key == null) { reference.Subject.SetMember(reference.Object, @object); } else { LuryList.SetIndex(reference.Subject, reference.Key, @object); } } return(@object); }
public LuryListIterator(LuryList value) : base(FullName, value, true) { }