private static void InsertDeParticleAtPosition(Sentence sentence, int newPosition)
 {
     sentence.Texts.Insert(
         newPosition,
         DeParticleHelper.CreateNewDeParticle(
             sentence.Texts[newPosition - 1].pe_order,
             0));
 }
 private void AddDeParticleToMDUnit(Sentence sentence, MoveableUnit[] mdPositions)
 {
     sentence.Texts.Insert(
         _mdSentenceDecorator.FirstVbPastPresBkpPositionAfterFirstModifier,
         DeParticleHelper.CreateNewDeParticle(
             sentence.Texts[mdPositions.Last().EndPosition].pe_order,
             0));
 }
Example #3
0
        private void ApplyDeParticlesWhereNNThenPASTThenBKBy(BKBySentenceDecorator bKBySentenceDecorator)
        {
            var textsBeforeBy =
                bKBySentenceDecorator.TextsBeforeBy;

            if (bKBySentenceDecorator.NNUnitBeforeBkBy(textsBeforeBy))
            {
                int nnPosition = bKBySentenceDecorator.NNPosition;

                if (bKBySentenceDecorator.IsPASTUnitBetweenNNandBKBy(textsBeforeBy, nnPosition))
                {
                    DeParticleHelper.InsertDeParticleBeforeAndUnderline(
                        bKBySentenceDecorator, nnPosition);

                    int pastPosition = bKBySentenceDecorator
                                       .GetFirstPASTUnitPositionAfterNN(
                        bKBySentenceDecorator, nnPosition);

                    DeParticleHelper.InsertDeParticleAfterAndUnderline(
                        bKBySentenceDecorator, pastPosition + 1);
                }
            }
        }