tock-mirror/testcases/id-chain.rain
2008-03-22 16:11:12 +00:00

51 lines
514 B
Plaintext

process id_int(?int : in, !int: out)
{
while (true)
{
int: n;
in ? n;
out ! n;
}
}
process id_int_ring(?int: in, !int: out, int: n)
{
if (n == 1)
{
run id_int(in,out);
}
else
{
channel int: c;
par
{
run id_int(in, !c);
run id_int_ring(?c, out, n - 1);
}
}
}
process main()
{
channel int: start,end;
par
{
run id_int_ring(?start, !end, 100);
seq
{
seqeach (n : [0..99])
{
start ! n;
}
int: x;
seqeach (n : [0..99])
{
end ? x;
}
}
}
}