public static Parser.Variable sum(Parser.Variable left, Parser.Variable right)
        {
            left  = GetVariableValue(left);
            right = GetVariableValue(right);

            if (left.type == "string" || right.type == "string")
            {
                return(new Parser.Variable(left.value + right.value, "string"));
            }

            if (left.IsNaN() || right.IsNaN())
            {
                return(new Parser.Variable("NaN", "number"));
            }

            if (!left.CanBeConvertedTo("number") || !right.CanBeConvertedTo("number"))
            {
                return(new Parser.Variable("NaN", "number"));
            }

            left  = left.ConvertTo("number");
            right = right.ConvertTo("number");

            return(new Parser.Variable(Parse(left.value) + Parse(right.value)));
        }
        internal static Parser.Variable res(Parser.Variable left, Parser.Variable right)
        {
            left  = GetVariableValue(left);
            right = GetVariableValue(right);

            if (left.IsNaN() || right.IsNaN())
            {
                return(new Parser.Variable("NaN", "number"));
            }
            if (!left.CanBeConvertedTo("number") || !right.CanBeConvertedTo("number"))
            {
                return(new Parser.Variable("NaN", "number"));
            }

            left  = left.ConvertTo("number");
            right = right.ConvertTo("number");

            return(new Parser.Variable(Parse(left.value) % Parse(right.value)));
        }
        public static Parser.Variable div(Parser.Variable left, Parser.Variable right)
        {
            left  = GetVariableValue(left);
            right = GetVariableValue(right);

            if (left.IsNaN() || right.IsNaN())
            {
                return(new Parser.Variable("NaN", "number"));
            }
            if (!left.CanBeConvertedTo("number") || !right.CanBeConvertedTo("number"))
            {
                return(new Parser.Variable("NaN", "number"));
            }

            left  = left.ConvertTo("number");
            right = right.ConvertTo("number");

            if (Parse(right.value) == 0)
            {
                return(new Parser.Variable(0));
            }

            return(new Parser.Variable(Parse(left.value) / Parse(right.value)));
        }