| 2599 | // |
| 2600 | |
| 2601 | static void gen_routine( const act* action, int column) |
| 2602 | { |
| 2603 | column += INDENT; |
| 2604 | |
| 2605 | for (const gpre_req* request = (const gpre_req*) action->act_object; request; |
| 2606 | request = request->req_routine) |
| 2607 | { |
| 2608 | gpre_port* port; |
| 2609 | |
| 2610 | for (port = request->req_ports; port; port = port->por_next) |
| 2611 | { |
| 2612 | printa(column - INDENT, "type"); |
| 2613 | make_port(port, column); |
| 2614 | } |
| 2615 | |
| 2616 | // Only write a var reserved word if there are variables which will be |
| 2617 | // associated with a var section. Fix for bug#809. mao 03/22/89 |
| 2618 | |
| 2619 | if (request->req_ports) { |
| 2620 | printa(column - INDENT, "var"); |
| 2621 | } |
| 2622 | |
| 2623 | for (port = request->req_ports; port; port = port->por_next) |
| 2624 | printa(column, "gds__%d\t: gds__%dt;\t\t\t(* message *)", port->por_ident, port->por_ident); |
| 2625 | |
| 2626 | for (const blb* blob = request->req_blobs; blob; blob = blob->blb_next) |
| 2627 | { |
| 2628 | printa(column, "gds__%d\t: gds__handle;\t\t\t(* blob handle *)", blob->blb_ident); |
| 2629 | printa(column, "gds__%d\t: %s [1 .. %d] of char;\t(* blob segment *)", |
| 2630 | blob->blb_buff_ident, PACKED_ARRAY, blob->blb_seg_length); |
| 2631 | printa(column, "gds__%d\t: %s;\t\t\t(* segment length *)", blob->blb_len_ident, SHORT_DCL); |
| 2632 | } |
| 2633 | } |
| 2634 | column -= INDENT; |
| 2635 | } |
| 2636 | |
| 2637 | |
| 2638 | //____________________________________________________________ |
no test coverage detected