#include #include #include #include #include using namespace std; #define NFILES 13 string files[NFILES] = {"yaam_primitive_predicates", "yaam_call", "yaam_call_count", "yaam_cut", "yaam_failure", "yaam_get", "yaam_indexing_ext", "yaam_indexing_std", "yaam_misc", "yaam_pop", "yaam_put", "yaam_unify", "yaam_write"}; int main(int argc, char **argv) { std::string fileinname, fileoutname, linein, lineout; char lineout_char[256]; ifstream filein; ofstream fileout; int k; for (int i = 0; i < NFILES; i++) { linein = ""; lineout = ""; fileinname = files[i] + ".h"; fileoutname = files[i] + "_mod.h"; filein.open(fileinname.c_str()); if (!filein.is_open()) { cout << "Erro ao abrir arquivo " << fileinname << " para leitura! Saindo..." << endl; exit(1); } fileout.open(fileoutname.c_str()); if (!fileout.is_open()) { cout << "Erro ao abrir arquivo " << fileoutname << " para escrita! Saindo..." << endl; exit(1); } cout << "Processando arquivo " << fileinname << "!\n"; getline(filein, linein); while (!filein.eof()) { lineout = ""; strcpy(lineout_char, ""); //cout << "linein = " << linein << endl; /* */ if (linein.size() > 6) { if (linein.substr(0, 7) == "#define") { lineout = "#define"; k = 0; for (int j = 7; j < linein.size(); j++) { if (linein[j] >= 'a' && linein[j] <= 'z') { //cout << "linein[j] = " << linein[j] << endl; lineout_char[k++] = linein[j] - 32; } else { lineout_char[k++] = linein[j]; } } lineout_char[k] = '\0'; lineout += lineout_char; //cout << "lineout 1 = " << lineout << endl; } else { lineout = linein; //cout << "lineout 2 = " << lineout << endl; } } else { lineout = linein; //cout << "lineout 3 = " << lineout << endl; } fileout << lineout << endl; getline(filein, linein); } lineout = linein; fileout << lineout << endl; filein.close(); fileout.close(); } return 0; }