/* BEGIN INCLUDE FILE parse.incl.pl1 */ /****^ HISTORY COMMENTS: 1) change(91-01-09,Blackmore), approve(91-01-09,MCR8234), audit(91-12-05,Huen), install(92-04-24,MR12.5-1011): Change entry points for 'lex', 'lex$write_last_line', and 'statement_type', for constant reference resolution fix. END HISTORY COMMENTS */ declare attribute_parse entry(ptr,ptr,fixed bin(15),bit(1) aligned); /* parameter 1: (input) block node ptr */ /* parameter 2: (input) symbol node ptr */ /* parameter 3: (in/out) token index */ /* parameter 4: (input) called while doing generic */ declare context entry(ptr,ptr,fixed bin(15)); /* parameter 1: (input) usually token node ptr */ /* parameter 2: (input) block node ptr */ /* parameter 3: (input) context type */ declare data_list_parse entry(fixed bin(15),ptr,ptr) returns(bit(1) aligned); /* parameter 1: (in/out) token index */ /* parameter 2: (input) block node ptr */ /* parameter 3: (output) data list parse tree ptr */ /* return: (output) valid parse bit */ declare declare_label entry(ptr,ptr,ptr,bit(3) aligned); /* parameter 1: (input) block node ptr */ /* parameter 2: (input) statement node ptr */ /* parameter 3: (input) label list ptr or null */ /* parameter 4: (input) declare type */ declare declare_parse entry(fixed bin(15),ptr,ptr); /* parameter 1: (input) token index */ /* parameter 2: (input) block node ptr */ /* parameter 3: (input) label list ptr or null */ declare declare_parse$abort entry(fixed bin(15),ptr); /* parameter 1: (input) error number */ /* parameter 2: (input) any node ptr */ declare default_parse entry(fixed bin(15),ptr,ptr); /* parameter 1: (input) token index */ /* parameter 2: (input) block node ptr */ /* parameter 3: (input) label list ptr or null */ declare descriptor_parse entry(ptr,ptr,fixed bin(15)) returns(ptr); /* parameter 1: (input) block node ptr */ /* parameter 2: (input) token node ptr or null */ /* parameter 3: (in/out) token index */ /* return: (output) symbol node ptr */ declare do_parse entry(fixed bin(15),ptr,bit(12) aligned,ptr,ptr, bit(1) aligned,bit(1) aligned,bit(1) aligned); /* parameter 1: (in/out) token index */ /* parameter 2: (input) label list ptr or null */ /* parameter 3: (input) conditions */ /* parameter 4: (input) father block node ptr */ /* parameter 5: (output) end ptr */ /* parameter 6: (input) entry bit */ /* parameter 7: (input) return bit */ /* parameter 8: (input) iterative do bit */ declare evaluate entry(bit(9) aligned,ptr,ptr) returns(ptr); /* parameter 1: (input) opcode */ /* parameter 2: (input) left operand (token ptr) */ /* parameter 3: (input) right operand (token ptr) */ /* return: (output) ptr to result node */ declare expression_parse entry(fixed bin(15),ptr) returns(ptr); /* parameter 1: (in/out) token index */ /* parameter 2: (input) block node ptr */ /* return: (output) expression parse tree ptr */ declare format_list_parse entry(fixed bin(15),ptr,ptr,ptr) returns(bit(1) aligned); /* parameter 1: (in/out) token index */ /* parameter 2: (input) block node ptr */ /* parameter 3: (input) statement node ptr */ /* parameter 4: (output) format list parse tree ptr */ /* return: (output) valid parse bit */ declare if_parse entry(fixed bin(15),ptr,bit(12) aligned,ptr,ptr, bit(1) aligned); /* parameter 1: (in/out) token index */ /* parameter 2: (input) label list ptr or null */ /* parameter 3: (input) conditions */ /* parameter 4: (input) father block node ptr */ /* parameter 5: (input) end ptr */ /* parameter 6: (output) valid parse bit */ declare io_statement_parse entry(fixed bin(15),ptr,bit(12) aligned,ptr,ptr, bit(1) aligned,bit(9) aligned); /* parameter 1: (in/out) token index */ /* parameter 2: (input) label list ptr or null */ /* parameter 3: (input) conditions */ /* parameter 4: (input) father block node ptr */ /* parameter 5: (output) end ptr */ /* parameter 6: (output) valid parse bit */ /* parameter 7: (output) statement type */ declare lex entry(ptr); /* parameter 1: (input) block node ptr */ declare lex$write_last_line entry(ptr); /* parameter 1: (input) block node ptr */ declare lex$initialize_lex entry(ptr,fixed bin(15)); /* parameter 1: (input) ptr to source */ /* parameter 2: (input) length of source (chars) */ declare on_parse entry(fixed bin(15),ptr,bit(12) aligned,ptr,ptr); /* parameter 1: (in/out) token index */ /* parameter 2: (input) label list ptr or null */ /* parameter 3: (input) conditions */ /* parameter 4: (input) father block node ptr */ /* parameter 5: (output) end ptr (set to null) */ declare on_parse$revert entry(fixed bin(15),ptr,ptr); /* parameter 1: (input) token index */ /* parameter 2: (input) statement node ptr */ /* parameter 3: (input) block node ptr */ declare parse entry(ptr,ptr,fixed bin(15)); /* parameter 1: (output) root ptr */ /* parameter 2 (input) source ptr */ /* parameter 3: (input) source length */ declare procedure_parse entry(fixed bin(15),ptr,bit(12) aligned,ptr,ptr, bit(9) aligned,bit(1) aligned); /* parameter 1: (in/out) token index */ /* parameter 2: (input) label list ptr or null */ /* parameter 3: (input) conditions */ /* parameter 4: (input) father block node ptr */ /* parameter 5: (output) end ptr */ /* parameter 6: (input) block type */ /* parameter 7: (input) no return statement bit */ declare process_entry entry(fixed bin(15),bit(9) aligned,ptr,ptr,bit(12) aligned); /* parameter 1: (in/out) token index */ /* parameter 2: (input) statement type */ /* parameter 3: (input) block node ptr */ /* parameter 4: (input) label list ptr or null */ /* parameter 5: (input) conditions */ declare reference_parse entry(fixed bin(15),ptr) returns(ptr); /* parameter 1: (in/out) token index */ /* parameter 2: (input) block node ptr */ /* return: (output) reference parse tree ptr */ declare reserve$rename_parse entry(fixed bin(15)) returns(bit(1) aligned); /* parameter 1: (in/out) token index */ /* return: (output) success bit */ declare statement_parse entry(fixed bin(15),ptr,bit(12) aligned,ptr,fixed bin(15)); /* parameter 1: (in/out) token index */ /* parameter 2: (input) label list ptr or null */ /* parameter 3: (input) conditions */ /* parameter 4: (input) block node ptr */ /* parameter 5: (input) statement type */ declare statement_type entry(ptr,fixed bin(15),ptr,bit(12) aligned) returns(fixed bin(15)); /* parameter 1: (input) block node ptr */ /* parameter 2: (in/out) token index */ /* parameter 3: (output) label list ptr or null */ /* parameter 4: (output) conditions */ /* return: (output) statement type */ %include language_utility; /* END INCLUDE FILE parse.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 */