Reads one FlatZinc item (up to and including the terminating semicolon) from Stream, and returns it as an ECLiPSe structure. Fails when end_of_file has been reached.
?- read_item(input, Item).
> float: x=3.14;
Item = float : x = 3.14
Yes (0.00s cpu)
?- read_item(input, Item).
> solve minimize x;
Item = minimize(solve, x)
Yes (0.03s cpu)
?- read_item(input, Item).
> var int: i::foo::bar;
Item = var(int) : (i :: (foo :: bar))
Yes (0.02s cpu)
?- read_item(input, Item).
> constraint int_lt(x[2], 3);
Item = constraint(int_lt(subscript(x, [2]), 3))
Yes (0.00s cpu)
?- read_item(input, Item).
> set of int: s={1,2,3};
Item = (set of int) : s = {[1, 2, 3]}
Yes (0.05s cpu)
?- read_item(input, Item).
> array [1..3] of var int: a;
Item = (array([1 .. 3]) of var(int)) : a
Yes (0.03s cpu)
?- read_item(input, Item).
> var 1..5: i;
Item = var(1 .. 5) : i
Yes (0.03s cpu)