Exemplo n.º 1
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public HappilOperand <TReturn> Func <TArg1, TReturn>(Expression <Func <T, Func <TArg1, TReturn> > > member, IHappilOperand <TArg1> arg1)
        {
            var method    = ValidateMemberIsMethodOfType(Helpers.ResolveMethodFromLambda(member));
            var @operator = new UnaryOperators.OperatorCall <T>(method, arg1);

            return(new HappilUnaryExpression <T, TReturn>(m_OwnerMethod, @operator, this));
        }
Exemplo n.º 2
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <TReturn> Func <TArg1, TReturn>(Func <TArg1, TReturn> member, IOperand <TArg1> arg1)
        {
            var method    = GetValidStaticMethod(member);
            var @operator = new UnaryOperators.OperatorCall <object>(method, arg1);

            return(new UnaryExpressionOperand <object, TReturn>(@operator, operand: null));
        }
Exemplo n.º 3
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <TResult> Invoke <TArg, TResult>(
            this IOperand <Func <TArg, TResult> > func,
            IOperand <TArg> arg)
        {
            var @operator = new UnaryOperators.OperatorCall <Func <TArg, TResult> >(GetReflectionCache <Func <TArg, TResult> >().Invoke, arg);

            return(new UnaryExpressionOperand <Func <TArg, TResult>, TResult>(@operator, func));
        }
Exemplo n.º 4
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public Operand <TReturn> Func <TArg1, TArg2, TReturn>(
            Expression <Func <T, Func <TArg1, TArg2, TReturn> > > member, IOperand <TArg1> arg1, IOperand <TArg2> arg2)
        {
            var method    = ValidateMemberIsMethodOfType(Helpers.ResolveMethodFromLambda(member));
            var @operator = new UnaryOperators.OperatorCall <T>(method, arg1, arg2);

            return(new UnaryExpressionOperand <T, TReturn>(@operator, this));
        }
Exemplo n.º 5
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static IOperand <bool> EndsWith(this IOperand <string> str, IOperand <string> value, bool ignoreCase = false)
        {
            var comparisonValue   = (ignoreCase ? StringComparison.InvariantCultureIgnoreCase : StringComparison.CurrentCulture);
            var comparisonOperand = new Constant <StringComparison>(comparisonValue);
            var @operator         = new UnaryOperators.OperatorCall <string>(s_EndsWith, value, comparisonOperand);

            return(new UnaryExpressionOperand <string, bool>(@operator, str));
        }
Exemplo n.º 6
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <bool> ContainsValue <TKey, TValue>(
            this IOperand <IDictionary <TKey, TValue> > dictionary,
            IOperand <TValue> value)
        {
            var @operator = new UnaryOperators.OperatorCall <IDictionary <TKey, TValue> >(GetReflectionCache <TKey, TValue>().ContainsValue, value);

            return(new UnaryExpressionOperand <IDictionary <TKey, TValue>, bool>(@operator, dictionary));
        }
Exemplo n.º 7
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static IOperand <int> Compare(this IOperand <string> strA, IOperand <string> strB, bool ignoreCase = false)
        {
            var comparisonValue   = (ignoreCase ? StringComparison.InvariantCultureIgnoreCase : StringComparison.CurrentCulture);
            var comparisonOperand = new Constant <StringComparison>(comparisonValue);
            var @operator         = new UnaryOperators.OperatorCall <string>(s_Compare, strA, strB, comparisonOperand);

            return(new UnaryExpressionOperand <string, int>(@operator, null));
        }
Exemplo n.º 8
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static IOperand <string> Format(
            this IOperand <string> format,
            IOperand <object[]> args)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_Format, format, args);

            return(new UnaryExpressionOperand <string, string>(@operator, null));
        }
Exemplo n.º 9
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <bool> Remove <TKey, TValue>(
            this IOperand <IDictionary <TKey, TValue> > dictionary,
            IOperand <TKey> key)
        {
            var @operator = new UnaryOperators.OperatorCall <IDictionary <TKey, TValue> >(GetReflectionCache <TKey, TValue>().Remove, key);

            return(new UnaryExpressionOperand <IDictionary <TKey, TValue>, bool>(@operator, dictionary));
        }
Exemplo n.º 10
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static IOperand <string> Format(
            this IOperand <string> format,
            params IOperand[] args)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_Format, format, Helpers.BuildArrayLocal(values: CastOperandsToObject(args)));

            return(new UnaryExpressionOperand <string, string>(@operator, null));
        }
Exemplo n.º 11
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <char[]> ToCharArray(
            this IOperand <string> str,
            IOperand <int> startIndex,
            IOperand <int> length)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_ToCharArrayWithIndexAndLength, startIndex, length);

            return(new UnaryExpressionOperand <string, char[]>(@operator, str));
        }
Exemplo n.º 12
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <string[]> Split(this IOperand <string> str, params string[] separators)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(
                s_SplitWithStringArray,
                Helpers.BuildArrayLocal(separators),
                new Constant <StringSplitOptions>(StringSplitOptions.None));

            return(new UnaryExpressionOperand <string, string[]>(@operator, str));
        }
Exemplo n.º 13
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static IOperand <int> LastIndexOfAny(
            this IOperand <string> str,
            IOperand <char[]> anyOf,
            IOperand <int> startIndex,
            IOperand <int> count)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_LastIndexOfAnyWithStartIndexAndCount, anyOf, startIndex, count);

            return(new UnaryExpressionOperand <string, int>(@operator, str));
        }
