public Parser(Lexer lexer) { this.lexer = lexer; // получаем отератор лексем и ставим на первую позицию lex = lexer.GetNextLexeme().GetEnumerator(); lex.MoveNext(); }
private void LexerBtn_Click(object sender, RoutedEventArgs e) { Lexer lex = new Lexer(InputTextBox.Text); OutputTextBox.Text = string.Empty; try { foreach (var token in lex.GetNextLexeme()) OutputTextBox.Text += token.ToString() + Environment.NewLine; } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void Parser_Click(object sender, RoutedEventArgs e) { try { Lexer lex = new Lexer(InputTextBox.Text); Parser p = new Parser(lex); var rez = p.CalculateRPN(); OutputTextBox.Text = string.Empty; foreach (var el in rez) OutputTextBox.Text += el.ToString() + Environment.NewLine; } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } }