예제 #1
0
        public IESObject GetValue(ESContext context)
        {
            var value = _rvalue.GetValue(context);

            _lvalue.SetValue(context, value.Clone());
            return(value);
        }
예제 #2
0
        public override bool ToBoolean(ESContext context)
        {
            var v1 = _value1.GetValue <IESNumber>(context);
            var v2 = _value2.GetValue <IESNumber>(context);

            return(v1.Value >= v2.Value);
        }
예제 #3
0
        public override bool ToBoolean(ESContext context)
        {
            var v1 = _value1.GetValue(context).ToObject();
            var v2 = _value2.GetValue(context).ToObject();

            return(v1.Equals(v2));
        }
예제 #4
0
        public override IESObject Execute(ESContext context)
        {
            var ret   = ESDefault.Value;
            var items = _list.GetValue <IESEnumerable>(context);
            var iter  = items.GetEnumerator();

            while (true)
            {
                if (iter.MoveNext())
                {
                    context.UpdateValue(_index.Name, ToVirtual(iter.Current));
                    ret = _entry.Execute(context);
                }
                else
                {
                    return(ret);
                }
                if (context.IsBreak)
                {
                    context.IsBreak = false;
                    return(ret);
                }
                if (context.IsReturn)
                {
                    return(ret);
                }
            }
        }
예제 #5
0
 public static T GetValue <T>(this IExpressionRight exp, ESContext context)
 {
     try {
         return((T)exp.GetValue(context));
     } catch (Exception e) {
         throw new InvalidOperationException(exp.ToString(), e);
     }
 }
예제 #6
0
 public IESObject GetValue(ESContext context)
 {
     return(_target.GetValue(context).GetProperty(_property.Name));
 }
예제 #7
0
 public override IESObject Execute(ESContext context)
 {
     return(_func.GetValue <IESFunction>(context).Invoke(ESUtility.ToArray(context, _args)));
 }
예제 #8
0
 public IESObject GetValue(ESContext context)
 {
     return(_target.GetValue(context).GetMethod(_property.Name, ESUtility.ToInt32(_count.Value)));
 }
예제 #9
0
 public IESObject GetValue(ESContext context)
 {
     return(new ESNumber(-_value.GetValue <IESNumber>(context).Value));
 }
예제 #10
0
 public void SetValue(ESContext context, IESObject value)
 {
     _target.GetValue <IESIndex>(context)[_value.GetValue(context)] = value;
 }
예제 #11
0
 public override IESObject Execute(ESContext context)
 {
     context.IsReturn = true;
     return(_value == null ? ESDefault.Value : _value.GetValue(context));
 }