Ejemplo n.º 1
0
        private static void SwitchUsageInAssignment(LocalOperation op, LocalVariable usageVariable,
                                                    IdentifierValue definitionIdentifier)
        {
            var opAssignment = (Assignment)op;

            if (usageVariable.Equals(opAssignment.AssignedTo))
            {
                opAssignment.AssignedTo = (LocalVariable)definitionIdentifier;
            }
            if (usageVariable.Equals(opAssignment.Right))
            {
                opAssignment.Right = definitionIdentifier;
            }
        }
Ejemplo n.º 2
0
        private static void SwitchUsageInBranchOperator(LocalOperation op, LocalVariable usageVariable,
                                                        IdentifierValue definitionIdentifier)
        {
            var opBranchOperator = (BranchOperator)op;

            if (usageVariable.Equals(opBranchOperator.CompareValue))
            {
                opBranchOperator.CompareValue = definitionIdentifier;
            }
            if (usageVariable.Equals(opBranchOperator.SecondValue))
            {
                opBranchOperator.SecondValue = definitionIdentifier;
            }
        }
Ejemplo n.º 3
0
        private static void SwitchUsageInUnaryOperator(LocalOperation op, LocalVariable usageVariable,
                                                       IdentifierValue definitionIdentifier)
        {
            var opUnaryOperator = (UnaryOperator)op;

            if (usageVariable.Equals(opUnaryOperator.Left))
            {
                opUnaryOperator.Left = definitionIdentifier;
            }
            if (usageVariable.Equals(opUnaryOperator.AssignedTo))
            {
                opUnaryOperator.AssignedTo = (LocalVariable)definitionIdentifier;
            }
        }
Ejemplo n.º 4
0
        private static void SwitchUsageInSetField(LocalOperation op, LocalVariable usageVariable,
                                                  IdentifierValue definitionIdentifier)
        {
            var opSetField = (SetField)op;

            if (usageVariable.Equals(opSetField.Instance))
            {
                opSetField.Instance = definitionIdentifier;
            }
            if (usageVariable.Equals(opSetField.Right))
            {
                opSetField.Right = definitionIdentifier;
            }
        }
Ejemplo n.º 5
0
        private static void SwitchUsageInNewArray(LocalOperation op, LocalVariable usageVariable,
                                                  IdentifierValue definitionIdentifier)
        {
            var assign = (NewArrayObject)op;

            if (usageVariable.Equals(assign.AssignedTo))
            {
                assign.AssignedTo = (LocalVariable)definitionIdentifier;
            }
            if (usageVariable.Equals(assign.ArrayLength))
            {
                assign.ArrayLength = definitionIdentifier;
            }
        }
Ejemplo n.º 6
0
        private static void SwitchUsageInFieldRefAssignment(LocalOperation op, LocalVariable usageVariable,
                                                            IdentifierValue definitionIdentifier)
        {
            var returnValue = op.Get <FieldRefAssignment>();

            if (usageVariable.Equals(returnValue.Right))
            {
                returnValue.Right = (LocalVariable)definitionIdentifier;
            }
            if (usageVariable.Equals(returnValue.Left))
            {
                returnValue.Left = (LocalVariable)definitionIdentifier;
            }
        }
Ejemplo n.º 7
0
        private static void SwitchUsageUnbox(LocalOperation op, LocalVariable usageVariable,
                                             IdentifierValue definitionIdentifier)
        {
            var unbox = (Unboxing)op;

            if (usageVariable.Equals(unbox.AssignedTo))
            {
                unbox.AssignedTo = (LocalVariable)definitionIdentifier;
            }
            if (usageVariable.Equals(unbox.Right))
            {
                unbox.Right = definitionIdentifier;
            }
        }
Ejemplo n.º 8
0
        private static void SwichUsageInGetField(LocalOperation op, LocalVariable usageVariable,
                                                 IdentifierValue definitionIdentifier)
        {
            var getFieldData = (GetField)op;

            if (!(definitionIdentifier is LocalVariable))
            {
                return;
            }
            if (usageVariable.Equals(getFieldData.Instance))
            {
                getFieldData.Instance = (LocalVariable)definitionIdentifier;
            }
            if (usageVariable.Equals(getFieldData.AssignedTo))
            {
                getFieldData.AssignedTo = (LocalVariable)definitionIdentifier;
            }
        }
