int i, n;
- Console.WriteLine ("prop[from] = {0}", prop[from]);
if (from > 0 && prop[from - 1] == prop[from] && prop[from] != -1)
for (i = prop[from]; i < from; i++)
prop[i] = -1;
int[] prop2 = new int[LENGTH], end2 = new int[LENGTH];
MSymbol[] value2 = new MSymbol[LENGTH];
- DebugDump (0);
// sensitivity for deletion
if (from > 0 && prop[from - 1] == prop[from] && prop[from] != -1)
{
prop[i] = -1;
}
- DebugDump (1);
// copy
for (i = from; i < to; i++)
{
if (prop[i] != -1)
{
+ /*
prop2[i - from] = prop[i] - from + from2;
end2[prop2[i - from]] = end[prop[i]] - from + from2;
value2[prop2[i - from]] = value[prop[i]];
+ */
+ prop2[i - from] = prop[i] - from + from2;
+ end2[i - from] = end[i] - from + from2;
+ value2[i - from] = value[i];
}
else
prop2[i - from] = -1;
}
- DebugDump (2);
// delete
for (i = to; i < LENGTH; i++)
{
if (prop[i] != -1)
{
prop[i - l] = prop[i] - l;
- end[prop[i - l]] = end[prop[i]] - l;
- value[prop[i - l]] = value[prop[i]];
+ end[i - l] = end[i] - l;
+ value[i - l] = value[i];
}
else
prop[i - l] = -1;
}
+ prop[LENGTH - l] = -1;
- DebugDump (3);
// sensitivity for insertion
if (from2 > 0 && prop[from2 - 1] == prop[from2] && prop[from2] != -1)
{
prop[i] = -1;
}
- DebugDump (4);
// move
for (i = LENGTH - 1; i >= from2 + l; i--)
{
if (prop[i - l] != -1)
{
prop[i] = prop[i - l] + l;
- end[prop[i]] = end[prop[i - l]] + l;
- value[prop[i]] = value[prop[i - l]];
+ end[i] = end[i - l] + l;
+ value[i] = value[i - l];
}
else
prop[i] = -1;
}
- DebugDump (5);
// insert
for (i = from2; i < from2 + l; i++)
{
if (prop2[i - from2] != -1)
{
+ /*
prop[i] = prop2[i - from2];
end[prop[i]] = end2[prop2[i - from2]];
value[prop[i]] = value2[prop2[i - from2]];
+ */
+ prop[i] = prop2[i - from2];
+ end[i] = end2[i - from2];
+ value[i] = value2[i - from2];
}
else
prop[i] = -1;
}
- DebugDump (6);
MText mt2 = mt.Dup ();
mt.Del (from, to);
Console.Write ("\n");
}
+ /*
static void DebugDump (int n)
{
- /*
int i;
Console.Write ("\n#{0}\n ", n);
Console.Write (" ");
}
Console.Write ("\n");
- */
}
+ */
public static void Main (string[] args)
{