Пример #1
0
        public override IExpression Clone()
        {
            var clone = new ConcatenationExpression(_random)
            {
                RepeatRange     = RepeatRange?.Clone(),
                ExpansionLength = ExpansionLength
            };

            clone.AppendRange(_elementaryExpressions.Select(x => x.Clone()));

            return(clone);
        }
Пример #2
0
        private ConcatenationExpression GetInverseOfExpandedConcatForPosition(List <IExpression> expandedConcatRepresentation, int i)
        {
            var predecessorRange = expandedConcatRepresentation.GetRange(0, i);
            var inverse          = expandedConcatRepresentation[i].GetInverse();
            var successorRange   = expandedConcatRepresentation.GetRange(i + 1, expandedConcatRepresentation.Count - i - 1);

            var concatExpression = new ConcatenationExpression(_random);

            concatExpression.AppendRange(predecessorRange)
            .Append(inverse)
            .AppendRange(successorRange);
            return(concatExpression);
        }