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"; } }