Example #1
0
 public void DEF_CONST()
 {
     if (tk.Descricao == "variavel")
     {
         string tempLex = tk.Lexograma;
         string tempTipo;
         IDENT();
         if (Reconhece("="))
         {
             if (tk.Descricao == "numfloat" || tk.Descricao == "numint")
             {
                 if (tk.Descricao == "numfloat")
                 {
                     tempTipo = "real";
                 }
                 else
                 {
                     tempTipo = "integer";
                 }
                 NUM();
                 if (!Reconhece(";"))
                 {
                     while (tk.Descricao != "EOF" && tk.Descricao != "begin" && tk.Descricao != "var")
                     {
                         tk = Lex.NextToken();
                     }
                 }
                 Sem.AddNaTabela(tempLex, tempTipo, true, k);
                 //sem.imprimeTabela();
             }
             else
             {
                 ErroSint(tk, "numero");
                 while (tk.Descricao != "EOF" && tk.Descricao != "begin" && tk.Descricao != "var")
                 {
                     tk = Lex.NextToken();
                 }
             }
         }
         else
         {
             ErroSint(tk, "=");
             while (tk.Descricao != "EOF" && tk.Descricao != "begin" && tk.Descricao != "var")
             {
                 tk = Lex.NextToken();
             }
         }
     }
     else
     {
         ErroSint(tk, "variavel");
         while (tk.Descricao != "EOF" && tk.Descricao != "begin" && tk.Descricao != "var")
         {
             tk = Lex.NextToken();
         }
     }
 }