Esempio n. 1
0
        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);
            }
        }