Example #1
0
        /// <summary>
        /// Compares two arguments.
        /// </summary>
        /// <param name="argument1">The first argument.</param>
        /// <param name="argument2">The second argument.</param>
        private static bool IsArgumentEqual(IArgument argument1, IArgument argument2)
        {
            bool Result    = false;
            bool IsHandled = false;

            if (argument1 is IPositionalArgument AsPositionalArgument1)
            {
                if (argument2 is IAssignmentArgument AsAssignmentArgument2)
                {
                    IsHandled = true;
                }
                else if (argument2 is IPositionalArgument AsPositionalArgument2)
                {
                    Result    = PositionalArgument.IsPositionalArgumentEqual(AsPositionalArgument1, AsPositionalArgument2);
                    IsHandled = true;
                }
            }
            else if (argument1 is IAssignmentArgument AsAssignmentArgument1)
            {
                if (argument2 is IPositionalArgument AsPositionalArgument2)
                {
                    IsHandled = true;
                }
                else if (argument2 is IAssignmentArgument AsAssignmentArgument2)
                {
                    Result    = AssignmentArgument.IsAssignmentArgumentEqual(AsAssignmentArgument1, AsAssignmentArgument2);
                    IsHandled = true;
                }
            }

            Debug.Assert(IsHandled);

            return(Result);
        }
Example #2
0
        /// <summary>
        /// Compares two expressions.
        /// </summary>
        /// <param name="other">The other expression.</param>
        protected bool IsExpressionEqual(IInitializedObjectExpression other)
        {
            Debug.Assert(other != null);

            bool Result = true;

            Result &= AssignmentList.Count == other.AssignmentList.Count;

            for (int i = 0; i < AssignmentList.Count && i < other.AssignmentList.Count; i++)
            {
                IAssignmentArgument InitializationAssignment1 = AssignmentList[i];
                IAssignmentArgument InitializationAssignment2 = other.AssignmentList[i];

                Result &= AssignmentArgument.IsAssignmentArgumentEqual(InitializationAssignment1, InitializationAssignment2);
            }

            return(Result);
        }