- let param_pos = Grammar2.get_id2_pos rhs in
- let nparam1 = Grammar2.get_id1_rank rhs in
- let nparam2 = Grammar2.get_id2_rank rhs in
- let a_param2 = if nparam2 == 0 then [||] else Array.create nparam2 dummy_leaf in
- let i = param_pos - 2 in
- let ip1 = i + 1 in
- let offset2d = i+2 in
- let offset2s = i+nparam2 + 1 in
- blit a_param 0 parameters_tmp 0 (i+1);
- parameters_tmp.(ip1) <- Grammar2.Node(id2, a_param2); (* id2( ... ) *)
- blit a_param offset2s parameters_tmp offset2d (nparam1 - i - 2);
- blit a_param ip1 a_param2 0 nparam2;
-
- blit parameters_tmp 0 parameters 0 nparam1;