private boolean instrucaoRetorno() {
        /*
         <inst_retorno> ::= “retorno” <argumento_retorno> “;”
         <argumento_retorno> ::= <valor> | <argumento> | “vazio”
        
         //<valor> ::= <numero> | <booleano> | <char> | <cadeia>
         <numero> ::= <inteiro> | <real>
        
         <argumento> ::= <id> <compl_tipo_parametro>

         <compl_tipo_parametro> ::= <acesso_campo_registro> | <acesso_matriz>
         | <chamada_funcao> | λ
         <acesso_campo_registro> ::= ”.” <id> 
         <acesso_matriz> ::= “[“ <indice> “]” <acesso_matriz> | λ
         <indice> ::= <inteiro> | <id>

         */
        boolean erro = false;
        if (!acabouListaTokens()) {
            nextToken();
            if (tipoDoToken[0].equals("Palavra Reservada")) {

                if (tipoDoToken[1].equals(" retorno")) {
                    System.out.println("Entrei em  retorno");
                    if (!acabouListaTokens()) {
                        nextToken();
                        erro = false;
                        if (tipoDoToken[0].equals("Palavra Reservada")) {
                            if (tipoDoToken[1].equals(" vazio")) {
                                erro = false;
                                if (!acabouListaTokens()) {
                                    nextToken();
                                    if (tipoDoToken[1].equals(" ;")) {
                                        System.out.println("TERMINEI RETORNO RETORNANDO VAZIO");
                                        listaDeBlocos.add("retorno tipo vazio: sem ");
                                        erro = false;
                                    } else {
                                        erro = true;
                                        //erro fim de retorno tipo vazio faltando o ponto e virgula ;
                                        errosSintaticos.erroSemPontoVirgulaRetorno(tipoDoToken[3], tipoDoToken[1]);

                                    }
                                } else {
                                    erro = true;
                                    errosSintaticos.erroFimDeArquivo(tipoDoToken[3], tipoDoToken[1], "retorno");
                                    zerarTipoToken();
                                }

                            } else {
                                erro = true;
                                //erro tipo de retorno1 quando retorna  vazio 
                            }
                        } else if (tipoDoToken[0].equals("Identificador")) {
                            //retornar valor e registro aqui 
                        } else {
                            erro = true;
                            //erro
                        }
                    } else {
                        erro = true;
                        errosSintaticos.erroFimDeArquivo(tipoDoToken[3], tipoDoToken[1], "retorno");
                        zerarTipoToken();
                    }
                } else {
                    erro = true;
                    //erro a ser tratado
                }

            } else {
                erro = true;
                //erro a ser tratado
            }

        } else {
            erro = true;
            errosSintaticos.erroFimDeArquivo(tipoDoToken[3], tipoDoToken[1], "retorno");
            zerarTipoToken();
        }
        return true;
        // return erro;
    }