Ejemplo n.º 9
0
        private static void SwitchUsageInSetArrayItem(LocalOperation op, LocalVariable usageVariable,
                                                      IdentifierValue definitionIdentifier)
        {
            var setArrayData = (SetArrayElement)op;

            if (usageVariable.Equals(setArrayData.Instance))
            {
                setArrayData.Instance = (LocalVariable)definitionIdentifier;
            }
            if (usageVariable.Equals(setArrayData.Index))
            {
                setArrayData.Index = definitionIdentifier;
            }
            if (usageVariable.Equals(setArrayData.Right))
            {
                setArrayData.Right = definitionIdentifier;
            }
        }
Ejemplo n.º 10
0
        private static void SwitchUsageInGetArrayItem(LocalOperation op, LocalVariable usageVariable,
                                                      IdentifierValue definitionIdentifier)
        {
            var getArrayData = (GetArrayElement)op;

            if (usageVariable.Equals(getArrayData.Instance))
            {
                getArrayData.Instance = (LocalVariable)definitionIdentifier;
            }
            if (usageVariable.Equals(getArrayData.Index))
            {
                getArrayData.Index = definitionIdentifier;
            }
            if (usageVariable.Equals(getArrayData.AssignedTo))
            {
                getArrayData.AssignedTo = (LocalVariable)definitionIdentifier;
            }
        }
Ejemplo n.º 11
0
        private static void SwitchUsageInReturn(LocalOperation op, LocalVariable usageVariable,
                                                IdentifierValue definitionIdentifier)
        {
            var returnValue = op.Get <Return>();

            if (usageVariable.Equals(returnValue.Returning))
            {
                returnValue.Returning = definitionIdentifier;
            }
        }
Ejemplo n.º 12
0
        static void SwitchUsageInSetStaticField(LocalOperation op, LocalVariable usageVariable,
                                                IdentifierValue definitionIdentifier)
        {
            var opSetField = (Assignment)op;

            if (usageVariable.Equals(opSetField.Right))
            {
                opSetField.Right = definitionIdentifier;
            }
        }
Ejemplo n.º 13
0
        private static void SwitchUsageInSetField(LocalOperation op, LocalVariable usageVariable,
                                                  IdentifierValue definitionIdentifier)
        {
            var opSetField   = (Assignment)op.Value;
            var setFieldData = (FieldSetter)opSetField.AssignedTo;

            if (usageVariable.Equals(setFieldData.Instance))
            {
                setFieldData.Instance = definitionIdentifier;
            }
            if (usageVariable.Equals(opSetField.Right))
            {
                opSetField.Right = definitionIdentifier;
            }
            if (usageVariable.Equals(opSetField.AssignedTo))
            {
                opSetField.AssignedTo = (LocalVariable)definitionIdentifier;
            }
        }
Ejemplo n.º 14
0
        private static void SwitchUsageInSetArrayItem(LocalOperation op, LocalVariable usageVariable,
                                                      IdentifierValue definitionIdentifier)
        {
            var opSetArrayItem = (Assignment)op.Value;
            var setArrayData   = (ArrayVariable)opSetArrayItem.AssignedTo;

            if (usageVariable.Equals(setArrayData.Parent))
            {
                setArrayData.Parent = (LocalVariable)definitionIdentifier;
            }
            if (usageVariable.Equals(setArrayData.Index))
            {
                setArrayData.Index = definitionIdentifier;
            }
            if (usageVariable.Equals(opSetArrayItem.Right))
            {
                opSetArrayItem.Right = definitionIdentifier;
            }
        }
Ejemplo n.º 15
0
        private static void SwitchUsageInCall(LocalOperation op, LocalVariable usageVariable,
                                              IdentifierValue definitionIdentifier)
        {
            var methodData = op.Get <CallMethodStatic>();

            for (var index = 0; index < methodData.Parameters.Count; index++)
            {
                var identifierValue = methodData.Parameters[index];
                if (usageVariable.Equals(identifierValue))
                {
                    methodData.Parameters[index] = definitionIdentifier;
                }
            }
            if (methodData.Result != null && definitionIdentifier is LocalVariable)
            {
                if (usageVariable.Equals(methodData.Result))
                {
                    methodData.Result = (LocalVariable)definitionIdentifier;
                }
            }
        }
Ejemplo n.º 16
0
        private static void SwitchUsageInCall(LocalOperation op, LocalVariable usageVariable,
                                              IdentifierValue definitionIdentifier)
        {
            var methodData = op.Get <MethodData>();

            for (var index = 0; index < methodData.Parameters.Count; index++)
            {
                var identifierValue = methodData.Parameters[index];
                if (usageVariable.Equals(identifierValue))
                {
                    methodData.Parameters[index] = definitionIdentifier;
                }
            }
        }