Ejemplo n.º 1
0
        private void AnalBut_Click(object sender, EventArgs e)
        {
            LexicalAnalizator analizator = new LexicalAnalizator(AnalizTextBox.Text);

            if (analizator.analysis()) // анализ успешно завершен
            {
                ResultTextBox.Text = analizator.ToString();
                this.analizator    = analizator;
                updateTableLexeme(analizator.tableLexemes, analizator.tableID);
            }
            syntacticAnalizator = new SyntacticAnalizator(analizator.tableLexemes);
            try
            {
                syntacticAnalizator.work();
                UpdateTreeView(syntacticAnalizator.listExpression);
                MessageBox.Show("Построение завершено");
                CodeGenerator codeGenerator = new CodeGenerator(syntacticAnalizator.listExpression, analizator.idHashTable);
                codeGenerator.Generate();
                updateTableId(analizator.idHashTable);
                UpdateCodeView(codeGenerator.codeBlocks);
            }
            catch (lab1.Exceptions.SyntaxException exp)
            {
                MessageBox.Show(exp.Message);
            }
        }
Ejemplo n.º 2
0
 void updateTables(LexicalAnalizator analizator)
 {
     updateTableId(analizator.idHashTable);
     updateTableLexeme(analizator.tableLexemes, analizator.tableID);
 }