public override object Evaluate(Data.jsObject Context) { if (Variable == null || List == null) { return(null); } var Array = GetValue(List, Context); if (Array == null) { return(null); } object Value = null; var String = Array as string; if (!string.IsNullOrEmpty(String)) { Value = LoopString(Context, String); } else { Value = LoopObject(Context, Array as jsObject); } Variable.Assign(Context, null); return(Value); }
public override object Evaluate(Data.jsObject Context) { var List = this.ToList(); do { for (int i = 0; i < List.Count; i++) { var Obj = List[i]; var Result = (Obj.Value as Node).Evaluate(Context); if (Obj.Value is Return) { return(Result); } if (Result == Break) { return(null); } if (Result == Continue) { break; } } }while (Bool.EvaluateNode(Boolean, Context)); return(null); }
public override object Evaluate(Data.jsObject Context) { var L = GetLeft(Context); var R = GetRight(Context); if (L == null || R == null) { if (L != null) { return(L); } if (R != null) { return(R); } return(null); } var V = DataType.GreaterThan(L, R); if (V is bool && (bool)V) { return(true); } V = DataType.Equal(L, R); if (V is bool && (bool)V) { return(true); } return(false); }
public override object Evaluate(Data.jsObject Context) { if (Handler == null) { return(null); } return(Handler(Context)); }
public override object Evaluate(Data.jsObject Context) { Variable Var; if ((Var = Left as Variable) != null) { return(Var.Assign(Context, GetRight(Context))); } return(null); }
public override object Evaluate(Data.jsObject Context) { var Thread = new Thread((C) => { GetValue(Node, C as Data.jsObject); }); Thread.Start(Context); return(Thread); }
public override object Evaluate(Data.jsObject Context) { if (Node != null) { try { return(Node.Evaluate(Context)); } catch (Exception Error) { return(Error); } } return(null); }
public override object Evaluate(Data.jsObject Context) { var L = GetLeft(Context); var R = GetRight(Context); var V = DataType.Equal(L, R); if (V is bool) { return(!(bool)V); } return(false); }
public override object Evaluate(Data.jsObject Context) { var L = GetLeft(Context); var R = GetRight(Context); if (L == null || R == null) { if (L != null) { return(L); } if (R != null) { return(R); } return(null); } return(DataType.Subtract(L, R)); }
public override object Evaluate(Data.jsObject Context) { object This = GetValue(Object, Context); if (Function != null) { return(Function.Call(Context, Arguments, This, Engine)); } Function Func; if ((Func = Function.Get(Engine, Name, This, ref Cacheable)) == null) { var ObjectName = Object.ToString(); if (Engine.Shorthands.ContainsKey(ObjectName)) { var T = Helper.SystemFunctions.SearchForType(Engine.Shorthands[ObjectName]); if (T != null) { var Args = Function.GetFunctionArguments(null, Context, Arguments); var Types = Helper.MemberFunction.GetArgTypes(Args); Func = Helper.SystemFunctions.Get(T, Name, Types); Cacheable = true; } } else { return(null); } } if (Cacheable) { Function = Func; } return(Func.Call(Context, Arguments, This, Engine)); }
public override object Evaluate(Data.jsObject Context) { var Options = this.ToArray(); for (int i = 0; i < Options.Length; i++) { var Case = (Options[i].Value as Case); if (Case != null && Bool.EvaluateNode(Case.Object, Context)) { return(Case.Evaluate(Context)); } } if (Default != null) { return(Default.Evaluate(Context)); } return(null); }
public override object Evaluate(Data.jsObject Context) { Init.Evaluate(Context); var List = this.ToList(); while (Bool.EvaluateNode(Boolean, Context)) { for (int i = 0; i < List.Count; i++) { var Node = (List[i].Value as Node); if (Node == null) { continue; } var Result = Node.Evaluate(Context); if (Node is Return) { return(Result); } if (Result == Break) { return(null); } if (Result == Continue) { break; } } Modifier.Evaluate(Context); } return(null); }
public override object Evaluate(Data.jsObject Context) { var L = GetLeft(Context); var R = GetRight(Context); if (L == null || R == null) { return(null); } var LS = L.ToString(); var RS = R.ToString(); var Data = LS.Match(RS); if (Data != null) { Data.CopyTo(Context); return(Data); } return(null); }
public override object Evaluate(Data.jsObject Context) { return(!Bool.EvaluateNode(Right, Context)); }
public override object Evaluate(Data.jsObject Context) { return(Value); }
public override object Evaluate(Data.jsObject Context) { return(Bool.EvaluateNode(this.Left, Context) && Bool.EvaluateNode(this.Right, Context)); }
public override object Evaluate(Data.jsObject Context) { return(GetValue(Value, Context)); }
public object GetRight(Data.jsObject Context) { return(GetValue(Right, Context)); }
public object GetLeft(Data.jsObject Context) { return(GetValue(Left, Context)); }