private void onePanelChanged(object sender, EventArgs e) { if (this.locked) { return; } try { string test = ""; foreach (Control ct in panel1.Controls) { if (ct is OperationArithmetic) { test += ((OperationArithmetic)ct).toString(); } if (ct is OperationCondition) { test += ((OperationCondition)ct).toString(); } } test = Regex.Replace(test, @"\s+", "").Replace(',', '.'); string s = ConditionTranslator.TranslateCondition(test); if (s.Length == 0) { MessageBox.Show("Error: " + ConditionTranslator.GetLastError()); } if (s == null) { //if (MessageBox.Show("Error: " + ConditionTranslator.GetLastError(), "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand) != DialogResult.Cancel) return; } else { Condition condition = new Condition().GetCondition(new CharStream(s)); if (condition == null) { //if (MessageBox.Show("Error parsing text.", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand) != DialogResult.Cancel) return; } else { this.Result = condition; } } this.ConditionTB.Text = this.Result.GetRepresentation(); } catch { } }
private void ConditionVisual_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; string test = ""; foreach (Control ct in panel1.Controls) { if (ct is OperationArithmetic) { test += ((OperationArithmetic)ct).toString(); } if (ct is OperationCondition) { test += ((OperationCondition)ct).toString(); } } /// MessageBox.Show(test); string s = ConditionTranslator.TranslateCondition(string.Join("", test.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries))); if (s == null) { if (MessageBox.Show("Error: " + ConditionTranslator.GetLastError(), "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand) != DialogResult.Cancel) { return; } e.Cancel = false; } else { Condition condition = new Condition().GetCondition(new CharStream(s)); if (condition == null) { if (MessageBox.Show("Error parsing text.", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand) != DialogResult.Cancel) { return; } e.Cancel = false; } else { this.Result = condition; this.DialogResult = DialogResult.OK; e.Cancel = false; } } }