1 /* BEGIN INCLUDE FILE -- abs_io_expand.incl.pl1 -- 07/07/80 S. Herbst */ 2 3 /* Added label_search_values 10/06/82 S. Herbst */ 4 /* Added next_begin_pos 04/29/83 S. Herbst */ 5 /* Added trace_lines.by_control_arg 03/20/84 S. Herbst */ 6 7 8 dcl expand_data_ptr ptr; 9 /* In comments, (Input), (Output) and (I/O) refer 10 to how abs_io_expand_ sees the item. */ 11 dcl 1 expand_data aligned based (expand_data_ptr), 12 2 version fixed bin, /* = 1 */ 13 2 abs_data_ptr ptr, /* ptr back to abs_data for this invocation of ec */ 14 2 expand_data_ptr ptr, /* ptr to data maintained by abs_io_expand_ */ 15 2 next_expand_data_ptr ptr, /* ptr to this structure for next &proc or &fcn */ 16 2 last_expand_data_ptr ptr, /* ptr to this structure for outer proc or fcn */ 17 2 area_ptr ptr, /* ptr to area in which to allocate args */ 18 19 2 input_pos fixed bin (21), /* current character position in input file (I/O) */ 20 2 caller_buffer_info, 21 3 caller_buffer_ptr ptr, /* caller's buffer for returned line (Input) */ 22 3 caller_buffer_len fixed bin (21), /* character size of buffer (Input) */ 23 3 caller_actual_len fixed bin (21), /* number of chars returned (Output) */ 24 2 allocated_buffer_info, 25 3 allocated_ptr ptr, /* ptr to expand_'s allocated rest-of-line (I/O) */ 26 3 allocated_len fixed bin (21), /* length of rest-of-line (I/O) */ 27 3 allocated_buffer_len fixed bin (21), /* original allocated size (Output) */ 28 29 2 trace_lines, /* tracing info for command or input lines */ 30 3 by_control_arg bit (1) unaligned, /* ON if trace mode was specified by ec control arg */ 31 3 on bit (1) unaligned, /* ON to trace at all */ 32 3 expand fixed bin (3) unaligned, /* 1=unexpanded, 2=expanded, 3=all, 4=both */ 33 3 pad1 bit (66) unaligned, /* pad to double word */ 34 3 iocb ptr, /* IOCB to put trace on */ 35 3 prefix char (32) varying, /* prefix for &trace tracing, eg. "COMMAND: " */ 36 3 pad2 bit (36), 37 38 2 predicate_values, 39 3 is_absin bit (1), /* &is_absin, ON if absentee (Input) */ 40 3 is_af bit (1), /* &is_af, ON if ec active function (Input) */ 41 3 is_input bit (1), /* &is_input_line, ON if input line */ 42 3 pad bit (33), 43 2 first_loop_ptr ptr, /* ptr to first iteration loop activation (I/O) */ 44 2 first_block_ptr ptr, /* ptr to first &do block (I/O) */ 45 46 2 label_search_values, 47 3 searching_for char (200), /* label being searched for ($skip) */ 48 3 (next_begin_pos, /* position of next &begin */ 49 next_do_pos, /* position of next &do */ 50 next_end_pos, /* position of next &end */ 51 next_label_pos, /* position of next &label */ 52 next_quote_pos, /* position of next &" */ 53 next_comment_pos) fixed bin (21), /* position of next &- */ 54 55 2 expander_output, /* returned by abs_io_expand_ after parsing */ 56 3 this_statement, 57 4 pos fixed bin (21), /* beginning of current (parsed) statement */ 58 4 len fixed bin (21), /* length of entire statement */ 59 4 keyword_len fixed bin (21), /* length of just the keyword portion */ 60 4 action fixed bin, /* semantic number of this keyword */ 61 3 semant_info, 62 4 semantics fixed bin, /* additional information for the code that implements */ 63 4 modifier fixed bin, /* and more info for certain ones */ 64 4 flag fixed bin, /* what can I say? */ 65 3 arg_info, 66 4 arg_ptr ptr, /* ptr to single arg if keyword takes only one (Output) */ 67 4 arg_len fixed bin (21), /* length of single arg (Output) */ 68 4 parsed_args_ptr ptr, /* points to parsed_args structure if >1 args (Output) */ 69 3 next_statement like expand_data.this_statement, /* next statement info (look-ahead) (Output) */ 70 3 expanded_sw bit (1), /* ON if expand_ had to expand label stmt (Output) */ 71 3 error_msg char (168) aligned; /* diagnosis if abs_io_expand returns code ^= 0 */ 72 73 74 dcl parsed_args_count fixed bin; 75 dcl parsed_args_ptr ptr; 76 77 dcl 1 parsed_args aligned based (parsed_args_ptr), 78 2 count fixed bin, /* number of arguments */ 79 2 array (parsed_args_count refer (parsed_args.count)), 80 3 ptr ptr unaligned, /* ptr to the argument */ 81 3 len fixed bin (21), /* length of the argument */ 82 3 quote_count fixed bin, /* number of internal quote chars (for allocating &r) */ 83 3 flags bit (36) aligned; /* reserved for specific types of args */ 84 85 dcl expand_data_version_2 fixed bin int static options (constant) init (2); 86 87 /* END INCLUDE FILE abs_io_expand.incl.pl1 */