|
@@ -125,15 +125,19 @@ zip_pars(M, _Par1 = [Op1|Rest1], Prev1,
|
|
|
N, _Par2 = [Op2|Rest2], Prev2,
|
|
|
Acc) ->
|
|
|
case {M+ebb_prim:out_arity(Op1), N+ebb_prim:in_arity(Op2)} of
|
|
|
- {I, I} -> zip_pars(
|
|
|
- I, Rest1, [],
|
|
|
- I, Rest2, [],
|
|
|
- [ {lists:reverse([Op1|Prev1]), lists:reverse([Op2|Prev2])}
|
|
|
- | Acc ]);
|
|
|
- {M2, N2} -> zip_pars(
|
|
|
- M2, Rest1, [Op1|Prev1],
|
|
|
- N2, Rest2, [Op2|Prev2],
|
|
|
- Acc)
|
|
|
+ {I, I} ->
|
|
|
+ zip_pars(I, Rest1, [],
|
|
|
+ I, Rest2, [],
|
|
|
+ [ {lists:reverse([Op1|Prev1]), lists:reverse([Op2|Prev2])}
|
|
|
+ | Acc ]);
|
|
|
+ {M2, N2} when M2 < N2 ->
|
|
|
+ zip_pars(M2, Rest1, [Op1|Prev1],
|
|
|
+ N, [Op2|Rest2], Prev2,
|
|
|
+ Acc);
|
|
|
+ {M2, N2} when N2 < M2 ->
|
|
|
+ zip_pars(M, [Op1|Rest1], Prev1,
|
|
|
+ N2, Rest2, [Op2|Prev2],
|
|
|
+ Acc)
|
|
|
end.
|
|
|
|
|
|
simpl_pipe_route(#route{in=In, map=M1}, #route{map=M2}) ->
|