1 /* ====== BEGIN INCLUDE SEGMENT         apl_bead_format.incl.pl1 ================================== */
 2 
 3 declare 1 general_bead                  aligned based,      /* The Venerable Bead                   */
 4           2 type                        unaligned,
 5             3 bead_type                 unaligned,
 6               4 operator                bit (1),            /* ON if operator bead                  */
 7               4 symbol                  bit (1),            /* ON if symbol bead                    */
 8               4 value                   bit (1),            /* ON if value bead                     */
 9               4 function                bit (1),            /* ON if function bead                  */
10               4 group                   bit (1),            /* ON if group bead                     */
11               4 label                   bit (1),            /* ON if label bead                     */
12               4 shared_variable         bit (1),            /* ON if shared variable bead           */
13               4 lexed_function          bit (1),            /* ON if lexed function bead            */
14             3 data_type                 unaligned,
15               4 list_value              bit (1),            /* ON if a list value bead              */
16               4 character_value         bit (1),            /* ON if a character value bead         */
17               4 numeric_value           bit (1),            /* ON if a numeric value bead           */
18               4 integral_value          bit (1),            /* ON if an integral value bead         */
19               4 zero_or_one_value       bit (1),            /* ON if a boolean value bead           */
20               4 complex_value           bit (1),            /* ON if a complex, numeric value bead   */
21             3 unused_bits               bit (4) unaligned,  /* pad to 18 bits (for future use)      */
22           2 size                        bit (18) unaligned, /* Number of words this bead occupies
23                                                                (used by bead storage manager)       */
24           2 reference_count             fixed binary (29);  /* Number of pointers which point
25                                                                to this bead (used by bead manager)  */
26 
27 
28 /* constant strings for initing type field in various beads */
29 
30 declare (
31           operator_type                 init("100000000000000000"b),
32           symbol_type                   init("010000000000000000"b),
33           value_type                    init("001000000000000000"b),
34           function_type                 init("000100000000000000"b),
35           group_type                    init("000010000000000000"b),
36           label_type                    init("001001000011000000"b),
37           shared_variable_type          init("001000100000000000"b),
38           lexed_function_type           init("000000010000000000"b),
39 
40           list_value_type               init("000000001000000000"b),
41           character_value_type          init("001000000100000000"b),
42           numeric_value_type            init("001000000010000000"b),
43           integral_value_type           init("001000000011000000"b),
44           zero_or_one_value_type        init("001000000011100000"b),
45           complex_value_type            init("001000000000010000"b),
46 
47           not_integer_mask              init("111111111110011111"b),            /* to clear integral, zero_or_one bits */
48           not_zero_or_one_mask          init("111111111111011111"b)             /* to clear zero_or_one bit */
49         ) bit(18) internal static;
50 
51 /* ------ END INCLUDE SEGMENT           apl_bead_format.incl.pl1 ---------------------------------- */