Example #1
0
        private void MoveAndSave(CodeRange a, CodeRange b)
        {
            if (a.Equals(b))
            {
                return;
            }
            while (true)
            {
                if (a.Span == 1)
                {
                    MoveAndSave(a.fromCode, b.fromCode);
                }
                else
                {
                    if (a.fromCode.Youngest() < b.fromCode.Youngest())
                    {
                        MoveAndSave(a.toCode, b.toCode);
                        a = new CodeRange(a.fromCode, a.toCode + -1);
                        b = new CodeRange(b.fromCode, b.toCode + -1);
                        continue;
                    }

                    MoveAndSave(a.fromCode, b.fromCode);
                    a = new CodeRange(a.fromCode + 1, a.toCode);
                    b = new CodeRange(b.fromCode + 1, b.toCode);
                    continue;
                }

                break;
            }
        }