// -*- C++ -*- /* ------------------------------------------------------------ */ /* In questo esempio e' testata la possibilita' di avere */ /* il non determinismo su due canali in un parmod none. */ /* Il grafo e' formato da due sequenziali, un parmod e un */ /* sequenziale. */ /* ------------------------------------------------------------ */ #define N 10 #define MAX_ITER1 10 #define MAX_ITER2 10 #define FILE_OUT "/tmp/risultato.txt" typedef struct { long x; long y; } T_cart; generic main() { stream T_cart[N] A; stream long A1; stream T_cart[N] B; genera1 (output_stream A); genera2 (output_stream A1); elabora (input_stream A, A1 output_stream B); stampa (input_stream B); } genera1(output_stream T_cart A[N]) { Fgenera1(output_stream A); } proc Fgenera1(output_stream T_cart A[N]) inc<"iostream"> $c++{ T_cart tmp_A[N]; // messaggio di partenza x il regression test std::cerr << "STARTING fgen1" << std::endl; for (int k=0; k $c++{ static long c = 0; // messaggio di partenza x il regression test std::cerr << "STARTING fgen2" << 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_ITER1) { f.close(); // messaggio di terminazione x il regression test if (ok==0) std::cerr << "ENDING with SUCCESS nondeterminismo.ast su file " << FILE_OUT << std::endl; else std::cerr << "ENDING with FAILURE nondeterminismo.ast su file " << FILE_OUT << std::endl; } }c++$ proc Felab1(in T_cart A[N] output_stream T_cart S[N]) inc<"iostream"> $c++{ int i; T_cart B[N]; for(i=0; i $c++{ }c++$