示例#1
0
        private static void SyntacticalAnalysis()
        {
            LexicalAnalysis();
            var syntactic = new Syntactic(Lexical.TokensFound);

            if (syntactic.SyntacticAnalysis())
            {
                Console.WriteLine("Análise Sintática feita com sucesso.");
            }
            else
            {
                var error = syntactic.Error();
                Console.WriteLine($"Erro na análise sintática! Após o Token: {error.Token}, Linha: {error.Line}, Coluna: {error.Column}");
            }
        }
示例#2
0
 private void SintaticalMenuItem_Click(object sender, EventArgs e)
 {
     if (lexicalAnalysis.ReadTokens.Count == 0)
     {
         MessageBox.Show("A lista de tokens está vazia, execute a análise léxica primeiramnte.");
     }
     else
     {
         Syntactic sintaticlAnalysis = new Syntactic(lexicalAnalysis.ReadTokens);
         if (sintaticlAnalysis.Analysis())
         {
             MessageBox.Show("A análise sintática foi concluida com sucesso.");
         }
         else
         {
             ReadToken erro = sintaticlAnalysis.ErroToken();
             MessageBox.Show("Ocorreu um erro na análise sintática na linha " + erro.Linha + " na coluna " + erro.Coluna
                             + " ao analisar o token " + erro.Token + " cujo lexema é \"" + erro.Lexema + "\"");
         }
     }
 }