/* BEGIN INCLUDE FILE mrds_rst_parse_info.incl.pl1 -- oris, 6/30/78 */ /* modified 9/6/78 -- jeg, for lrk parser - cmdb interface */ /* modified 12/20/78 - - jeg, to add line number info for handlers */ /* modified 3/15/79 - - jeg, to add scanner, semantic, and link handler variables to be allocated in rsc */ /* Modified by Jim Gray - - 23-June-80, to separate max_string_size, and max_line_size mrds_data_ items. */ declare 1 domain aligned based (domain_ptr), 2 name char (32), /* name of this domain */ 2 descriptor bit (36), /* Multics pl1 descriptor for domain type */ 2 varying_avg_length fixed bin (24), /* average length of varying strings */ 2 options bit (1) unal, /* ON => some option is present */ 2 pad bit (35) unal, 2 check, 3 flag bit (1) unal, /* ON => check option present */ 3 pad bit (35) unal, 3 stack_ptr ptr, /* pointer to postfix stack holding boolean expression */ 3 stack_size fixed binary, /* number of stack elements */ 2 check_proc, 3 flag bit (1) unal, /* ON => check_proc option is present */ 3 pad bit (35) unal, 3 path char (168), /* check procedure pathname */ 3 entry char (32), /* check procedure entryname */ 2 encode_proc, 3 flag bit (1) unal, /* ON => encode_proc option is present */ 3 pad bit (35) unal, 3 path char (168), /* encode procedure pathname */ 3 entry char (32), /* encode procedure entryname */ 2 decode_proc, 3 flag bit (1) unal, /* ON => decode_proc option is present */ 3 pad bit (35) unal, 3 path char (168), /* decode procedure pathname */ 3 entry char (32), /* decode procedure entryname */ 2 decode_dcl, 3 flag bit (1) unal, /* ON => decode declaration is present */ 3 pad bit (35) unal, 3 descriptor bit (36), /* decode declaration pl1 descriptor */ 2 line_num fixed bin (24) ; /* line of domain name in source */ declare domain_ptr ptr ; dcl 1 relation aligned based (relation_ptr), 2 a_ptr ptr, /* ptr to attribute list for this relation */ 2 name char (32), /* relation name */ 2 max_tup fixed bin, /* maximum tuples for this relation if a blocked file */ 2 num_items fixed bin, /* number of attributes in this relation */ 2 unused bit (36) unal, /* future flags */ 2 line_num fixed bin (24) ; /* line of relation name in source */ dcl relation_ptr ptr; dcl 1 attribute aligned based (attribute_ptr), 2 next ptr, /* ptr to next in list */ 2 name char (32), /* name of attribute */ 2 pr_key bit (1) unal, /* ON => part of primary key */ 2 pad bit (35) unal, 2 defn_order fixed bin, /* position within the relation */ 2 key_order fixed bin, /* position within the primary key, if a key */ 2 line_num fixed bin (24) ; /* line of attribute name in source */ dcl attribute_ptr ptr; dcl 1 attribute_domain aligned based (attdom_ptr), 2 attr char (32), /* attribute name */ 2 dom char (32), /* domain name */ 2 default bit (1) unal, /* on => defined as default attr, not by source */ 2 unused bit (35) unal, /* future flags */ 2 line_num fixed bin (24) ; /* line of attribute name in source */ dcl attdom_ptr ptr; /* ptr to attribute_domain structure */ dcl 1 file aligned based (file_ptr), 2 i_ptr ptr, /* ptr to item containing relation name */ 2 name char (30), /* file name */ 2 type fixed bin, /* blocked or unblocked */ /* type = 1 => unblocked, type = 2 => blocked */ 2 ppb fixed bin, /* pages per block, if blocked */ 2 hbh fixed bin, /* hash bucket headers per block */ 2 block fixed bin, /* blocks per hash bucket headers */ 2 num_items fixed bin, /* nbr. items -- relations -- in file */ 2 default bit (1) unal, /* on => defined as default file, not by source */ 2 unused bit (35) unal, /* future flags */ 2 line_num fixed bin (24) ; /* line of file name in source */ dcl file_ptr ptr; /* ptr to file structure */ dcl 1 rel_index aligned based (index_ptr), 2 i_ptr ptr, /* ptr. to item containing index attr. name */ 2 rel_name char (32), /* name of relation being indexed */ 2 num_items fixed bin, /* nbr. items -- attributes -- indexed for a relation */ 2 unused bit (36) unal, /* future flags */ 2 line_num fixed bin (24) ; /* line of relation name in source */ dcl index_ptr ptr; /* ptr to index structure */ dcl 1 link aligned based (link_ptr), 2 parent_ptr ptr, /* ptr to foreign_key structure cont. parent rel. name */ 2 children_ptr ptr, /* ptr. to list of children names for this link */ 2 clust_fl bit (1) unal, /* ON => link is clustered in one file */ 2 pad bit (35) unal, 2 name char (32), /* name of this link */ 2 num_children fixed bin, /* number of children for this link's parent */ 2 line_num fixed bin (24) ; /* line of link name occurence in source */ dcl link_ptr ptr; /* ptr to link structure */ dcl 1 children aligned based (children_ptr), 2 next ptr, /* ptr to next in list */ 2 child_ptr ptr; /* ptr. to foreign_key struct. containing child rel. name */ dcl children_ptr ptr; /* ptr to children structure */ dcl 1 foreign_key aligned based (forkey_ptr), 2 i_ptr ptr, /* ptr to item list containing foreign key attributes */ 2 rel_name char (32), /* name of parent/child relation */ 2 num_items fixed bin, /* nbr of attributes defining this foreign key */ 2 unused bit (36) unal, /* future flags */ 2 line_num fixed bin (24) ; /* line of relation occurence in source */ dcl forkey_ptr ptr; /* ptr to foreign_key structure */ dcl 1 item aligned based (item_ptr), 2 next ptr, /* ptr to next item in the list */ 2 name char (32), /* name of item -- relation name or attribute name */ 2 unused bit (36) unal, /* future flags */ 2 line_num fixed bin (24) ; /* line of item occurence in source */ dcl item_ptr ptr; /* ptr to item structure */ declare 1 delete_name aligned based (delete_name_ptr), /* overlay for undefine parse information */ 2 overlay char (32), /* name portion */ 2 unused bit (36) unal, /* future flags */ 2 line_num fixed bin (24) ; /* line number of name occurence in source */ declare delete_name_ptr ptr ; /* scanner variables */ declare token char (mrds_data_$max_string_size) varying based (accum_token_ptr) ; /* temp store for accumulating the token */ declare accum_token_ptr ptr internal static ; /* pointer to allocated accumulator store */ declare mrds_data_$max_string_size fixed bin (35) external ; /* max token size in chars */ declare mrds_data_$max_line_size fixed bin (35) ext ; /* max output listing line size */ declare token_length fixed binary (24) ; /* current length of token */ declare output_text char (mrds_data_$max_line_size) varying based (output_text_ptr) ; /* body of text for this line in output listing */ declare output_text_ptr ptr internal static ; /* pointer to allocated output line storage */ declare fixup_token char (token_length) based ; /* saved fixed up version of token */ /* semantic variables */ declare source_size fixed bin (35) ; /* length of source char string for any_to_any */ declare string_source_ptr ptr ; /* pointer to source for any_to_any conversion */ declare string_source char (source_size) based (string_source_ptr) ; /* storage for expanded string constant */ /* link handler variable */ declare dom_list_ptr ptr ; /* pointer to domain list element */ declare 1 dom_list based (dom_list_ptr), /* element of parent attr domain ptr list */ 2 next ptr, /* pointer to next in order on list */ 2 attr_name char (32) aligned, /* parent attr's name */ 2 dom_info_ptr ptr ; /* parent attr's domain ptr */ /* END INCLUDE FILE mrds_rst_parse_info.incl.pl1 */ */ ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group Bull including Bull HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell Bull Inc., Groupe Bull and Bull HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, Bull or Bull HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by Bull HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved */