1 /*  START OF:       bce_abs_io_data.incl.pl1                  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *   */
 2 /* Stolen and shrunk from abs_io_data by Keith Loepere sometime in '83 */
 3 /* Initial coding: 25 June 79 by J. Spencer Love */
 4 /* login_channel option flag BIM 11/81 */
 5 /* Added this_action and next_action 04/20/82 S. Herbst */
 6 /* Added on_info, goto_statement_(pos len) 01/06/83 S. Herbst */
 7 /* Added output_file.turn_of_ssw 05/16/83 S. Herbst */
 8 /* Added attach.trim_whitespace_sw 06/02/83 S. Herbst */
 9 
10 declare   abs_data_ptr                  ptr;
11 
12 declare   1 abs_data                    aligned based (abs_data_ptr),
13             2 ec_data_ptr               ptr,                /* -> communication area for exec_com                       */
14             2 arg_info,                                     /*                                                          */
15               3 ec_name_ptr             ptr,                /* Ptr to allocated &ec_name string                         */
16               3 ec_name_len             fixed bin (21),     /* Length of allocated &ec_name string                      */
17               3 arg_ptr                 ptr,                /* pointer to allocated structure containing args           */
18               3 arg_count               fixed bin,          /* number of arguments passed                               */
19             2 input_string,                                 /* data about input segment or archive component            */
20               3 ptr                     ptr,                /* pointer to input file                                    */
21               3 len                     fixed bin (21),     /* number of characters in input file                       */
22               3 start                   fixed bin (21),     /* initial value for input_pos, set beyond &version, if any */
23               3 position                fixed bin (21),     /* current index into input file                            */
24               3 limit                   fixed bin (21),     /* farthest point yet reached...begin &label search here    */
25                                                             /*                                                          */
26             2 command_line,                                 /* substructure dealing with tracing command lines          */
27               3 on                      bit (1),            /* 1 to print tracing information                           */
28               3 expand                  fixed bin (2),      /* 1 to print unexpanded, 2 expanded, 3 all, 4 both         */
29             2 comment_line              like command_line,  /* for tracing comments..always unexpanded                  */
30             2 control_line              like command_line,  /* for tracing control lines                                */
31             2 input_line                like command_line,  /* for tracing input lines in &attach mode                  */
32                                                             /*                                                          */
33             2 attach,                                       /*                                                          */
34              3 victim_ptr               ptr,                /* -> IOCB affected by &attach (usually iox_$user_input     */
35              3 target_ptr               ptr,                /* -> IOCB &attached to (created by exec_com command)       */
36              3 save_ptr                 ptr,                /* -> IOCB used to save previous victim_ptr -> IOCB         */
37             2 allocated_chars_ptr       ptr,                /* -> allocated buffer for freeing                          */
38             2 chars_ptr                 ptr,                /* -> characters in buffer waiting to be returned           */
39             2 else_clause_ptr           ptr,                /* -> characters in deferred else clause                    */
40             2 allocated_chars_len       fixed bin (21),     /* total length of allocated buffer                         */
41             2 chars_len                 fixed bin (21),     /* characters left in buffer to be returned                 */
42             2 else_clause_len           fixed bin (21),     /* length of deferred else clause                           */
43                                                             /*                                                          */
44             2 active                    bit (1),            /* 1 indicates get_line is busy, for recursion check        */
45             2 eof                       bit (1),            /* 1 indicates &quit found or no more input                 */
46             2 nest_level                fixed bin,          /* V1: depth of &if-&then-&else nesting                     */
47             2 expected_nest_level       fixed bin,          /* V1: depth that must be reached to resume execution       */
48                                                             /*                                                          */
49             2 goto_statement_pos        fixed bin (21),     /* position of last &goto stmt, for error msgs              */
50             2 goto_statement_len        fixed bin (21),     /* length of the &goto stmt                                 */
51 
52             2 if_info aligned,                              /* &if-&then-&else nesting info                             */
53              3 if_sw                    bit (1),            /* ON if inside an &if-&then-&else construct                */
54              3 true_sw                  bit (1),            /* ON after "&if true"                                      */
55              3 got_then_sw              bit (1),            /* ON after the &then has been seen                         */
56              3 got_else_sw              bit (1),            /* ON after the &else has been seen                         */
57              3 clause_type              fixed bin,          /* previous &then or &else                                  */
58              3 skip_sw                  bit (1),            /* ON if skipping a &then or &else clause                   */
59              3 skip_block_level         fixed bin,          /* how many levels of &do we are inside while skipping      */
60              3 prev_if_ptr              ptr,                /* ptr to if_info (saved) of &if we are nested inside       */
61              3 this_action              fixed bin,          /* copy of expand_data.this_statement.action */
62              3 next_action              fixed bin,          /* copy of expand_data.next_statement.action */
63             2 labels_ptr                ptr,                /* hash table ptr for label hash table                      */
64             2 work_area_ptr             ptr,                /* area for args, etc.                            */
65             2 work_area_len             fixed bin;
66 
67 declare   abs_data_work_area            area (abs_data.work_area_len) based (abs_data.work_area_ptr);
68 
69 declare   abs_data_version_1            fixed bin static options (constant) initial (1),
70           Work_area_size                fixed bin static options (constant) initial (800);
71 
72 dcl (UNEXPANDED init (1), EXPANDED init (2), ALL init (3), BOTH init (4))
73           fixed bin int static options (constant);
74 
75 /*  END OF:         bce_abs_io_data.incl.pl1                  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *   */