Exemplo n.º 1
0
        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));
                }
            }
        }
Exemplo n.º 2
0
        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)));
        }
Exemplo n.º 3
0
        public override Value Execute(ExecutionContext vm, LocalVariables lv)
        {
            var argv  = lv.GetVariable("argv");
            var index = vm.Random.Next(argv.Count);

            return(argv[index]);
        }
Exemplo n.º 4
0
        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)));
        }
Exemplo n.º 5
0
        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]));
        }
Exemplo n.º 6
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());
        }
Exemplo n.º 7
0
        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());
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
        public override Value Execute(ExecutionContext vm, LocalVariables lv)
        {
            var argv = lv.GetVariable("argv");

            return(new Value(argv[0].ToString().ToUpperInvariant()));
        }
Exemplo n.º 10
0
        public override Value Execute(ExecutionContext vm, LocalVariables lv)
        {
            var argv = lv.GetVariable("argv");

            return(new Value(argv.ToArray()));
        }
Exemplo n.º 11
0
        public override Value Execute(ExecutionContext vm, LocalVariables lv)
        {
            var argv = lv.GetVariable("argv");

            return(new Value(Math.Log10(argv[0].ToDouble())));
        }
Exemplo n.º 12
0
        public override Value Execute(ExecutionContext vm, LocalVariables lv)
        {
            var argv = lv.GetVariable("argv");

            return(base.Execute(vm, lv));
        }
Exemplo n.º 13
0
        public override Value Execute(ExecutionContext vm, LocalVariables lv)
        {
            var argv = lv.GetVariable("argv");

            return(new Value(vm.Random.Next(argv[0].ToInt32())));
        }
Exemplo n.º 14
0
        public override Value Execute(ExecutionContext vm, LocalVariables lv)
        {
            var argv = lv.GetVariable("argv");

            return(new Value(argv[1].ToString().LastIndexOf(argv[0].ToString())));
        }
Exemplo n.º 15
0
        public override Value Execute(ExecutionContext vm, LocalVariables lv)
        {
            var argv = lv.GetVariable("argv");

            return(new Value(Path.GetFileName(argv[0].ToString())));
        }
Exemplo n.º 16
0
        public override Value Execute(ExecutionContext vm, LocalVariables lv)
        {
            var argv = lv.GetVariable("argv");

            return(argv[0].Clone());
        }