Erro Fator() { /* Processa um fator da cadeia de entrada. */ Erro err = resCorreto; /* Remover os espaços do início */ while (isspace(in[indIn])) indIn++; err = Primario(); if (err.codigoErro != EXPR_VALIDA) return err; while (isspace(in[indIn])) indIn++; if (in[indIn] == '^') { indIn++; err = Fator(); if (err.codigoErro != EXPR_VALIDA) return err; pos[indPos++] = '^'; } return resCorreto; } /* Fator */
/* Pela definicao : f = p ^ f sendo p um primario e f um fator */ Erro Fator() { /* Processa um fator da cadeia de entrada. */ Primario(); if((in[indIn]) == '^'){ avancaCaractere(); Fator(); imprimeSaida('^'); } return resCorreto; } /* Fator */