private void analisaVariaveis() { int varsCreated = 0; do { if (!hasEndedTokens && isSimbol(IDENTIFICADOR)) { if (!Semantico.pesquisaDuplicVarTabela(actualToken.lexem)) { Semantico.insereTabela(actualToken.lexem, NOME_VARIAVEL, totalVariables + varsCreated); varsCreated++; updateToken(); if (!hasEndedTokens && (isSimbol(VIRGULA) || isSimbol(DOIS_PONTOS))) { if (!hasEndedTokens && isSimbol(VIRGULA)) { updateToken(); if (!hasEndedTokens && !isSimbol(IDENTIFICADOR)) { throwError(new CompiladorException(ERRO_SINTATICO), ERRO_VAR); } } } else { throwError(new CompiladorException(ERRO_SINTATICO), ERRO_DOIS_PONTOS); } } else { throwError(new CompiladorException(ERRO_SEMANTICO), DUPLIC_VAR_ERROR); } } else { throwError(new CompiladorException(ERRO_SINTATICO), ERRO_NOME); } } while (!hasEndedTokens && !isSimbol(DOIS_PONTOS)); updateToken(); declaredVar++; totalVarsCreatedLocally.Push(varsCreated); CodeGenerator.gera(EMPTY_STRING, ALLOC, totalVariables.ToString(), varsCreated.ToString()); totalVariables += varsCreated; analisaTipo(); }