public Value Evaluate(ExecutionContext vm, LocalVariables lv) { var length = statements.Length; var result = new StringBuilder(); for (var i = 0; i < length; i++) { if (Lexer.IsEvaluate(statements[i])) { var expression = vm.Parser.MakeExpression(statements[i]); result.Append(expression.Evaluate(vm, lv).ToString()); } else { result.Append(statements[i]); } } var index = 0; var name = result.ToString(); var array = Lexer.SplitArrayIndexer(name); var statement = array[0].Substring(1); if (LocalVariables.IsLocalVariable(name)) { if (array.Length > 1) { index = int.Parse(array[1]); return(lv.GetVariable(statement)[index]); } return(lv.GetVariable(statement)); } if (array.Length > 1) { index = int.Parse(array[1]); if (vm.Functions.IsFunction(statement)) { return(vm.Functions.ExecFunction(vm, statement)[index]); } else { return(vm.Variables.GetVariable(statement)[index]); } } else { if (vm.Functions.IsFunction(statement)) { return(vm.Functions.ExecFunction(vm, statement)); } else { return(vm.Variables.GetVariable(statement)); } } }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); var str = argv[0].ToString(); return(new Value(str.Substring(str.Length - 1, 1))); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); var index = vm.Random.Next(argv.Count); return(argv[index]); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); var str = argv[0].ToString(); var count = argv[1].ToInt32(); return(new Value(str.Substring(0, count))); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); var first = argv[0].ToString(); var second = argv[1].ToString(); return(new Value(first[first.Length - 1] == second[0])); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); var index = argv[0].ToInt32(); if (vm.Parameter != null && vm.Parameter.Length > index) { return(new Value(vm.Parameter[index])); } return(new Value()); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); var index = argv[1].ToInt32(); var tokens = argv[0].ToString().Split('\x1'); if (tokens.Length > index) { return(new Value(tokens[index])); } return(new Value()); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); var text = argv[0].ToString(); for (var i = 1; i < argv.Count; i++) { if (text.IndexOf(argv[i].ToString()) == -1) { return(new Value(false)); } } return(new Value(true)); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); return(new Value(argv[0].ToString().ToUpperInvariant())); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); return(new Value(argv.ToArray())); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); return(new Value(Math.Log10(argv[0].ToDouble()))); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); return(base.Execute(vm, lv)); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); return(new Value(vm.Random.Next(argv[0].ToInt32()))); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); return(new Value(argv[1].ToString().LastIndexOf(argv[0].ToString()))); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); return(new Value(Path.GetFileName(argv[0].ToString()))); }
public override Value Execute(ExecutionContext vm, LocalVariables lv) { var argv = lv.GetVariable("argv"); return(argv[0].Clone()); }