public static TotemValue Push(TotemValue array, TotemArguments parameters) { TotemArray arr = (TotemArray)array; arr.value.Add(parameters.Value(0)); return(arr); }
public override TotemValue Execute(TotemArguments arguments) { var str = arguments.First().Value.ToString(); var rest = arguments.Skip(1); int i = 0; foreach (var a in rest) { string name = null; if (a.Name != null) { name = a.Name; } else { name = i.ToString(); } string value = a.Value.ToString(); str = str.Replace("{" + name + "}", value); i++; } Console.WriteLine(str); return(TotemValue.Undefined); }
public override TotemValue Execute(TotemArguments arguments) { arguments = arguments ?? new TotemArguments(); using (var scope = new ScopeWrapper(this)) { scope.Declare("arguments"); scope.Set("arguments", arguments); for (int i = 0; i < parametersDefinition.Length; i++) { var param = parametersDefinition[i]; if (arguments.IsSet(i)) { scope.Declare(param.Name); scope.Set(param.Name, arguments.Value(i)); } else if (arguments.IsSet(param.Name)) { scope.Declare(param.Name); scope.Set(param.Name, arguments.Value(param.Name)); } } try { return TotemRun(); } catch (Exception e) { throw;// new TotemException(e); } } }
public static TotemValue Filter(TotemValue array, TotemArguments parameters) { TotemArray newArr = new TotemArray(); TotemArray arr = (TotemArray)array; TotemValue fn = parameters.Value(0); foreach (var itm in arr.value) { var arguments = new TotemArguments(); arguments.Add(null, itm); if ((bool)fn.Execute(arguments)) newArr.AddItem(itm); } return newArr; }
public static TotemValue Filter(TotemValue array, TotemArguments parameters) { TotemArray newArr = new TotemArray(); TotemArray arr = (TotemArray)array; TotemValue fn = parameters.Value(0); foreach (var itm in arr.value) { var arguments = new TotemArguments(); arguments.Add(null, itm); if ((bool)fn.Execute(arguments)) { newArr.AddItem(itm); } } return(newArr); }
public static TotemValue Implement(TotemValue type, TotemArguments args) { var tt = (TotemType)type; foreach (var arg in args) { if (!string.IsNullOrEmpty(arg.Name) && arg.Value.Type.GetType() == typeof(Types.Function)) { var fn = (TotemFunction)arg.Value; tt.MapMethod(arg.Name, (@this, arguments) => { var a = new TotemArguments(); a.Add(null, @this); foreach (var ar in arguments) a.Add(ar.Name, ar.Value); return fn.Execute(a); }); } } return TotemValue.Undefined; }
public override TotemValue Execute(TotemArguments arguments) { var str = arguments.First().Value.ToString(); var rest = arguments.Skip(1); int i = 0; foreach (var a in rest) { string name = null; if (a.Name != null) name = a.Name; else name = i.ToString(); string value = a.Value.ToString(); str = str.Replace("{" + name + "}", value); i++; } Console.WriteLine(str); return TotemValue.Undefined; }
public static TotemValue Implement(TotemValue type, TotemArguments args) { var tt = (TotemType)type; foreach (var arg in args) { if (!string.IsNullOrEmpty(arg.Name) && arg.Value.Type.GetType() == typeof(Types.Function)) { var fn = (TotemFunction)arg.Value; tt.MapMethod(arg.Name, (@this, arguments) => { var a = new TotemArguments(); a.Add(null, @this); foreach (var ar in arguments) { a.Add(ar.Name, ar.Value); } return(fn.Execute(a)); }); } } return(TotemValue.Undefined); }
public static TotemString ToLowerCase(TotemValue str, TotemArguments args) { return(new TotemString(((TotemString)str).Value.ToLower())); }
public static TotemString ToString(TotemValue @this, TotemArguments args) { return(new TotemString("[" + @this.Type.Name + "]")); }
public static TotemString ToString(TotemValue type, TotemArguments args) { return(new TotemString("[Totem " + ((TotemType)type).Name + "]")); }
public static TotemString ToString(TotemValue @null, TotemArguments args) { return new TotemString("<undefined>"); }
public override TotemValue Execute(TotemArguments arguments) { return(method(@this, arguments)); }
public static TotemValue Push(TotemValue array, TotemArguments parameters) { TotemArray arr = (TotemArray)array; arr.value.Add(parameters.Value(0)); return arr; }
public override TotemValue Execute(TotemArguments arguments) { return method(@this, arguments); }
public static TotemString ToString(TotemValue @this, TotemArguments args) { return new TotemString("[" + @this.Type.Name + "]"); }
public static TotemString ToString(TotemValue type, TotemArguments args) { return new TotemString("[Totem " + ((TotemType)type).Name + "]"); }
public static TotemString ToString(TotemValue str, TotemArguments args) { return(new TotemString(((TotemString)str).Value)); }
public static TotemString ToString(TotemValue @null, TotemArguments args) { return(new TotemString("<undefined>")); }
public virtual TotemValue Execute(TotemArguments arguments) { throw new InvalidOperationException("Can't execute on a " + GetType()); }
public static TotemString ToString(TotemValue str, TotemArguments args) { return new TotemString(((TotemString)str).Value); }
public static TotemString ToUpperCase(TotemValue str, TotemArguments args) { return new TotemString(((TotemString)str).Value.ToUpper()); }