private void analisaDeclaracaoProcedimento() { updateToken(); if (!hasEndedTokens && isSimbol(IDENTIFICADOR)) { if (!Semantico.pesquisaDeclProcTabela(actualToken.lexem)) { Semantico.insereTabela(actualToken.lexem, NOME_PROCEDIMENTO, rotulo); CodeGenerator.gera(rotulo.ToString(), NULL, EMPTY_STRING, EMPTY_STRING); rotulo++; Semantico.increaseLevel(); updateToken(); if (!hasEndedTokens && isSimbol(PONTO_VIRGULA)) { analisaBloco(); } else { throwError(new CompiladorException(ERRO_SINTATICO), ERRO_PV); } } else { throwError(new CompiladorException(ERRO_SEMANTICO), DECL_PROC_ERROR); } } else { throwError(new CompiladorException(ERRO_SINTATICO), ERRO_FALTA); } Semantico.voltaNivel(); }