コード例 #1
0
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            parsedText = CodeField.Text;

            CharChain chain  = new CharChain(CodeField.Text);
            Parser    parser = new Parser();

            ResultField.Text = "";

            int count = 0;

            while (chain.Next().Char != '\0')
            {
                parser.Parse(chain);

                var errors = parser.GetErrors();

                foreach (var error in errors)
                {
                    count++;

                    ResultField.Text += error.Message;
                    if (error.IncorrStr != null)
                    {
                        ResultField.Text += " (Отброшенный фрагмент: '" + error.IncorrStr + "' на позиции: " + error.Idx + ")";
                    }
                    ResultField.Text += "\r\n";

                    CodeField.Select(error.Idx, 1);
                    CodeField.SelectionBackColor = Color.Red;
                    CodeField.DeselectAll();
                }
            }

            if (count == 0)
            {
                ResultField.Text += "Ошибок нет.\r\n";
            }
            else
            {
                ResultField.Text += "Обнаружено " + count + " ошибок.\r\n";
            }
        }