private void btnCheckString_Click(object sender, EventArgs e) { Analyzer analyzer; if (rdbRecursive.Checked) analyzer = new DescentRecursiveAnalyzer(); else { Grammar g = _dispatcher.getGrammar(); analyzer = new DescendingBacktrackAnalyzer(g); } try { if (_dispatcher.analyze(txtInputString.Text, analyzer)) lblResult.Text = "Цепочка порождается данной грамматикой."; else lblResult.Text = "Цепочка не порождается данной грамматикой."; rtbHistory.Text = _dispatcher.getHistory(); } catch (FormatException fex) { MessageBox.Show("Произошла следующая ошибка: " + fex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (BadArgumentException baex) { MessageBox.Show("Произошла следующая ошибка: " + baex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void rdbRecursive_CheckedChanged(object sender, EventArgs e) { btnLoad.Enabled = !rdbRecursive.Checked; if (rdbRecursive.Checked) { Grammar g = new DescentRecursiveAnalyzer().getGrammar(); rtbGrammar.Text = g.ToString(); } }