Пример #1
0
        /// <summary>
        /// Creates points block containing just given program point.
        /// <remarks>Created points block is not contractable</remarks>
        /// </summary>
        /// <param name="createdPoint">Program point that will be contained in created block.</param>
        /// <param name="outgoingBlocks">Blocks used as outcomming edges</param>
        /// <returns>Created points block</returns>
        private PointsBlock CreateBlockFromProgramPoint(ProgramPointBase newPoint, params BasicBlock[] outgoingBlocks)
        {
            reportCreation(newPoint);

            var createdBlock = PointsBlock.ForPoint(newPoint, outgoingBlocks);

            _createdBlocks.Add(createdBlock);

            return(createdBlock);
        }
Пример #2
0
        /// <summary>
        /// Creates points block from given condition
        /// Points block will have single outgoing block as outcomming edge
        /// </summary>
        /// <param name="condition">Condition which points block is created</param>
        /// <param name="outgoingBlock">Block used as outcomming edge</param>
        /// <param name="expressionValues">Expression parts of assumed condition</param>
        /// <returns>Created points block</returns>
        internal PointsBlock CreateAssumeBlock(AssumptionCondition condition, BasicBlock outgoingBlock, params ValuePoint[] expressionValues)
        {
            var point = new AssumePoint(condition, expressionValues);

            reportCreation(point);

            var createdBlock = PointsBlock.ForPoint(point, new[] { outgoingBlock });

            _createdBlocks.Add(createdBlock);

            return(createdBlock);
        }