private boolean colchete() {
        //<colchete> ::= “[“ <inteiro> “]” <colchete> | λ*/
        boolean erro = false;
        if (!acabouListaTokens()) {
            nextToken();
            if (tipoDoToken[1].equals(" [")) {
                    if (!acabouListaTokens()) {
                    nextToken();
                    if (tipoDoToken[0].equals("Numero Inteiro")) {
                        if (!acabouListaTokens()) {
                            nextToken();
                            if (tipoDoToken[1].equals(" ]")) {
                                
                                if(!this.colchete()) erro = true;
                                
                            }else{
                                erro = true;
                                errosSintaticos.erroSemColcheteFechadoParametro(tipoDoToken[3], tipoDoToken[1]);
                            }
                        } else {
                            erro = true;
                            errosSintaticos.erroFimDeArquivo(tipoDoToken[3], tipoDoToken[1], "atribuição");
                            zerarTipoToken();
                        }
                    }else {
                         erro = true;
                         errosSintaticos.erroSemIndiceMatrizParametro(tipoDoToken[3], tipoDoToken[1]);
                        
                    }
                }else{
                    erro = true;
                    errosSintaticos.erroFimDeArquivo(tipoDoToken[3], tipoDoToken[1], "atribuição");
                    zerarTipoToken();
                }
                
                
            }else{
                erro = true;
                errosSintaticos.erroSemColcheteAbertoParametro(tipoDoToken[3], tipoDoToken[1]);
            
        
        }
            
        }else{
            erro = true;
            errosSintaticos.erroFimDeArquivo(tipoDoToken[3], tipoDoToken[1], "colchete");
            zerarTipoToken();
        }
        return erro;
    }