|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T f
Length: 6820 (0x1aa4) Types: TextFile Names: »full-ada.bnf«
└─⟦a05ed705a⟧ Bits:30007078 DKUUG GNU 2/12/89 └─⟦dbcd4071d⟧ »./gnu-ada-1.05.tar.Z« └─⟦999713de5⟧ └─⟦this⟧ »full-ada.bnf«
-- Make this a file called ada.bnf in ~/el -- This is most of the bnf for the Ada language -- Chapter 3: Declarations \f {basic_declaration} ::= {object_declaration} | {number_declaration} | {type_declaration} | {subtype_declaration} | {subprogram_declaration} | {package_declaration} | {task_declaration} | {generic_declaration} | {exception_declaration} | {generic_instantiation} | {renaming_declaration} | {deferred_constant_declaration} \f {type_declaration} ::= {full_type_declaration} | {incomplete_type_declaration} | {private_type_declaration} \f {full_type_declaration} ::= type {identifier} is {type_definition}; | type {identifier} {discriminant_part} is {type_definition}; \f {type_definition} ::= {enumeration_type_definition} | {integer_type_definition} | {real_type_definition} | {array_type_definition} | {record_type_definition} | {access_type_definition} | {derived_type_definition} \f {basic_declarative_item_list} ::= {basic_declarative_item} {basic_declarative_item_list} \f {basic_declarative_item} ::= {basic_declaration} | {representation_clause} | {use_clause} \f {later_declarative_item} ::= {body} | {subprogram_declaration} | {package_declaration} | {task_declaration} | {generic_declaration} | {use_clause} | {generic_instantiation} \f -- Chapter 5: Statements \f {sequence_of_statements} ::= {statement} | {statement} {sequence_of_statements} \f {statement} ::= {labelled_simple_statement} | {labelled_compound_statement} | {simple_statement} | {compound_statement} \f {labelled_simple_statement} ::= <<{label}>> {simple_statement} \f {labelled_compound_statement} ::= <<{label}>> {compound_statement} \f {simple_statement} ::= {null_statement} | {assignment_statement} | {procedure_call_statement} | {exit_statement} | {return_statement} | {goto_statement} | {entry_call_statement} | {delay_statement} | {abort_statement} | {raise_statement} | {code_statement} \f {compound_statement} ::= {if_statement} | {case_statement} | {loop_statement} | {block_statement} | {accept_statement} | {select_statement} \f {null_statement} ::= null; \f {assignment_statement} ::= {variable_name} := {expression}; \f {if_statement} ::= if {condition} then {sequence_of_statements} {elsif_part} {else_part} end if; \f {elsif_part} ::= elsif {condition} then {sequence_of_statements} \f {else_part} ::= else {sequence_of_statements} \f {condition} ::= {boolean_expression} \f {case_statement} ::= case {expression} is {case_statement_alternative} {case_statement_alternative_list} end case; \f {case_statement_alternative_list} ::= {case_statement_alternative} | {case_statement_alternative} {case_statement_alternative_list} \f {case_statement_alternative} ::= when {choice_list} => {sequence_of_statements} \f {loop_statement} ::= {iteration_scheme} loop {sequence_of_statements} end loop {loop_simple_name}; \f {iteration_scheme} ::= while {condition} | for {loop_parameter_specification} \f {loop_parameter_specification} ::= {identifier} in {discrete_range} | {identifier} in reverse {discrete_range} \f {block_statement} ::= declare {declarative_part} begin {sequence_of_statements} {exception_part} end; \f {exit_statement} ::= exit {loop_name} | exit {loop_name} when {condition}; \f {return_statement} ::= return {expression}; \f {goto_statement} ::= goto {label_name}; \f -- Chapter 6: Subprograms \f {subprogram_declaration} ::= {subprogram_specification}; \f {subprogram_specification} ::= procedure {identifier} | procedure {identifier} {formal_part} | function {identifier} return {type_mark} | function {identifier} {formal_part} return {type_mark} \f {subprogram_body} ::= {subprogram_specification} is {declarative_part} begin {sequence_of_statements} {exception_part} end {designator}; \f -- Chapter 7: Packages \f {package_declaration} ::= {package_specification}; \f {package_specification} ::= package {identifier} is {basic_declarative_item_list} {private_part} end {identifier}; \f {private_part} ::= private {basic_declarative_item_list} \f {package_body} ::= package body {package_simple_name} is {declarative_part} begin {sequence_of_statements} {exception_part} end {package_simple_name}; \f {task_declaration} ::= {task_specification}; \f {task_specification} ::= task {identifier} | task type {identifier} | task {identifier} is {entry_declaration_list} {representation_clause_list} end {task_simple_name} | task type {identifier} is {entry_declaration_list} {representation_clause_list} end {task_simple_name} \f -- Chapter 9: Tasking \f {accept_statement} ::= accept {entry_simple_name} {entry_index} {formal_part} do {sequence_of_statements} end {entry_simple_name}; | accept {entry_simple_name} {entry_index} {formal_part}; \f {select_statement} ::= {selective_wait} | {conditional_entry_call} | {timed_entry_call} \f {selective_wait} ::= select {select_alternative} {rest_of_select_alternatives} {select_else_part} end select; \f {rest_of_select_alternatives} ::= or {select_alternative} {rest_of_select_alternatives} \f {select_else_part} ::= else {sequence_of_statements} \f {select_alternative} ::= {selective_wait_alternative} | when {condition} => {selective_wait_alternative} \f {selective_wait_alternative} ::= {accept_alternative} | {delay_alternative} | {terminate_alternative} \f {accept_alternative} ::= {accept_statement} | {accept_statement} {sequence_of_statements} \f {delay_alternative} ::= {delay_statement} | {delay_statement} {sequence_of_statements} \f {terminate_alternative} ::= terminate; \f {conditional_entry_call} ::= select {entry_call_statement} {sequence_of_statements} else {sequence_of_statements} end select; \f {timed_entry_call} ::= select {entry_call_statement} {sequence_of_statements} or {delay_alternative} end select; \f -- Chapter 10: Compilation & Library Units \f {compilation} ::= {compilation_unit} \f {compilation_unit} ::= {context_clause} {library_unit} | {context_clause} {secondary_unit} \f {library_unit} ::= {subprogram_declaration} | {package_declaration} | {generic_declaration} | {generic_instantiation} | {subprogram_body} \f {secondary_unit} ::= {library_unit_body} | {subunit} \f {library_unit_body} ::= {subprogram_body} | {package_body} \f {context_clause} ::= {with_clause} | {with_clause} {use_clause} \f {with_clause} ::= with {unit_simple_name_list} \f {unit_simple_name_list} ::= {unit_simple_name} | {unit_simple_name}, {unit_simple_name_list} \f {body_stub} ::= {subprogram_specification} is separate; | package body {package_simple_name} is separate; | task body {task_simple_name} is separate; \f {subunit} ::= separate ({parent_unit_name}) {proper_body} \f {exception_declaration} ::= {identifier_list} : exception; \f {exception_handler} ::= when {exception_choice_list} => {sequence_of_statements} \f {exception_part} ::= {exception_handler} | {exception_part} {exception_handler} \f