Exemplo n.º 14
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static IOperand <int> LastIndexOf(
            this IOperand <string> str,
            IOperand <string> value,
            IOperand <int> startIndex,
            IOperand <int> count)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_LastIndexOfWithStartIndexAndCount, value, startIndex, count);

            return(new UnaryExpressionOperand <string, int>(@operator, str));
        }
Exemplo n.º 15
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <string[]> Split(
            this IOperand <string> str,
            IOperand <char[]> separator,
            IOperand <int> count,
            IOperand <StringSplitOptions> options)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_SplitWithCharArrayAndCount, separator, count, options);

            return(new UnaryExpressionOperand <string, string[]>(@operator, str));
        }
Exemplo n.º 16
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <TReturn> GenericFunc <TArg1, TArg2, TArg3, TReturn>(
            Expression <Func <TArg1, TArg2, TArg3, TReturn> > member,
            IOperand <TArg1> arg1,
            IOperand <TArg2> arg2,
            IOperand <TArg3> arg3)
        {
            var method    = Helpers.ResolveMethodFromLambda(member);
            var @operator = new UnaryOperators.OperatorCall <object>(method, arg1, arg2, arg3);

            return(new UnaryExpressionOperand <object, TReturn>(@operator, operand: null));
        }
Exemplo n.º 17
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static IOperand <bool> StringEquals(
            this IOperand <string> str,
            IOperand <string> value,
            StringComparison comparisonType = StringComparison.CurrentCulture)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(
                s_EqualsWithComparisonType,
                value, new Constant <StringComparison>(comparisonType));

            return(new UnaryExpressionOperand <string, bool>(@operator, str));
        }
Exemplo n.º 18
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <TReturn> Func <TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TReturn>(
            Func <TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TReturn> member,
            IOperand <TArg1> arg1,
            IOperand <TArg2> arg2,
            IOperand <TArg3> arg3,
            IOperand <TArg4> arg4,
            IOperand <TArg5> arg5,
            IOperand <TArg6> arg6)
        {
            var method    = GetValidStaticMethod(member);
            var @operator = new UnaryOperators.OperatorCall <object>(method, arg1, arg2, arg3, arg4, arg5, arg6);

            return(new UnaryExpressionOperand <object, TReturn>(@operator, operand: null));
        }
Exemplo n.º 19
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static IOperand <string> Concat(this IOperand <string> str, params IOperand <string>[] values)
        {
            var writer   = StatementScope.Current.Writer;
            var newArray = writer.Local(writer.NewArray <string>(new Constant <int>(values.Length + 1)));

            newArray.ElementAt(0).Assign(str);

            for (int i = 0; i < values.Length; i++)
            {
                newArray.ElementAt(i + 1).Assign(values[i]);
            }

            var @operator = new UnaryOperators.OperatorCall <string>(s_ConcatArray, newArray);

            return(new UnaryExpressionOperand <string, string>(@operator, null));
        }
Exemplo n.º 20
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <bool> StartsWith(this IOperand <string> str, IOperand <string> value, bool ignoreCase = false)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_StartsWith, value);

            return(new UnaryExpressionOperand <string, bool>(@operator, str));
        }
Exemplo n.º 21
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <string> Remove(this IOperand <string> str, IOperand <int> index, IOperand <int> count)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_RemoveWithCount, index, count);

            return(new UnaryExpressionOperand <string, string>(@operator, str));
        }
Exemplo n.º 22
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <string> Replace(this IOperand <string> str, IOperand <char> oldChar, IOperand <char> newChar)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_ReplaceWithChars, oldChar, newChar);

            return(new UnaryExpressionOperand <string, string>(@operator, str));
        }
Exemplo n.º 23
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <string> Replace(this IOperand <string> str, IOperand <string> oldValue, IOperand <string> newValue)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_Replace, oldValue, newValue);

            return(new UnaryExpressionOperand <string, string>(@operator, str));
        }
Exemplo n.º 24
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static IOperand <string> Copy(this IOperand <string> str)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_Copy, str);

            return(new UnaryExpressionOperand <string, string>(@operator, null));
        }
Exemplo n.º 25
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <string> TrimStart(this IOperand <string> str, IOperand <char[]> trimChars)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_TrimStart, trimChars);

            return(new UnaryExpressionOperand <string, string>(@operator, str));
        }
Exemplo n.º 26
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <string> TrimStart(this IOperand <string> str, params char[] trimChars)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_TrimStart, Helpers.BuildArrayLocal(trimChars));

            return(new UnaryExpressionOperand <string, string>(@operator, str));
        }
Exemplo n.º 27
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <string> Trim(this IOperand <string> str)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_Trim);

            return(new UnaryExpressionOperand <string, string>(@operator, str));
        }
Exemplo n.º 28
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <string[]> Split(this IOperand <string> str, params char[] separator)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_SplitWithCharArray, Helpers.BuildArrayLocal(separator));

            return(new UnaryExpressionOperand <string, string[]>(@operator, str));
        }
Exemplo n.º 29
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <char[]> ToCharArray(this IOperand <string> str)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_ToCharArray);

            return(new UnaryExpressionOperand <string, char[]>(@operator, str));
        }
Exemplo n.º 30
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public static Operand <string> Substring(this IOperand <string> str, IOperand <int> startIndex, IOperand <int> length)
        {
            var @operator = new UnaryOperators.OperatorCall <string>(s_SubstringWithLength, startIndex, length);

            return(new UnaryExpressionOperand <string, string>(@operator, str));
        }