// -*- C++ -*- #define N 10 #define MAX_ITER 10 #define FILE_OUT "/tmp/risultato.txt" /* ------------------------------------------------------------ */ /* Test di pipeline semplice con un parmod none centrale */ /* in cui le proc sono scritte in linguaggio C++ */ /* ------------------------------------------------------------ */ typedef struct { long x; long y; } T_cart; generic main() { stream T_cart[N] A; stream T_cart[N] B; genera (output_stream A); elabora (input_stream A output_stream B); stampa (input_stream B); } genera (output_stream T_cart A[N]) { Fgenera (output_stream A); } proc Fgenera (output_stream T_cart A[N]) inc<"iostream"> $c++{ T_cart tmp_A[N]; // messaggio di partenza x il regression test std::cerr << "STARTING gen" << std::endl; for (int k=0; k $c++{ std::ofstream f; static int file_aperto = -1; static int count = 0; static int ok = 0; if (file_aperto == -1) { f.open (FILE_OUT); file_aperto = 0; } for(int i=0; i= MAX_ITER) { f.close(); // messaggio di terminazione x il regression test if (ok==0) std::cerr << "ENDING with SUCCESS pipeline.ast --> stampa su file " << FILE_OUT << std::endl; else std::cerr << "ENDING with FAILURE pipeline.ast --> stampa su file " << FILE_OUT << std::endl; } }c++$ proc Felab (in T_cart A[N] out T_cart B[N]) inc<"iostream"> $c++{ static int count= 0; //std::cerr << " Felab " << count++ << std::endl; for (int i=0; i