Exemplo n.º 1
0
        private void AddCurveBrackets()
        {
            int start = 0;

            for (int i = 0; i < lines.Length; i++)
            {
                Word[] words = Split.SeparateLine(Line.TrimmedLine(lines[i]));
                if (Word.IsBlock(words))
                {
                    if (IsSingleLineBlock(i))
                    {
                        _AddCurveBrackets(ref i, ref start);
                    }
                }
                else
                {
                    Word first;
                    try
                    {
                        first = Word.FirstNotEmptyWord(words);
                    }
                    catch (ArgumentOutOfRangeException)
                    {
                        continue;
                    }
                    if (first.Text == Data.ELSE.Text && Line.TrimmedLine(lines[i + 1]) != "{")
                    {
                        _AddCurveBrackets(ref i, ref start);
                    }
                }
            }
        }
Exemplo n.º 2
0
        private void _AddCurveBrackets(ref int i, ref int start)
        {
            string offset = Line.GetOffset(lines[i]);

            string[] parts = new string[3];
            parts[0] = lines[i];
            parts[1] = offset + "{";
            i++;
            start    = i;
            parts[2] = offset + "\t" + Line.TrimmedLine(lines[i]);
            Split.Remove(ref lines, i);

            Split.InsertInsteadOf(i - 1, ref lines, parts);

            i++;
            int IF_Without_ELSE = 0;

            Word[] words = Split.SeparateLine(Line.TrimmedLine(lines[i]));
            while (Word.IsBlock(words))
            {
                if (Word.FirstNotEmptyWord(words).Text == Data.IF.Text)
                {
                    IF_Without_ELSE++;
                }
                if (IsSingleLineBlock(i))
                {
                    i++;
                }
                else
                {
                    i = Brackets.GetCloseCurveBracketIndex(lines, i + 1);
                }
                words = Split.SeparateLine(Line.TrimmedLine(lines[i]));
            }
            bool wasSingleLine_ELSE = false;

            for (; IF_Without_ELSE > 0; IF_Without_ELSE--)
            {
                if (Line.TrimmedLine(lines[i + 1]) == Data.ELSE.Text)
                {
                    if (IsSingleLineBlock(i))
                    {
                        i++;
                        wasSingleLine_ELSE = true;
                    }
                    else
                    {
                        i = Brackets.GetCloseCurveBracketIndex(lines, i + 1);
                        wasSingleLine_ELSE = false;
                    }
                }
            }
            if (wasSingleLine_ELSE)
            {
                i++;
            }
            parts[0] = lines[i];
            parts[1] = offset + "}";
            parts[2] = lines[i + 1];
            Split.Remove(ref lines, i + 1);
            Split.InsertInsteadOf(i, ref lines, parts);
            i = start;
        }