private void Grammar_BuildButton_Click(object sender, RoutedEventArgs e) { BuiltGrammarFilename = OpenedGrammarFilename; var messages = new List <Message>(); Parser = BuilderBase.BuildParser( ParsingLL.IsChecked ?? false ? GrammarType.LL : GrammarType.LR, Grammar_Editor.Text, messages ); Grammar_LogList.Text = String.Join(Environment.NewLine, messages.Where(m => m.Type == MessageType.Trace).Select(m => m.Text)); Grammar_ErrorsList.ItemsSource = messages.Where(m => m.Type == MessageType.Error || m.Type == MessageType.Warning); if (messages.Any(m => m.Type == MessageType.Error)) { Grammar_StatusBarLabel.Content = "Не удалось сгенерировать парсер"; Grammar_StatusBar.Background = LightRed; } else { if (Grammar_DisablePreprocButton.IsChecked != true) { Parser.SetPreprocessor(Preprocessor); } Grammar_StatusBarLabel.Content = "Парсер успешно сгенерирован"; Grammar_StatusBar.Background = Brushes.LightGreen; } }