1 /* ====== BEGIN INCLUDE SEGMENT         apl_parse_frame.incl.pl1 ================================== */
 2 
 3 declare   1 parse_frame                 aligned based (parse_frame_ptr),
 4             2 last_parse_frame_ptr      ptr unaligned,      /* pointer to last parse frame, or null */
 5             2 parse_frame_type          fixed bin,          /* suspended, function, eval input, etc. */
 6             2 function_bead_ptr         ptr unaligned,      /* ptr to function bead */
 7             2 lexed_function_bead_ptr   ptr unaligned,      /* ptr to lexed function bead */
 8             2 reduction_stack_ptr       ptr unaligned,      /* ptr to reduction stack for this frame */
 9             2 current_parseme           fixed bin,          /* element of reduction stack that is top of stack */
10             2 current_lexeme            fixed bin,          /* element number of current lexeme */
11             2 current_line_number       fixed bin,          /* line number being executed */
12             2 return_point              fixed bin,          /* where to join the reductions on return */
13             2 put_result                fixed bin,          /* where to put the value when returning to this frame */
14             2 print_final_value         bit(1) aligned,     /* if true, print final value on line */
15             2 initial_value_stack_ptr   ptr unaligned,      /* for cleaning up the value stack */
16             2 number_of_ptrs            fixed bin,          /* number of old meaning ptrs */
17             2 old_meaning_ptrs          dim (number_of_ptrs refer (parse_frame.number_of_ptrs)) ptr unaligned;
18                                                             /* old meanings for local variables. */
19 
20 declare   number_of_ptrs fixed bin;
21 
22 declare   (suspended_frame_type init (1),                   /* for comparison with parse frame type */
23           function_frame_type init (2),
24           evaluated_frame_type init (3),
25           execute_frame_type init (4),
26           save_frame_type init (5)
27           ) fixed bin internal static options (constant);
28 
29 declare   reductions_pointer pointer;
30 
31 declare
32           1 reduction_stack             aligned dim (1000) based (reductions_pointer),
33             2 type                      fixed bin,          /* type of parseme */
34             2 bits                      unaligned like operator_bead.bits_for_parse,
35             2 semantics                 ptr unaligned,
36             2 lexeme                    fixed bin,
37 
38           1 reduction_stack_for_op      aligned dim (1000) based (reductions_pointer),
39             2 type                      fixed bin,
40             2 bits                      unaligned like operator_bead.bits_for_parse,
41             2 semantics                 fixed bin,
42             2 lexeme                    fixed bin,
43 
44           (eol_type init(0),                                          /* parseme types - end of line */
45           bol_type init(1),                                           /* begining of line */
46           val_type init(2),                                           /* value */
47           op_type init(3),                                            /* op */
48           open_paren_type init(4),
49           close_paren_type init(5),
50           open_bracket_type init(6),
51           close_subscript_type init(7),
52           close_rank_type init(8),
53           semi_colon_type init(9),
54           diamond_type init (10),
55           subscript_type init (11)) fixed bin internal static options (constant);
56 
57 /* ------ END INCLUDE SEGMENT           apl_parse_frame.incl.pl1 ---------------------------------- */